【2019領域驅動設計峰會】領域場景驅動設計實戰工作坊

  • 2019 年 10 月 7 日
  • 筆記

領域場景驅動設計實戰工作坊

時間:2019年,11月29日

地點:北京,麗都皇冠假日酒店

【 工 作 坊 介 紹 】

領域場景驅動設計實戰工作坊將以事件風暴為縱貫線,以領域場景為橫切面,引入場景驅動設計與測試驅動開發完成從領域建模到編碼實現的全過程實戰。內容涵蓋事件風暴、場景驅動設計和測試驅動開發。整個工作坊圍繞為學在線課堂的案例全程演練具有實操價值的領域驅動設計方法。

【 工 作 坊 受 眾 】

  • 專註於行業軟體開發或互聯網開發的軟體從業者
  • 希望掌握事件風暴方法的業務分析人員與開發人員
  • 希望提高領域建模與分析能力的軟體設計人員
  • 希望掌握領域驅動設計方法並運用到項目中的後端開發人員

【 工 作 坊 價 值 】

領域場景驅動設計作為一種固化的軟體設計過程,目的是為了降低領域驅動搞設計對開發團隊技術能力水平的要求,形成一種更容易落地的開發實踐,有利於企業在團隊組織內進行推廣和實踐。

【 參 與 收 益 】

通過本次工作坊,你將學到如何將事件風暴運用到具體的項目開發中,並利用它進行領域建模、設計和編程開發,在降低業務複雜度的同時提高開發品質;你將學到如何利用場景驅動設計固化設計和開發過程,幫助現有開發團隊實現領域驅動設計在複雜系統下的軟著陸。

【 工 作 坊 環 節 】

領域驅動設計過程

貫穿戰略式設計到戰術式設計,整體介紹領域驅動設計的完整過程和基本概念。

事件風暴

介紹事件風暴的基本概念,包括領域事件的基本特徵,事件風暴的設計驅動力,並介紹事件風暴的可視化符號特徵,為開展事件風暴工作坊做準備。

探索業務全景

通過識別事件風暴的領域事件,並利用事件因果關係的驅動力識別各自的前置事件和後置事件,形成一條或多條代表了時間軸的事件流。探索過程包括:

  • 識別代表業務全景的領域事件
  • 標記代表問題、重要關注點的熱點
  • 為每個領域事件識別參與者

領域分析建模

針對限界上下文內的領域事件進行領域分析建模。這個過程屬於事件風暴的第二階段,將進一步確定領域分析模型。分析過程如下:

  • 根據領域事件確定決策命令
  • 根據決策命令確定讀模型
  • 根據決策命令和領域事件之間的關係確定聚合
  • 根據讀模型、聚合獲得領域分析模型

場景驅動設計

選擇一個領域場景,由參與者開啟一個初始狀態,開始執行具有時序性的連續任務,角色之間採用行為協作來共同滿足業務價值,這就是場景驅動設計(Scenario Driven Design)。

這個過程是從領域分析模型到領域設計模型的關鍵步驟,同時也有利於降低開發團隊的設計門檻,形成固化的領域驅動戰術設計過程。

場景驅動設計的過程

場景驅動設計以事件風暴識別出來的領域場景為起點,以領域分析模型中的模型對象結合角色構造型作為參與協作的設計元素,固化為一個可按部就班執行的動態設計過程。整個設計過程分為三個步驟:

  • 識別場景:從需求中識別出獨立的具有業務價值的領域場景
  • 分解任務:根據職責的層次對領域場景進行任務分解
  • 分配職責:為領域驅動設計角色構造型分配不同層次的職責

測試驅動開發

場景驅動設計與測試驅動開發之間形成了一種相輔相成的設計伴侶。場景驅動設計分解出來的任務以及角色構造型的協作時序圖,可以作為測試驅動開發的起點。測試驅動開發的程式碼編寫又反過來驗證場景驅動設計的正確性,並通過重構改進程式碼品質,並重新發現之前未曾發現的隱含概念。在本次工作坊中,我們將選擇一個領域場景,嚴格按照測試驅動開發的開發節奏進行。