我有两个与 Udi Dahan 的文章有关的问题:不要删除 – 只是不要
- 有时我们确实需要删除,用户(领域专家)请求
delete
错误数据的功能(真正含义),假设 HR 用户有一个添加员工的表单,他插入了错误的员工数据,他想删除这些数据,不是用于商业,它与Retire or Fire an employee
. 执行中如何处理这两种情况? - 如何让 UI 更能代表这个案例?使用两个按钮 一个仅在我们可以
DELETE
雇用时显示,另一个在我们想RETIRE
雇用时显示?
我有两个与 Udi Dahan 的文章有关的问题:不要删除 – 只是不要
delete
错误数据的功能(真正含义),假设 HR 用户有一个添加员工的表单,他插入了错误的员工数据,他想删除这些数据,不是用于商业,它与Retire or Fire an employee
. 执行中如何处理这两种情况?DELETE
雇用时显示,另一个在我们想RETIRE
雇用时显示?如果企业想要这个功能并且他们说这个词,那么这意味着它们是无处不在的语言的一部分。在这种情况下,您可以添加删除命令。但是,建议使意图更明确;您可以将命令命名为deleteUserBecauseOfInvalidRegistration
左右。在这种情况下,删除命令是域模型的一部分;这意味着您可以根据其他属性轻松限制用户的删除;例如,一个用户如果已经被人事经理批准了,就不能再删除了。然后,如果不允许该操作,UI 可以通过隐藏删除按钮来轻松反映此行为。
另一种选择是,当业务专家听到 IT 人员使用的“删除”一词而不是来自真实域时,您可以仅在管理 UI 中公开此功能,作为从数据库中删除行的低级命令. 然后只能由一些更高级别的人员访问管理 UI,例如人力资源经理。