我是 DDD 新手,所以如果某些术语/理解有问题,请执行我。但请纠正我,如有任何建议,我们将不胜感激。
假设我正在做一个社交求职板网站,并且我已经确定了我的聚合根源:候选人、工作和公司。非常不同的事物/上下文,因此每个事物/上下文都有自己的数据库表、存储库和服务。但现在我必须构建一个 Pinterest 风格的主页,其中数据块显示候选人、工作或公司的数据。
现在棘手的部分是数据块必须按照它所代表的聚合最后发生的事情进行排序(公司被喜欢/评论,或者工作被更新等),并且分页以无限滚动的形式发生,再次就像 Pinterest 一样。由于这些聚合的情况是独立发生的,因此我无法知道任何特定页面上有多少聚合。 (但是如果我这样做了,比如说一个跟踪聚合上次更新时间的表,我别无选择,只能将其提升为另一个聚合根,并拥有自己的存储库?)
我在哪里实现分页逻辑?我在某处读到,每个聚合根每个存储库应该有一个服务,所以我应该在控制器中排序和分页(顺便说一下,我正在使用 MVC)?或者应该有一个独立的应用程序服务来完成这样的跨界工作?无论哪种情况,我都必须从数据库中获取所有聚合的所有实体?
问题已经太多了,但我基本上是在问:
我想到了几件事。