事件風暴第一步:識別事件

本事件風暴系列是參加張逸老師的課程《面向場景的領域驅動設計全過程工作坊》的學習總結。僅作交流學習。

  • 流程圖:是對現實世界的表現,比如第一步第二步該幹什麼,無法對軟件世界進行描述;
  • 事件風暴:是對軟件世界的描述,是可以推導出軟件實現的。該工作坊的即文章的第1-4步主要是爲了識別出領域的業務全景。

事件

領域事件具有以下四個特徵,

  1. 領域事件是過去發生的與業務有關的事實。
  2. 領域事件具有時間點的特徵,所有事件連接起來會形成明顯的時間軸。 比如打電話時一個時間段對應兩個事件,包含通話已開始和通話已結束,兩個事件。
  3. 領域事件是管理者和運營者重點關心的內容,若缺少該事件,會對管理與運營產生影響。比如支付已開始和支付已結束兩個事件不是領域事件,支付已成功纔是關心的,纔是領域事件。
  4. 領域事件會導致目標對象狀態的變化。包含三種變化:從無到有,狀態的值改變,從有到無(很少)。比如商品已查詢到不算領域事件。銀行賬號已銷戶屬於狀態變化。

故,在事件風暴中,找事件是一件比較難的事情,需要一定的經驗的。

事件的命名

領域事件的描述格式爲 名詞+動詞過去式 ,e.g. OrderCreated;命名時,需要充分的溝通和交流,其目的是爲了提煉統一語言。

統一語言,一個是正確,一個是一致。首先在團隊中要達成一致。最好的情況是正確的且一致的。

錯誤的一致的命名 vs 正確的不一致的命名,前者更好,最後一定要使用 一致的命名。

熱點

在識別事件的過程中,若有以下情況,可以爲事件標記熱點(HotSpot):

  1. 暫不考慮的事件流分支
  2. 出現分歧和爭執的事件
  3. 需要強調的事件或事件對應的領域邏輯

熱點用於後面的提醒,有些熱點會轉爲領域分析模型中的讀模型,比如一些業務規則類的熱點。

事件的驅動力

關於UI,是從用戶角度,識別事件時注意不要把UI當作領域事件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章