gpt4 book ai didi

design-patterns - CQRS 第一个 NF 读取模型 - 您允许重复到什么程度?

转载 作者:行者123 更新时间:2023-12-02 20:19:28 26 4
gpt4 key购买 nike

我正在开始我的第一个真正的 CQRS 设置。我正在构建网站的用户注册部分,域和写入端对我来说非常熟悉,来自标准的 DDD“风格”。对于读取模型,我有一个处理 AccountCreatedEvent 的反规范化器。

目前 - 对于我正在实现的功能,我只对让用户注册感兴趣。这涉及检查电子邮件地址/用户名的唯一性。

所以,假设我专门为此目的设计了一个读取模型。一个 AccountRegistrationReadModel 只保存我现在感兴趣的数据部分:用户名、电子邮件、哈希密码

稍后,当我开始构建用户个人资料页面时,我将需要一个 AccountProfileReadModel。

此读取模型将共享一些相同的属性,并将有另一个反规范化器来处理与更改配置文件数据相关的事件,例如 AccountUsernameChangedEvent

此时,AccountRegistrationReadModel 和 AccountProfileReadModel 有兴趣监听 AccountUsernameChangedEvent 消息。

我的问题是:这种方法正确吗?我应该为每个功能保留一个读取模型吗?或者我应该尝试对其进行标准化并重新使用数据,尽可能限制重复?

最佳答案

我认为像大多数设计问题一样,答案取决于你。共享将节省计算资源并限制随着时间的推移必须调试的位置数量。但共享也会将事物耦合在一起,这可能是不必要的,从而导致不同类型的成本:脆弱性。在具有数千个用户和无聊查询的系统中,数据库中的简单而经典的用户表可能适合大多数读取模型。如果您必须扩展到大量用户或大量消息,您可能会发现其他一些 View (审核日志?当前活跃的发货?等)将涉及更有趣的非规范化或实现。

关于design-patterns - CQRS 第一个 NF 读取模型 - 您允许重复到什么程度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6857577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com