【发布时间】:2018-10-08 15:08:55
【问题描述】:
阅读 Eric Evans 的 DDD 后,我正在尝试将其应用到我正在管理的项目中。有一些用户特定的查询数据,我不确定如何以 DDD 方式实现它。
例如,如果用户查询通知,应用程序应告知用户是否已阅读每条帖子。通常在这种情况下,我会使用如下所示的数据进行响应:
{
"notices": [
{"content": "foo", "is_read": true},
{"content": "bar", "is_read": false}
]
}
假设有Notice 实体和Read 实体保存User 是否已读取它。还假设有这么多用户阅读通知,检索所有用户为is_read 不是一种有效的方法。
由于没有
Notice实体就永远不会查询Read实体,我可以将它放在Notice聚合中。然后实现以请求用户为参数的查询功能。
1234563
第一个选项似乎是假设用户查询通知并使用应用程序逻辑破坏域层。另一方面,第二个选项让我觉得我正在以一种不必要的复杂方式实现一个简单的功能。而且我现在真的想不出其他选择。对于这种情况,最佳做法是什么?
【问题讨论】: