Вопрос проверяет архитектурное мышление и понимание принципов построения поддерживаемых и тестируемых систем.
Чистая архитектура — это подход к проектированию, при котором бизнес-логика не зависит от фреймворков, БД и внешних сервисов. Код разделяется на слои с чёткими границами ответственности. Зависимости направлены внутрь, к домену. Это упрощает тестирование и развитие системы.
Чистая архитектура (Clean Architecture) — архитектурный подход, при котором бизнес-правила изолированы от инфраструктурных деталей.
Перед деталями важно сформулировать ключевую идею:
бизнес-логика не должна знать, как именно она вызывается и где хранятся данные.
Бизнес-сущности
Инварианты
Правила предметной области
Характеристика:
не зависит ни от чего
максимально стабильный слой
Сценарии работы системы
Оркестрация действий
Проверка бизнес-правил
Здесь решается что делать, но не как технически.
Контроллеры
DTO
Маппинг данных
Этот слой “переводит” внешний мир в формат домена.
БД
HTTP-клиенты
Фреймворки
Очереди
Самый изменяемый слой.
Внешние слои зависят от внутренних
Внутренние не знают о внешних
Связь через интерфейсы (абстракции)
Лёгкое тестирование бизнес-логики
Замена фреймворка без переписывания домена
Меньше “протекания” инфраструктуры в логику
Чистая архитектура — это инвестиция в долгоживущий код. Она требует дисциплины, но сильно снижает стоимость изменений.