2013-07-12 43 views
1

我一直在研究DDD & CQRS和我想知道正确的方式来呈现一个场景,其中应用程序实际上是用来报告用户已经完成(用户都在界面和命令名称)。CQRS - 命令,时态

假设我正在执行一个跟踪用户活动的应用程序,并且有一组预定义的有效活动:游泳,饮食等。撇开关于这个域是否足够适合CQRS的讨论(因为即使这不是我相信会有一些非常协作的领域,可以帮助他们进行类似的语义分析),我想知道:在用户界面上,我是否提供了按钮,说'去游泳','吃'等等,用相似命名的命令还是我喜欢用'报告游泳','记录午餐'等?

回答

1

答案在你的问题。我想说的线索是你如何描述“什么是用户已经完成用于报告”应用

按钮的目的将是报告过去的活动,这样的命令应该被命名为'报告游泳“和事件”报告游泳“。

我也遇到过类似的情况,结果发现,“报告”命令和“报告”事件很好地工作

+0

谢谢@danielfishr。听起来很合理。如果我没有得到更好的答案,我会接受。 – Tolu

1

听起来你正在录制的事件。事情已经发生,应该以某种方式进行跟踪。因此你根本不会发送任何命令。只需发布相应的事件并根据需要在您的域中处理它们即可。

+0

事件是否可以直接从客户端提出? – Tolu

+1

要么(如果客户端是可信来源),要么可以在应用程序服务级别提升事件。没有规则规定每个事件都必须来自域模型,或者它必须有前一个命令。从系统的角度来看,事件可能无处不在。无论如何,这将如何与外部组件集成。 –

+0

域如何接收这些事件?显然他们不是来自命令总线(出于显而易见的原因;-))。这是否意味着除了命令总线之外还有一个事件总线和一个运行该域的“事件处理程序”,或者......? –