我一直在阅读关于命令查询职责分离 (CQRS) 以及这种模式如何适合我们当前的应用程序。
说到读模型,我很清楚这些概念:“分离读写数据模型”,“薄读层返回的扁平化非规范化数据”。在大多数情况下,我们使用相同的数据库(相同的读/写数据模型),在 SQL Server 上使用规范化表运行,并在其上使用通用分层应用程序。
那么,在这种场景中应用 CQRS 有什么价值吗?如果是这样,那么在读取模型方面会是什么?
另一个让我想到的问题是 MVC 应用程序从我的薄读取层请求信息,这些信息暴露了扁平化的视图。暴露的数据在呈现给用户之前仍然需要结构化(聚合),还是我错了?
此致
CQRS 不需要扁平化读取模型;这是 CQRS 可以让您提供的好处,但它既不是必需的,也不是该方法的关键部分。
CQRS 是关于分离(或分离,如果您遵循名称)。这是类固醇上的命令查询分离原则(在我看来)。它为您提供的好处(在我的脑海中)是:
因此,如果上述内容对您很重要或您想要争取的东西(并且您的应用程序的设计支持实现 CQRS),那么 CQRS 将为您提供好处和价值。
CQRS 有很多好处。这不是每个问题的正确解决方案,但是当星星对齐时,它是解决您问题的好方法(即使您没有非规范化的读取存储、事件存储或异步模型等)。
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
1966 次 |
| 最近记录: |