Когда не стоит делать Clean Architecture
Вопрос
Новый проект: MVP приложения за два месяца. Будете ли вы делать полноценную Clean Architecture?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Цена слоёв: шаблонный код, мапперы, скорость команды
Минимум, который нужен всегда: границы на краях (сеть и база за интерфейсами), DI, тестируемые view model
Domain-слой добавляется, когда появляется бизнес-логика
Структура по фичам упрощает будущее разделение
Решение фиксируется в ADR и пересматривается
Что могут спросить следом
- Как вы решаете, что пора добавить слой?
- Как избежать переписывания при росте?
Разбор
Полный набор слоёв с четырьмя моделями на сущность для MVP избыточен: команда потратит время на мапперы, а не на продукт. Но есть минимум, который я делаю всегда, потому что он дешёвый и спасает при росте: сеть и база спрятаны за интерфейсами репозиториев, зависимости внедряются через конструктор, view model тестируемые и не знают о UI-фреймворке, код сгруппирован по фичам. Доменный слой и use case появляются, когда возникает бизнес-логика, которую жалко держать во view model, или её нужно переиспользовать. Такое решение я фиксирую в коротком ADR с условиями пересмотра, например «когда в фиче появится второй источник данных». Так проект растёт эволюционно, без переписывания.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Clean Architecture и слои»
- Правило зависимостей в Clean Architecture
- Что можно импортировать в domain-слой
- Зачем маппить DTO в доменные модели
- Ошибки на границах слоёв
- Пакеты по слоям или по фичам
- Инверсия зависимостей
- Слои мобильного приложения
- Сколько моделей нужно на сущность