Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 如何基于DDD实践为博客建模?_Oop_Domain Driven Design_Modeling_Ddd Repositories - Fatal编程技术网

Oop 如何基于DDD实践为博客建模?

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

假设我们想要基于领域驱动的设计实践对博客进行建模。主要实体是博客、用户、帖子、评论等。那么,如何定义聚合、值对象和存储库?根据DDD的定义,由于所有实体都依赖于Blog实体,因此似乎只有一个大型聚合,Blog作为它的聚合根。但是,它带来了太多的一致性和性能挑战。

您应该根据一致性要求对聚合进行建模。一致性边界越大=>聚合越大

你认为只有一个聚合根和Blog作为根是有效的吗。从那里我们可以有blog.Posts、blog.Posts(id).Comments和blog.Posts(id).Likes

只有一个大的/像上帝一样的聚合
Blog
提供了最大的一致性边界,但它会极大地影响性能。想想看:每当有人创建/发布/取消发布/喜欢一篇文章、发布/编辑/删除一条评论时,整个
Blog
aggregate就会被加载,动作会在其嵌套的实体上执行,然后被持久化。全部在一个交易中

我建议您阅读有关设计聚合的内容