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