advanced
Dependency direction
Направляйте dependencies к stable policy и inward domain concepts, чтобы volatile infrastructure не управляла business rules.
Направление зависимостей означает, что высокоуровневая политика не зависит от низкоуровневых деталей. Инфраструктура, фреймворки и БД — детали; бизнес-правила должны быть в центре и получать collaborators через абстракции. DIP — архитектурный стержень ports, adapters и тестируемых сервисов.
На интервью: нарисуйте схему со стрелками внутрь. Сравните импорт ORM-сущностей в домен с интерфейсами репозиториев в domain/application слое.
Типовые ошибки: аннотации фреймворка на доменных классах; циклические зависимости модулей; «интерфейсы везде» без реальной точки подмены.
Чеклист:
- Перечислите policy и detail в вашем примере.
- Покажите, как тесты подменяют инфраструктуру фейками.
- Держите volatile-зависимости за узкими портами.
- Закрепляйте направление границами модулей или lint-правилами.