Ответ вслух Senior UML обновлено

Кейс: статусная модель заявки на кредит

Вопрос

Спроектируй статусную модель онлайн-заявки на потребительский кредит: от заполнения до выдачи денег.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Начинаю с черновика: клиент заполняет анкету, может бросить. По событию «отправить» заявка уходит в «Отправлена», затем автоматически «На скоринге».

Что должно прозвучать в ответе

  • Состояния: черновик, отправлена, на скоринге, на ручной проверке, одобрена, отказ, подписан договор, выдан, отозвана клиентом, истекла

  • События и условия: результат скоринга, решение андеррайтера, подпись, таймауты

  • Конечные состояния и запрет возврата из них

  • Таймеры: истечение одобрения, если клиент не подписал

  • Кто инициирует каждый переход и что уведомляется

Что могут спросить следом

  • Нужно ли хранить историю переходов?
  • Как показать клиенту статус, если внутренних статусов больше, чем ему нужно?

Разбор

Начинаю с черновика: клиент заполняет анкету, может бросить. По событию «отправить» заявка уходит в «Отправлена», затем автоматически «На скоринге». По результату скоринга три ветки: «Одобрена», «Отказ» или «На ручной проверке», где андеррайтер принимает решение. Из «Одобрена» по подписанию договора переход в «Договор подписан», затем после перевода денег в «Выдан». Таймер: если одобрение не подписано за 30 дней, заявка переходит в «Истекла». Клиент может отозвать заявку из любого незавершённого статуса. Конечные: Выдан, Отказ, Отозвана, Истекла, из них переходов нет. Историю переходов храню отдельно с временем и инициатором: это нужно для аудита и сроков. Клиенту показываю упрощённые статусы: «Рассматриваем», «Одобрено», «Отказ», чтобы не раскрывать внутреннюю кухню.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.