首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多聚合根之间的分页

问多聚合根之间的分页
EN

Stack Overflow用户
提问于 2012-04-28 06:42:49
回答 1查看 319关注 0票数 0

我是新来的DDD,所以请执行我,如果某些术语/理解被咬了。但请纠正我,如有任何建议,我们将不胜感激。

假设我在做一个社交网站,我已经确定了我的总根:候选人、乔布斯和公司。非常不同的东西/上下文,因此每个都有自己的数据库表、存储库和服务。但是现在我必须建立一个Pinterest风格的主页,其中的数据块显示一个候选人,一个工作,或一个公司的数据。

现在,棘手的部分是数据块必须在它所代表的聚合发生时被排序(一家公司被喜欢/评论,或者一个作业被更新等等),分页以无限滚动的形式进行,同样类似于Pinterest。由于这些聚合是独立发生的,所以我无法知道在任何特定页面上有多少聚合。(但是,如果我确实这么做了,比如说一个跟踪聚合上一次更新时间的表,我别无选择,只能将它提升为另一个具有自己的存储库的聚合根吗?)

我将在哪里实现分页逻辑?我在某个地方读到,每个聚合根每个存储库应该有一个服务,所以我应该在控制器中排序和页面(顺便说一下,我正在使用MVC )吗?或者应该有一个独立的应用程序服务来做这样的跨界的事情?无论哪种情况,我都必须从db获取所有聚合的所有实体?

问题已经太多了,但我基本上是在问:

  1. 是分页表示、业务还是持久性逻辑?哪个水平层?
  2. ,在DDD中跨边界代码应该住在哪里?哪个垂直堆栈?
EN

回答 1

Stack Overflow用户

发布于 2012-04-29 12:00:53

我想到了几件事。

  • 这个聚合数据需要有多新鲜?我怀疑实时时间是否会带来很大的价值。与一个商务人士交谈,并讨价还价以获得一些延迟。这将允许您构建一个更简单的问题解决方案。
  • 为什么不让一些进程异步地进行扫描、聚合、排序和存储结果呢?甚至不需要在数据库中(Redis)。在您的示例中,协商的延迟可能是运行process.
  • Paging的时间间隔,这几乎不是一个业务决策问题。您只需要提供无限滚动和一些ajax调用来获取缓存、聚合和排序的信息。这与DDD没有什么关系。
  • 您的UI工件和聚合、排序过程似乎本身就是一件事情,它与数据一起工作,或者--更好的是--是以所需的格式提供数据的每个上下文的数据分量。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10361280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档