Как бы вы организовали слоистую архитектуру сервиса создания заказов с богатой доменной моделью: какие слои и сущности были бы в коде?

Выделите транспортный слой, application-сценарий, доменную модель и инфраструктуру. Заказ хранит бизнес-инварианты, а сценарий координирует репозитории, транзакцию и внешние действия.

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

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

Выделите транспортный слой, application-сценарий, доменную модель и инфраструктуру. Заказ хранит бизнес-инварианты, а сценарий координирует репозитории, транзакцию и внешние действия.

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

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

Выделите транспортный слой, application-сценарий, доменную модель и инфраструктуру. Заказ хранит бизнес-инварианты, а сценарий координирует репозитории, транзакцию и внешние действия.

HTTP-контроллер валидирует формат запроса и вызывает CreateOrder. Application-слой получает товары и клиента, создаёт доменный Order, сохраняет его через repository и фиксирует unit of work. В домене могут быть Order, OrderLine, Money и правила допустимых переходов состояния. ORM, брокер и платёжный клиент реализуют инфраструктурные интерфейсы. Внешнюю оплату нельзя считать частью локальной транзакции: нужны состояния операции и согласование результата. События публикуют надёжно, например через outbox. Богатая модель означает размещение правил рядом с данными, а не увеличение числа классов.

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

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

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

Подробнее