Событие команды намерения CQRS - PullRequest
5 голосов
/ 20 ноября 2010

Я создаю веб-приложение CRUD, которое после обработки внутренней логики опубликует события в других системах для обновления их данных.

Я на первом этапе реализации CQRS, и звучит странно, чтоЯ должен создать конкретные команды для всех возможных намерений пользователя в форме, где у меня есть только одна кнопка «Сохранить».Это означает множество команд (для каждого свойства или объекта значения) для захвата намерения , которое не требуется в моих требованиях , но необходимо в будущих проектах, которые подпишутся на него.Я фанат ТОЛЬКО того, что требует мой ограниченный контекст.

Еще одна вещь, которую нужно учитывать: я должен использовать сессию, чтобы сравнить, изменились ли данные или нет.Подделка данных после сохранения скрывает ситуации параллелизма, показывающие неверные данные в пользовательском интерфейсе.

РЕДАКТИРОВАТЬ: Я только что нашел этот поток , где Грег Янг предполагает, что некоторые экраныпросто CRUD и нет ничего плохого в обновлении по умолчанию.

1 Ответ

6 голосов
/ 20 ноября 2010

Почему вы хотите использовать CQRS? Он работает не во всех случаях.

В частности, если вы используете CRUD, то при попытке использования CQRS не должно быть никаких причинвсе.Это просто не подойдет.CQRS извлекает большую выгоду из дизайна, когда намерение пользователя явно фиксируется на стороне пользовательского интерфейса и передается на сервер в значимой команде (это не FieldNameUpdated , а скорее CustomerRelocatedToNewAddress или CustomerAddressCorrected).Это требует использования методологий доменного проектирования в проекте).

...