事件风暴第一步:识别事件

本事件风暴系列是参加张逸老师的课程《面向场景的领域驱动设计全过程工作坊》的学习总结。仅作交流学习。

事件风暴第一步:识别事件_第1张图片

  • 流程图:是对现实世界的表现,比如第一步第二步该干什么,无法对软件世界进行描述;
  • 事件风暴:是对软件世界的描述,是可以推导出软件实现的。该工作坊的即文章的第1-4步主要是为了识别出领域的业务全景。

事件

领域事件具有以下四个特征,

  1. 领域事件是过去发生的与业务有关的事实。
  2. 领域事件具有时间点的特征,所有事件连接起来会形成明显的时间轴。 比如打电话时一个时间段对应两个事件,包含通话已开始和通话已结束,两个事件。
  3. 领域事件是管理者和运营者重点关心的内容,若缺少该事件,会对管理与运营产生影响。比如支付已开始和支付已结束两个事件不是领域事件,支付已成功才是关心的,才是领域事件。
  4. 领域事件会导致目标对象状态的变化。包含三种变化:从无到有,状态的值改变,从有到无(很少)。比如商品已查询到不算领域事件。银行账号已销户属于状态变化。

故,在事件风暴中,找事件是一件比较难的事情,需要一定的经验的。

事件的命名

领域事件的描述格式为 名词+动词过去式 ,e.g. OrderCreated;命名时,需要充分的沟通和交流,其目的是为了提炼统一语言。

统一语言,一个是正确,一个是一致。首先在团队中要达成一致。最好的情况是正确的且一致的。

错误的一致的命名 vs 正确的不一致的命名,前者更好,最后一定要使用 一致的命名。

热点

在识别事件的过程中,若有以下情况,可以为事件标记热点(HotSpot):

  1. 暂不考虑的事件流分支
  2. 出现分歧和争执的事件
  3. 需要强调的事件或事件对应的领域逻辑

热点用于后面的提醒,有些热点会转为领域分析模型中的读模型,比如一些业务规则类的热点。

事件的驱动力

关于UI,是从用户角度,识别事件时注意不要把UI当作领域事件

事件风暴第一步:识别事件_第2张图片

你可能感兴趣的:(DDD)