Что если значение нужно исправить? - PullRequest
0 голосов
/ 30 января 2019

Я знаю, что DDD предлагает создавать отдельные сценарии использования для каждой бизнес-операции.

Представьте, что у вас есть агрегат Player.Имеет адрес объекта значения.

DDD не позволяет создавать метод UpdatePlayer() на слое PlayerApplication.Вместо этого мы должны создать конкретные варианты использования, в которых заинтересован бизнес.Итак, вместо UpdatePlayer() я хочу иметь RelocatePlayerTo(Address newAddress).

Что если после переезда я заметил, что допустил ошибку в newAddress?Как я могу настроить адрес?Например, я неправильно написал название улицы или ввел неправильный номер #.

Должен ли я создать новый вариант использования AdjustPlayerAddress?И новый DomainEvent PlayerAddressHasBeenAdjusted?

1 Ответ

0 голосов
/ 30 января 2019

Что, если значение необходимо скорректировать?

Важное соображение: является ли авторитетный источник данных вашей моделью или что-то еще?

Например,, авторитетным источником моего адреса является реальный мир.Правильное написание зависит от всех видов вещей, которые не находятся под контролем модели.В этом случае нам действительно следует подумать о том, что модель содержит в качестве копии данных, которая, возможно, устарела.

В этой ситуации API для сущности будет стремиться к анемии (на самом деле,ты собираешься написать все возможные причины, по которым адрес может измениться? и ты уверен, что я как субъект собираюсь поделиться ими с тобой?)

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

Иногда это поможет быть более точнымо том, что происходит.Например, что произойдет, если вы думаете, что запрос ChangeOfAddress - это его собственная вещь?и тогда возникает проблема, как эта информация перемещается по остальной части вашей системы.

Основная идея заключается не в том, что «вы не должны использовать CRUD», а в том, что язык должен соответствовать языку домена.Ваш основной источник для написания идей должны быть вашими экспертами в области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...