写点什么

使用事件风暴的经验

  • 2016-07-05
  • 本文字数:1118 字

    阅读完需:约 4 分钟

Dan North 在最近伦敦举行的 DDD eXchange 大会上的演讲中声称,在领域驱动设计(Domain-Driven Design, DDD)的概念中,事件风暴是非常有用和有价值的。他解释了事件风暴的基本机制,并分享了他近几年为各种不同系统建模的经验。

事件风暴就是把所有的关键参与者都召集到一个很宽敞的屋子里来开会,并且使用便利贴来描述系统中发生的事情。一张桔黄色的便利贴代表一个领域事件,在上面用一句过去时的话描述曾经发生过什么事情。为了让自己关注最终目标,North 经常从结束时的最后一个事件开始,然后把第一个事件加上来,就有了一个从开始到结束的完整时间表。

其它常见的便利贴有:

  • 用蓝色的便利贴来为被命令触发的事件建模。命令的发起者可能是人,是注入到系统中的外部事件,或是定时器等
  • 用粉色的便利贴来为疑问或难题建模
  • 用绿色便利贴为人们看见了什么或者想看见什么建模,即视图或者阅读模式

North 也表示并不一定要用这种方法,他建议使用对你建模的问题最有效的办法。

North 说事件风暴最强大之处在于为结果建模。我们对发生过什么事情感兴趣,我们就知道事情将来可能的结果集。用传统方法时我们总是围绕着过程、活动和人的行为建模,这太受限了,因为最终都是从人的行为开始。如果换个角度我们关注这些活动的结果,把它们建模为事件,我们就有了另外的作法。

事件风暴如此有效的原因在于很多有用的工作都是并行完成的。人们总是关注他们自己日常做的那一块,这样就自然而然地把人按工作内容给分了组,每个组在做模型的不同部分。这样就产生了模型里面的聚集或者叫子系统。象经理这样的知道整体流程的人则从全局的角度去看待它,检查确保所有的子系统最后可以整合得起来。

建模的过程中有一个非常重要的步骤是问什么事件是必要的——就是那些要得到结果就必须要发生的事件,与其对应的是那些只做为流程的一部分发生又不会影响结果的事件。这个问题可以把那些不必要的事件剔除掉而显著的简化整个流程。

North 说事件风暴与影响图谱、故事图谱和其他的协作发现活动等都是针对相同问题域的。他会使用事件风暴来让团队达成共识,然后使用影响图谱来获得方向感,最后使用故事图谱来找到开发和提交软件的方法。

Vaughn Vernon 在一个早些的演讲中提到事件风暴对于定义模型应用的上下文、为模型划定边界是一个非常重要的工具。

事件风暴的发明者 Alberto Brandolini 最近在写一本书: Introducing EventStorming

明年的 DDD Exchange 大会计划在 2017 年四月下旬召开,现在正开放注册。

查看英文原文 Experiences Using Event Storming


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-07-05 19:005277
用户头像

发布了 152 篇内容, 共 70.6 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

中科大脑知识图谱平台建设及业务实践

NebulaGraph

图数据库 知识图谱

VPN的应用场景

源字节1号

小程序开发

企评家,企业成长性评价系统怎么用?

企评家

企业成长性分析 企评家 企业投资价值评价

基于边缘计算的云游戏场景实践

火山引擎边缘云

最佳实践 边缘计算 实时音视频 云游戏

对象存储 S3 在分布式文件系统中的应用

焱融科技

对象存储 存储 分布式存储 云存储

上新了 亚麻云 | 远程办公有点上头?解锁云上应用现代化的奥秘

亚马逊云科技 (Amazon Web Services)

远程办公 应用

常用的 Lambda 表达式案例解析,工作中都会用到!

CRMEB

固态硬盘和机械硬盘的区别(7大区别,简单易懂)

源字节1号

软件开发 前端开发 后端开发 小程序开发

实验室信息管理系统如何工作?

低代码小观

低代码 实验室管理系统 企业管理系统 LIMS实验室信息管理系统 企业管理软件

关于敏捷测试象限的“秘密”

BY林子

敏捷开发 敏捷测试 测试策略

给小白的 PG 容器化部署教程(上)

RadonDB

postgresql 容器化 数据库·

艾莫尔研究院基于Karmada的落地实践

华为云开发者联盟

云原生 Karmada 自动化集群管理

【直播预告】研发效率百倍提升的秘密,这些破圈思路了解一下!

FinClip

小程序 finclip 直播预告

大咖说·图书分享|阿里官方为你分享内部测试之道

大咖说

阿里巴巴 测试 开发

MSVC编译静态库

Loken

5月月更

直播回顾|携手 Opentelemetry 中国社区,走进可观测性

Daocloud 道客

云原生 可观测性

【技术干货】代码示例:使用 Apache Spark 连接 TDengine

TDengine

数据库 tdengine 开源 时序数据库

编程,不止有代码,还有艺术

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint

UniqueMergeTree:支持实时更新删除的ClickHouse表引擎

字节跳动数据平台

Clickhouse 表引擎 实时

3D赛车【附源码】设计实现

JavaPub

【等保测评】等保测评师怎么考,前景怎么样?

行云管家

网络安全 IT运维 等保测评 等保测评师

A New ETL Language -- Easy SQL

Bright

数据开发 ETL 大数据开发 EasySQL

MSVC编译多个C程序文件

Loken

音视频 5月月更

精彩回顾|KubeCon EU 2022 Kubernetes Batch + HPC 专题日

Daocloud 道客

Kubernetes 云原生 HPC batch

PostgreSQL 15 新特性解读 | 墨天轮优质文章合集

墨天轮

数据库 sql postgresql 新特性

一份优秀的产品帮助文档怎么写?

小炮

【等保测评】2022年北京正规等保测评机构新名单公布

行云管家

等保测评 北京

git bisect:让你闭眼都能定位疑难 bug的利器

华为云开发者联盟

开发 bug git bisect 二分法定位

揭秘华为云GaussDB(for Influx)最佳实践:hint查询

华为云开发者联盟

数据库 倒排索引 GaussDB(for Influx) hint 单时间线

直击中小企业转型通用痛点 联想百应推出智能会议解决方案

Geek_2d6073

ZooKeeper 在阿里巴巴的服务形态演进

阿里巴巴云原生

Apache zookeeper 阿里云 开源 云原生

使用事件风暴的经验_语言 & 开发_Jan Stenberg_InfoQ精选文章