DDD事件风暴研讨会备忘单


事件风暴是软件系统的快速设计技术,涉及技术人员和领域专家/业务分析师。它最适合领域驱动设计环境,并倾向于/准备事件溯源和CQRS。该技术最初由Alberto Brandolini引入,由Vaughn Vernon在Domain Driven Design Distilled中采用。它也是他的iDDD研讨会系列的一部分。
该备忘单旨在提供有关准备和促进事件风暴研讨会的简短见解。它并非旨在对该主题进行完整的介绍,需要事先了解DDD和事件风暴才能负责任地使用本文档。

所需材料

准备:
事前:

  • 邀请域专家和开发人员。就个人而言,我的目标是不超过8.但由于建模空间很大,讨论组将会出现,因此更多的人也可以很好地工作。
  • 安排会话不超过2或3个小时。计划后续会议。

在会议室准备
  • 从房间里取走椅子。人们应该到处走走。正如阿尔贝托所说,座位是有毒的。
  • 提前准备思路,或者,对于初次参与者,按照执行中的描述迭代地创建图例。您可以使用预先准备好的卡片,例如本文档附带的卡片
  • 准备建模空间。使用贴在大墙上的纸卷。1 mx 10 m应视为最小尺寸。越大越好。准备好扩大空间。
  • 布置粘滞便笺和标记。

执行
您可以在下面按照Vaughn Vernon推荐的顺序进行。可以在后续步骤中添加其他人工制品,但重要的是大致遵循: 事件→命令→聚合→边界→查看顺序。
  1. 创建或排列图例,以便所有参与者都能很好地理解颜色注释/注释的语义。
  2. 用橙色便签代表领域事件并将它们放置在业务流程(=时间序列)顺序的建模空间中。该名称是过去时的名词/动词组合,例如。ItemOrdered
  3. 如果问题领域与流程或questions出现没有能够得到立即解析的概念,使用紫色或红色的便签标注。
  4. 某些领域事件将形成业务流程运行。用淡紫色标记流程的名称,并从事件流程到业务流程绘制一个箭头。
  5. 当您认为已捕获大多数领域事件时,请关注创建这些事件的命令。把它们靠在引起它们的事件的淡蓝色上。过程是在时间轴上从左到右进行。这个名字就像是一个动作OrderItem(Order是一个动词)。
  6. 如果特定用户角色执行命令,请注意在命令下方使用黄色。我喜欢绘制简笔画来区分它们。
  7. 当您认为自己拥有所有命令时,请将聚合放在黄色便签上,并将它们放在此聚合上执行的命令与其导致的事件之间。这个名字就像一个名词“Item条目”,如果多次使用聚合,请创建副本并将其重复放在时间轴上。
  8. 将有界上下文(实线)和子域(虚线)绘制到建模表面上。只有当你觉得你已经足够了解边界时,你才应该这样做。使用粉红色标记命名上下文。
  9. 绘制箭头以显示事件在您的上下文之间流动的方向。
  10. 识别用户在系统中执行任务所需的视图。将它们放在聚合下方的绿色便签上。

可选添加:

  • UI模拟与界面视图
  • 重要测试的验收测试草图
  • 用户角色
  • 阅读模型

上文中提到的各种颜色的语义如下所示,以供参考。

  • 领域事件 - 橙色
  • 命令 - 浅蓝色
  • 聚合 - 黄色
  • 问题 - 红色或紫色
  • 用户角色/角色 - 黄色与棒图
  • 意见 - 绿色
  • 有界上下文- 实线,粉红色的笔记
  • 子域名 - 虚线
  • 事件流程 - 箭头