DDD 中聚合中的读取模型是什么以及在哪里使用它们?
What are read-models within Aggregates in DDD and where to use them?
我在 DDD 中知道删除聚合根意味着立即删除聚合边界内的所有内容。
但我注意到在聚合中使用了读取模型(只读属性),正如 Lev Gorodinski 在该博客中所述:http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/
但是由于这些模型是 aggregate.So 的一部分,我们如何在删除或更新聚合的情况下处理它们?
此外,我们可以使用它们来确保聚合的 invariants/consistency 吗?
我希望能举一个关于它们的例子,以及我们如何在不违反 DDD 原则的情况下在聚合中使用它们。
But as those models are part of the aggregate.So,how we treat them in
case of deleting or updating our aggregate?
它们不是聚合的一部分(聚合是写入模型)。在最好的情况下,它们是一个或多个聚合的视图或投影。
Also,can we use them to ensure the invariants/consistency of Aggregates?
否,因为它们不是聚合的一部分。您可以将它们用于验证,但在最终一致的预聚合验证和非常特殊的情况下(如果您需要此验证是高度一致的,那么您应该检查您的聚合边界,因为它们可能是错误的)
P.S。该博客 post 声明这些读取模型将由 UI
或类似的而不是聚合使用。
我在 DDD 中知道删除聚合根意味着立即删除聚合边界内的所有内容。
但我注意到在聚合中使用了读取模型(只读属性),正如 Lev Gorodinski 在该博客中所述:http://gorodinski.com/blog/2012/04/25/read-models-as-a-tactical-pattern-in-domain-driven-design-ddd/
但是由于这些模型是 aggregate.So 的一部分,我们如何在删除或更新聚合的情况下处理它们?
此外,我们可以使用它们来确保聚合的 invariants/consistency 吗?
我希望能举一个关于它们的例子,以及我们如何在不违反 DDD 原则的情况下在聚合中使用它们。
But as those models are part of the aggregate.So,how we treat them in case of deleting or updating our aggregate?
它们不是聚合的一部分(聚合是写入模型)。在最好的情况下,它们是一个或多个聚合的视图或投影。
Also,can we use them to ensure the invariants/consistency of Aggregates?
否,因为它们不是聚合的一部分。您可以将它们用于验证,但在最终一致的预聚合验证和非常特殊的情况下(如果您需要此验证是高度一致的,那么您应该检查您的聚合边界,因为它们可能是错误的)
P.S。该博客 post 声明这些读取模型将由 UI
或类似的而不是聚合使用。