Oop 如何基于DDD实践为博客建模?
假设我们想要基于领域驱动的设计实践对博客进行建模。主要实体是博客、用户、帖子、评论等。那么,如何定义聚合、值对象和存储库?根据DDD的定义,由于所有实体都依赖于Blog实体,因此似乎只有一个大型聚合,Blog作为它的聚合根。但是,它带来了太多的一致性和性能挑战。您应该根据一致性要求对聚合进行建模。一致性边界越大=>聚合越大 你认为只有一个聚合根和Blog作为根是有效的吗。从那里我们可以有blog.Posts、blog.Posts(id).Comments和blog.Posts(id).Likes 只有一个大的/像上帝一样的聚合Oop 如何基于DDD实践为博客建模?,oop,domain-driven-design,modeling,ddd-repositories,Oop,Domain Driven Design,Modeling,Ddd Repositories,假设我们想要基于领域驱动的设计实践对博客进行建模。主要实体是博客、用户、帖子、评论等。那么,如何定义聚合、值对象和存储库?根据DDD的定义,由于所有实体都依赖于Blog实体,因此似乎只有一个大型聚合,Blog作为它的聚合根。但是,它带来了太多的一致性和性能挑战。您应该根据一致性要求对聚合进行建模。一致性边界越大=>聚合越大 你认为只有一个聚合根和Blog作为根是有效的吗。从那里我们可以有blog.Posts、blog.Posts(id).Comments和blog.Posts(id).Likes
Blog
提供了最大的一致性边界,但它会极大地影响性能。想想看:每当有人创建/发布/取消发布/喜欢一篇文章、发布/编辑/删除一条评论时,整个Blog
aggregate就会被加载,动作会在其嵌套的实体上执行,然后被持久化。全部在一个交易中
我建议您阅读有关设计聚合的内容