3

我开始使用 CQRS,我发现我的 Event 类定义与我的 Command 定义几乎 1 比 1 匹配。除了明显的代码重复之外,我试图找出我做错了什么。当然,在某些情况下,事件与命令不匹配......但并不多。

以简单的 CUD 场景为例:

命令类:

  • 创建邮局
  • 更新帖子
  • 删除帖子

事件类:

  • 已创建帖子
  • 更新后的帖子
  • 已删除的帖子

对此有何建议?

我正在使用事件存储,如果这有什么不同的话。

谢谢。

4

2 回答 2

5

您通常不会将 CQRS 用于 CRUD 场景。有更简单的工具和模式来创建 CRUDy 应用程序。

CQRS 为行为丰富的场景带来了许多优势,其中动词不是Create、Read、Update、Delete,而是类似于真实行为。像PromoteEmployeeBlacklistVendor

一旦开始对行为丰富的域进行建模,可能仍然有许多相关的命令/事件——这不是一件坏事——但你也会发现命令和结果事件的大小可能会有很大的不同(包含的数据) 和数字。

于 2013-04-09T12:06:16.893 回答
1

为了给 Dennis Traub 的回答添加一点内容,CQRS 超越了您将代码构建到规范领域的方式,即 UI 的工作方式。并不是所有的 UI 都对 CQRS 友好;你想要更多类似于基于任务的 UI 而不是 CRUD-y UI 的东西。

从 CRUD-y UI 开始,您可能会在应用 CQRS 时感到沮丧。

于 2014-09-04T18:11:05.850 回答