Как мы можем рассматривать различные значения удаления в нашей доменной модели - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть два вопроса, связанных со статьей Уди Дахана: Не удалять - просто не надо

  • Иногда нам нужно удалить, пользователь (эксперт по домену) запрашивает функциональность delete (реальное значение) для неправильных данных, скажем, у пользователя HR есть форма для добавления сотрудников, и он вставил неправильные данные сотрудников, он хочет удалите эти данные, они еще не используются в бизнесе и полностью отличаются от Retire or Fire an employee. Как справиться с двумя случаями в реализации?
  • Как сделать пользовательский интерфейс более представительным для этого случая? с помощью двух кнопок Одна отображается, только если мы можем DELETE сотрудник, а другая, если мы хотим RETIRE сотрудник?

1 Ответ

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

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

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

...