advanced
Layering
Разделяйте UI, application orchestration, domain rules, persistence и integration layers, когда это снижает change risk.
Слоение разделяет UI, оркестрацию приложения, доменные правила, персистентность и интеграции, чтобы изменения оставались локальными. Хорошие слои определяются ответственностью и частотой изменений, а не только именами папок. Presentation layer не должен содержать SQL; доменная политика не должна зависеть от HTTP-кодов.
На интервью: объясните, когда слои окупаются, а когда превращаются в церемонию. Упомяните направление зависимостей внутрь и границы транзакций.
Типовые ошибки: анемичная доменная модель со всей логикой в сервисах; слои, протекающие типами через границы; дублирование DTO-маппинга без явного владельца.
Чеклист:
- Назовите ответственности и допустимые зависимости каждого слоя.
- Держите доменные правила без импортов фреймворка.
- Размещайте интеграцию и I/O на внешнем краю.
- Обоснуйте каждый слой реальным сценарием изменения.