Выбор ответа Senior Clean Architecture и слои обновлено
Пакеты по слоям или по фичам
Вопрос
Почему в больших приложениях код чаще группируют по фичам, а не по слоям (data/, domain/, ui/ на всё приложение)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Изменения обычно касаются одной фичи: код фичи лежит рядом, и её можно выделить в модуль. Слои никуда не деваются, они просто живут внутри фичи: feature/cart/data, feature/cart/domain, feature/cart/ui.
Варианты ответа
- Группировка по слоям на всё приложение запрещена Clean Architecture и ломает правило зависимостей
- Так быстрее работает компилятор при любом размере проекта, даже без разбиения на модули
- По слоям нельзя писать изолированные тесты: тест фичи требует подключить все три каталога
- Изменения обычно касаются одной фичи: код фичи лежит рядом, и её можно выделить в модульправильный ответ
Разбор
Слои никуда не деваются, они просто живут внутри фичи: feature/cart/data, feature/cart/domain, feature/cart/ui. Тогда задача «доработать корзину» затрагивает одну папку или модуль, а не три верхних каталога. Это же основа модуляризации: фича становится модулем с явным API. Clean Architecture ничего не говорит о структуре папок, а тесты пишутся при любой группировке.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «Clean Architecture и слои»
- Правило зависимостей в Clean Architecture
- Что можно импортировать в domain-слой
- Зачем маппить DTO в доменные модели
- Слои мобильного приложения
- Сколько моделей нужно на сущность
- Путь действия пользователя через слои
- Когда Clean Architecture избыточна
- Где объявлять интерфейс репозитория