Выбор ответа Senior Clean Architecture и слои обновлено

Пакеты по слоям или по фичам

Вопрос

Почему в больших приложениях код чаще группируют по фичам, а не по слоям (data/, domain/, ui/ на всё приложение)?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: Изменения обычно касаются одной фичи: код фичи лежит рядом, и её можно выделить в модуль. Слои никуда не деваются, они просто живут внутри фичи: feature/cart/data, feature/cart/domain, feature/cart/ui.

Варианты ответа

  1. Группировка по слоям на всё приложение запрещена Clean Architecture и ломает правило зависимостей
  2. Так быстрее работает компилятор при любом размере проекта, даже без разбиения на модули
  3. По слоям нельзя писать изолированные тесты: тест фичи требует подключить все три каталога
  4. Изменения обычно касаются одной фичи: код фичи лежит рядом, и её можно выделить в модульправильный ответ

Разбор

Слои никуда не деваются, они просто живут внутри фичи: feature/cart/data, feature/cart/domain, feature/cart/ui. Тогда задача «доработать корзину» затрагивает одну папку или модуль, а не три верхних каталога. Это же основа модуляризации: фича становится модулем с явным API. Clean Architecture ничего не говорит о структуре папок, а тесты пишутся при любой группировке.

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

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