事件风暴EventStorming建模法

  事件是捕捉上下文语言中的重要抓手,通过事件建模能够掌握事件这个事实发生的上下文背景知识,从而划定上下文的边界,形成DDD界限上下文。

  事件风暴是一场发现事件模型的头脑风暴会议,通过领域专家、产品经理和技术人员共同头碰头的群策群力,以事件模型为主要线索,发现业务系统中发生的代表重要事实的重要事件。

  事件风暴是Alberto Brandolini的心血结晶,它是Gamestorming和领域驱动设计(DDD)原则的综合学习实践。

  事件建模对信息系统而言比对敏捷性所希望的更为真实。 敏捷是对90年代拙劣的瀑布式设计,实施,测试,部署方案的一种下意识的反应,而设计这个环节被Agile Manifesto之类的圣经被抛弃。

  事件风暴催化并加速小组学习,通常在几小时或几天内实现更传统的建模技术从未做过的事情 - 对软件必须运行的领域的共同理解。

  要了解事件风暴,您首先需要了解两个关键术语:一个是领域事件是什么,这是领域专家对其业务领域感兴趣的、发生的情况。领域专家不感兴趣数据库,网络插座,或设计模式,但关注会发生的事情的业务领域。领域事件以不指定特定实现的方式捕获这些事实。

事件风暴如何运作
  1. 开一场事件风暴会议,每个人都参与其中,协调人必须使团队保持专注和参与,指导进展到完整的域模型。
  2. 从领域事件开始,向前和向后遍历模型,以确保涵盖所有内容。
  3. 添加导致事件的命令或触发器,并考虑所有命令溯源(ES:EventSoucring),包括用户,外部系统甚至时间。
  4. 识别聚合接受命令和完成事件,并将聚合组在一起成为有界上下文。
  5. 识别关键测试场景、用户和目标并将其合并到模型中。
  6. 添加有界上下文之间的关系以创建上下文映射。
  7. 最后用代码对所得模型进行挑战,以验证组学习并验证模型。

主持人必须是DDD从业者才能指导小组走向完整的模型。包括非技术产品所有者在内的每个人都可以参与对领域的理解和建模。整个团队了解域越好,软件实施越有可能反映域,这是DDD的主要目的。

 

 

下图是远程事件风暴建模.

 

教程

用事件替代你的DTO数据结构

用事件风暴分解单体设计微服务 - capital

事件风暴将掀起一场新革命

采访DDD事件风暴发明者Alberto Brandolini

建模风暴(使用领域事件作为用户故事的建模案例)

事件风暴EventStorming与事件建模EventModeling的区别

DDD事件风暴研讨会备忘单

如何实现DDD事件建模的详细步骤 - goeleven

#事件风暴内EventStorming