Где следует объявить интерфейс (порт) репозитория: в логическом/application-слое или в инфраструктурном?

Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.

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

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

Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.

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

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

Порт репозитория объявляют на стороне потребителя — обычно в application или domain-слое. Инфраструктурный адаптер реализует этот контракт и зависит от внутреннего слоя, а не наоборот.

Интерфейс выражает нужные бизнес-операции, а не детали ORM или SQL-драйвера. Конкретную реализацию связывают с use case в composition root через DI. Это позволяет тестировать логику без реальной БД и заменять механизм хранения, не протаскивая инфраструктурные типы в доменную модель.

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

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

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

Подробнее