【发布时间】:2014-09-18 14:27:41
【问题描述】:
我目前正在为 REST 中的社交网络相关应用程序设计一个后端。我对 DDD 原则非常感兴趣。现在让我们假设我有一个拥有朋友集合的用户对象。如果应用程序和用户变得非常成功,这些可能会达到数千。每个朋友也会有一些属性,它基本上是一个用户。 查看DDD Cargo application example,不时地从 CargoRepository 存储和检索完全扩展的 Cargo-object。哇,如果聚合根中有一个列表,随着时间的推移,这最终会触发 OOM。如果您从以数据为中心的角度来处理问题,这就是为什么会有分页和延迟加载的原因。但是,您如何在不知道持久性的 DDD 中处理这些大型集合?
【问题讨论】:
-
为什么朋友在聚合根中,他们是你需要保护的不变量的一部分吗?
-
他们是用户的一部分,因为用户有朋友,但用户也发布了消息,是群组的一部分,有宠物等(用户几乎是一切的整体根)。
-
这听起来更像是一个关系模型而不是聚合根。 “有效的聚合设计”有一些很好的建议:dddcommunity.org/library/vernon_2011
-
谢谢@JefClaes,这真的让我明白了。
标签: domain-driven-design ddd-repositories