advanced

Dependency direction

Направляйте dependencies к stable policy и inward domain concepts, чтобы volatile infrastructure не управляла business rules.

Направление зависимостей означает, что высокоуровневая политика не зависит от низкоуровневых деталей. Инфраструктура, фреймворки и БД — детали; бизнес-правила должны быть в центре и получать collaborators через абстракции. DIP — архитектурный стержень ports, adapters и тестируемых сервисов.

На интервью: нарисуйте схему со стрелками внутрь. Сравните импорт ORM-сущностей в домен с интерфейсами репозиториев в domain/application слое.

Типовые ошибки: аннотации фреймворка на доменных классах; циклические зависимости модулей; «интерфейсы везде» без реальной точки подмены.

Чеклист:

  • Перечислите policy и detail в вашем примере.
  • Покажите, как тесты подменяют инфраструктуру фейками.
  • Держите volatile-зависимости за узкими портами.
  • Закрепляйте направление границами модулей или lint-правилами.