Как на практике добиться того, чтобы domain-слой не зависел от инфраструктуры?

Domain-слой должен выражать бизнес-правила через собственные сущности и контракты, не импортируя ORM, HTTP-клиенты, брокеры и конкретную БД.

Короткий ответ

Что ответить на собеседовании

Domain-слой должен выражать бизнес-правила через собственные сущности и контракты, не импортируя ORM, HTTP-клиенты, брокеры и конкретную БД.

Подробный разбор

Ответ с пояснениями

Domain-слой должен выражать бизнес-правила через собственные сущности и контракты, не импортируя ORM, HTTP-клиенты, брокеры и конкретную БД.

Определите порты для нужных действий, например репозиторий заказов или получение времени. Инфраструктурные адаптеры реализуют эти контракты, а composition root передаёт их приложению.

Не возвращайте из порта ORM query builder или HTTP response: иначе зависимость просачивается обратно. Доменные тесты должны работать без сети и базы с простыми реализациями портов. При этом не нужно создавать абстракцию для каждого класса: выделяйте реальные границы изменения и бизнес-инварианты, оставляя оркестрацию use case вне сущностей.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее