Ответ вслух Senior Clean Architecture и слои обновлено

Когда не стоит делать Clean Architecture

Вопрос

Новый проект: MVP приложения за два месяца. Будете ли вы делать полноценную Clean Architecture?

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

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

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

Коротко

Полный набор слоёв с четырьмя моделями на сущность для MVP избыточен: команда потратит время на мапперы, а не на продукт.

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

  • Цена слоёв: шаблонный код, мапперы, скорость команды

  • Минимум, который нужен всегда: границы на краях (сеть и база за интерфейсами), DI, тестируемые view model

  • Domain-слой добавляется, когда появляется бизнес-логика

  • Структура по фичам упрощает будущее разделение

  • Решение фиксируется в ADR и пересматривается

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

  • Как вы решаете, что пора добавить слой?
  • Как избежать переписывания при росте?

Разбор

Полный набор слоёв с четырьмя моделями на сущность для MVP избыточен: команда потратит время на мапперы, а не на продукт. Но есть минимум, который я делаю всегда, потому что он дешёвый и спасает при росте: сеть и база спрятаны за интерфейсами репозиториев, зависимости внедряются через конструктор, view model тестируемые и не знают о UI-фреймворке, код сгруппирован по фичам. Доменный слой и use case появляются, когда возникает бизнес-логика, которую жалко держать во view model, или её нужно переиспользовать. Такое решение я фиксирую в коротком ADR с условиями пересмотра, например «когда в фиче появится второй источник данных». Так проект растёт эволюционно, без переписывания.

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

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