如果我们使用Order作为聚合根(AR)和OrderLines作为非根聚合,那么如何处理性能问题?
我正在使用Order / OrderLine,因为它们在我们所有的“无处不在的语言”中都是一个熟悉的部分。所以请一起玩,我的“订单”在计算上难以存储,更需要检索。当不使用DDD时,将它们“去规范化”为“视图”是很常见的。使用DDD,可能会创建一个OrderView域对象并使用Order AR来编写,而OrderView AR可以读取吗?其他人如何处理这种情况?
提前感谢任何建议。
答案 0 :(得分:0)
我们通过创建简单的数据传输对象来处理这个问题,这些对象由底层SQL视图填充在应用程序处理程序中,该视图由来自底层域实体表的数据组成。我们发现这种方法非常有效并且没有任何问题。我不会称之为CQRS,因为我们对命令和查询使用相同的模型,但也许您可以称之为CQRS-lite。我强烈建议您不要在域图层中创建视图对象。它没有给你真正的价值,只会增加一层复杂功能。