最近小董经常提起事件风暴(Event Storming),还制定了一个关于它的目标,为了能给这个目标提点反馈,趁机了解了一下事件风暴。
简单来说,事件风暴可以被概括成8个字:
汇聚人员,拆分软件。
从这8个字可以看出,事件风暴的主要目的是拆分软件,主要手段是汇聚人员,这里的人员需要包括相关的技术专家、领域专家和业务专家,尤其是业务专家。
人员汇聚好之后需要干什么呢?当然是头脑风暴,更准确的来说是事件风暴,就是能把自己想到的事件用报事贴贴在墙上,那什么是事件呢?比如用客户单了,客户付款了等一些和领域相关的业务事件。

图片发自简书App

图片发自简书App
再经过一系列的步骤和技巧,比如:
- 按照时间顺序从左到右给事件排序
- 识别关键事件、重复和相似事件。
- 识别泳道,即达成某一目的一组事件
最终把事件划分到不同的区域内,这些区域就是小董经常提到的另一个名词:界限上下文(Bounded Context),就像下面一样:

图片发自简书App
然后你就可以根据这些圈圈拆分软件了,这基本上就是事件风暴的主要内容了,所以如果你想了解、设计或者拆分软件背后的领域模型,那么请使用事件风暴吧。