Короче говоря, запрос - это запрос, независимо от того, насколько сложна задача найти его ответ.

но я начал исследовать CQRS и DDD для проекта «зеленого поля», который я собираюсь начать. Я изучил много материала от Уди Дахана, Грега Янга, Марка Нийхофа и других. Они были действительно очень полезны, и я думаю, что у меня есть хорошее понимание концепций. Но у меня все еще есть определенные вопросы о том, как я могу применить их в своей области.

Моя система в основном будет сложным механизмом правил - в котором правила будут определять окончательную цену определенных продуктов. Определения и правила продукта будут введены в систему администраторами. Правила будут разрабатываться администраторами с использованием предопределенного набора свойств, которые могут иметь значения из предопределенного набора, например«Цель покупки» (перепродать, сдать в аренду) или значения свободной формы, такие какВозраст.

Каждый продукт будет иметь базовую цену, и правила будут в основном добавлять / удалять из базовой цены, если они применяются.

Очень простое примерное правило может быть:

Для продукта X, ЕСЛИ (Цель покупки = Перепродать и возраст> 25) Добавить 25 $ к базовой цене.

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

Моя путаница заключается в следующем: запуск сценария вообще не меняет состояние домена, никакая другая внешняя система или человек не заинтересованы в результате выполнения сценария, кроме самого работающего пользователя - он возвращает результат цены Расчет после запуска применимых правил для данного сценария. Например, пользователь может выбратьПродукт X и запросить цену для данного сценария, например(Цель покупки = перепродать и возраст = 40), Опять же, поскольку эта операция вообще не меняет состояние домена, я думаю, что это запрос. Но в сценарии действует механизм правил для расчета окончательной цены, который, я думаю, можно отнести к категории используемой логики домена. Итак, где эта логика принадлежит? Это запрос, который работает только на модели чтения, или запускает сценарий команду, которую необходимо выполнить в модели домена? Опять же, создается впечатление, что доменный слой - это место для этих правил, но как мне передать результат выполнения сценария пользователю (похоже на запрос, думающий об этом таким образом). Или, может быть, CQRS не является правильным решением для этой конкретной проблемы?

Ответы на вопрос(2)

Ваш ответ на вопрос