DDD Редактировать много свойств в одной транзакции - PullRequest
0 голосов
/ 05 сентября 2018

Мы начинаем сборку программного обеспечения DDD. Попытка идентифицировать ReachDomain. Но проблема в том, что наши эксперты по домену хотят использовать пользовательский интерфейс Crud. Когда я спрашиваю их, почему вам нужно обновить много реквизитов в одной транзакции, они отвечают: «Возможно, изначально я не правильно их ввел». Забавно, но что мне ответить? Как я могу убедить их перейти на пользовательский интерфейс на основе задач и сделать Rich Domain?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

«Изменить сущность» - совершенно правильная задача в пользовательском интерфейсе на основе задач.

Пользовательский интерфейс на основе задач Обновляет по одному свойству за раз.

Кроме того, то, что некоторые задачи выглядят как CRUD, не означает, что нет других задач, для которых требуется модель расширенного домена. CRUDness не заразная болезнь;)

0 голосов
/ 05 сентября 2018

В случае, если домен простой, с небольшим или отсутствующим поведением, вы можете придерживаться основанных на CRUD сущностей. В этом случае существует множество инструментов для управления генерацией и сохранением пользовательского интерфейса. Большая часть работы уже сделана ими, поэтому вы можете быстро производить программное обеспечение.

Если, однако, домен сложный и вам нужно использовать DDD, у вас может быть пользовательский интерфейс на основе CRUD, но уровень домена DDD. Вы должны сопоставить изменения пользовательского интерфейса с командами домена.

Например, если у вас есть флажок с именем accoundIsActive, то после того, как пользователь нажмет кнопку «Отправить», вы проверите значение флажка и отправите команду ActivateAccount или DeactivateAccount.

Что касается выполнения нескольких команд в одной транзакции, вы можете создать команду массового изменения, состоящую из отдельных команд; таким образом, Aggregate выполнит команду массовых операций в одной транзакции.

...