事件和命令的区别和命名惯例

问题描述 投票:0回答:2

我一直有一些困难,最近differenciation两个。更多specificly我浏览过计算器,有一个的事件可以以两种不同的方式来命名声明:与“ing”的或过去时“ED”。这可以在这里看到Events - naming convention and style https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/names-of-type-members

同时,在CQRS指出,名称必须是在过去时态,然后按照他们的指引以上命名为“ing”的形式的事件将是命令。这让我有点糊涂?不要事件取决于建筑文脉和动作意味着不同的事情。是否有什么事件和命令是一个统一的看法?

events design-patterns architecture domain-driven-design cqrs
2个回答
1
投票

CQRS您已经阅读只有过去式的事件名称很可能是因为他们没有考虑到预事件。一个命令命令一些事情发生,因此通常在必要的形成(“点击!”,“火!”,“挠痒痒!”)。这是没有意义的命令是一个动名词(“点击!点击快,你!否则我激发你!”),因为它加速行动,它很可能会引发一个或多个通知(=事件)值得注意的事情是即将发生,事后该注意什么事情也发生了。

-ing事件(如(“点击”)发生时处理该事件之前,例如万一有人想阻止它。有时,他们被称为事件“之前”(如“BeforeClick”),或“将要”事件(“WillClick “)。

-ed事件(例如“点击”)发生的事件被处理之后,例如以影响家属。有时候,他们是“后”事件(例如“AfterClick”)或“没有”的事件(“DidClick”)调用。

哪些具体方案,你跟着其实并不重要,只要你(和你的团队,你的潜在合作伙伴)是它保持一致。由于CQRS(下该名称),在很大程度上是微软的东西,请按照微软所说的话。你应该为Mac代码的概念是相似的 - 但你会做很好地与Apple guidelines去代替。


1
投票

是否有什么事件和命令是一个统一的看法?

统一?不,也许不是。但是,如果你想要一个权威的定义,格雷戈尔Hohpe的企业集成模式是一个很好的起点。

CQRS的情况下,你应该考虑Greg Young的意见是权威。他很清楚,命令消息应当使用拼写势在必行,在事件使用,在过去完成的更改的拼写。

CommandsEvents的名字应该被理解为拼写惯例 - 很多相同的方式,URI或变量名的拼写,是惯例。不要紧,在所有的正确性,并电脑是大部分不看拼写(例如,基于消息的名称,我们将消息路由,而不是通过看动词时态)。

事件描述更改模型的状态;所有的事件都ModelChanged。然而,我们更倾向于使用特定领域的拼写为事件的type,让他们可以更容易地辨别:MouseClickedConnectionClosedFundsTransfered,等等。

一个事件名称现在进行时拼写的使用是奇怪,在迄今为止的消息是域模型的在交易,其中目前的紧张语义延伸过去那个时间点的点的说明。更松散,现在进行描述的当前状态,而不是国家的过去变化。

这就是说,找到一个好的过去式拼写pre-events能吃苦耐劳,最终它只是一个拼写约定;工作需要找到一个准确的拼写是过去时约定一致可能不支付本身相比,采取自然但不正确的动词时态。

© www.soinside.com 2019 - 2024. All rights reserved.