我们开始通过DDD构建软件。尝试识别ReachDomain。但是问题是我们的领域专家想要一个基于Crud的UI。当我问他们为什么您需要在一次交易中更新许多道具时,他们回答:“起初我可能输入的不正确”。很好笑,但是我该怎么回答?如何说服他们切换到基于任务的UI并使用Rich Domain?
答案 0 :(得分:0)
如果域很简单,几乎没有行为或没有行为,则可以坚持使用基于CRUD的实体。在这种情况下,有很多工具可以管理UI的生成和持久性。他们已经完成了大部分工作,因此您可以快速生产该软件。
但是,如果域很复杂并且您需要使用DDD,则您可能具有基于CRUD的UI,但具有DDD域层。您必须将UI修改映射到域命令。
例如,如果您有一个名为client = boto3.Session(region_name='eu-west-2').client('polly')
的复选框,则在用户按下Submit按钮之后,您将检查该复选框的值并发送accoundIsActive
或ActivateAccount
命令。
关于在一个事务中执行多个命令,您可以创建由单个命令组成的批量修改命令。这样,聚合将在一个事务中执行批量命令。
答案 1 :(得分:0)
“修改实体”在基于任务的用户界面中是完全有效的任务。
基于任务的用户界面≠
一次更新一个属性。
此外,仅仅因为 some 任务看起来像CRUD,并不意味着没有其他任务需要丰富的域模型。 CRUDness不是一种传染性疾病;)