工程師
其他
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

面向場景的領域驅動設計全過程工作坊

Bruce Zhang

前ThoughtWorks 架構師、敏捷教練

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企
業(yè),任職?角?色為?高級軟件?工程師,架構師,技術總監(jiān),?首席咨詢師?,F(xiàn)為深圳?
大眼科技有限公司的?首席架構師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、
Python、JavaScript 等多種語?言,熟練掌握?面向對象思想、領域驅動設計、函數(shù)式語
?言、架構、?大數(shù)據(jù)分析、敏捷與過程改進,并致?力于?大型軟件企業(yè)的?面向服務系
統(tǒng)架構設計以及互聯(lián)網(wǎng) Web 系統(tǒng)架構設計。在 ThoughtWorks 期間,作為?一名咨詢師,
主要為客戶提供組織的敏捷轉型、過程改進、系統(tǒng)架構監(jiān)理、領域設計、代碼質(zhì)量提升等咨
詢?工作。目前,作為公司產(chǎn)品的架構師,致力于商業(yè)智能產(chǎn)品與?大數(shù)據(jù)分析平臺的開發(fā)
與架構設計

著譯作包括《解構領域驅動設計》、《軟件設計精要與模式》、《架構寶典》、《高可用可伸縮微服務架構》、《Java設計模式》、《恰如其分的軟件架構》、《WCF服務編程》、《人件》、《重構——改善既有代碼設計》評注版、《架構之美》評注版。

作為主持?人或講師多次被應邀參加如中國軟件?大會、QCon、MPD 大會、
Agile China、Scrum Gathering 等?大型會議,并作為培訓講師曾先后為摩托羅拉、惠普、
花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓架構、
設計、DDD、敏捷等專題內(nèi)容。著譯作包括《軟件設計精要與模式》、《Java 設計模式》、《恰如其分的軟件架構》、《WCF 服務編程》、《?人件》等。目前,正在撰寫《架構之
美(Beatiful Architecture)》評注版,即將出版。

先后就職于中興通訊、惠普 GDCC、中軟國際、ThoughtWorks 等?大型中外企 業(yè),任職?角?色為?高級軟件?工程師,架構師,技術總監(jiān),?首席咨詢師?,F(xiàn)為深圳? 大眼科技有限公司的?首席架構師,聯(lián)合創(chuàng)始?人。精通包括 C#、Java、Ruby、Scala、 Python、JavaScript 等多種語?言,熟練掌握?面向對象思想、領域驅動設計、函數(shù)式語 ?言、架構、?大數(shù)據(jù)分析、敏捷與過程改進,并致?力于?大型軟件企業(yè)的?面向服務系 統(tǒng)架構設計以及互聯(lián)網(wǎng) Web 系統(tǒng)架構設計。在 ThoughtWorks 期間,作為?一名咨詢師, 主要為客戶提供組織的敏捷轉型、過程改進、系統(tǒng)架構監(jiān)理、領域設計、代碼質(zhì)量提升等咨 詢?工作。目前,作為公司產(chǎn)品的架構師,致力于商業(yè)智能產(chǎn)品與?大數(shù)據(jù)分析平臺的開發(fā) 與架構設計 著譯作包括《解構領域驅動設計》、《軟件設計精要與模式》、《架構寶典》、《高可用可伸縮微服務架構》、《Java設計模式》、《恰如其分的軟件架構》、《WCF服務編程》、《人件》、《重構——改善既有代碼設計》評注版、《架構之美》評注版。 作為主持?人或講師多次被應邀參加如中國軟件?大會、QCon、MPD 大會、 Agile China、Scrum Gathering 等?大型會議,并作為培訓講師曾先后為摩托羅拉、惠普、 花旗銀?行、攜程、TCL、中興通訊、賽 門鐵克,廣發(fā)證券、平安銀?行等企業(yè)培訓架構、 設計、DDD、敏捷等專題內(nèi)容。著譯作包括《軟件設計精要與模式》、《Java 設計模式》、《恰如其分的軟件架構》、《WCF 服務編程》、《?人件》等。目前,正在撰寫《架構之 美(Beatiful Architecture)》評注版,即將出版。

課程費用

6800.00 /人

課程時長

2

成為教練

課程簡介

工作坊介紹:
領域驅動設計全過程工作坊將以事件風暴為縱貫線,以領域場景為橫切面,驅動從戰(zhàn) 略設計到戰(zhàn)術設計的全生命周期的完整開發(fā)過程。內(nèi)容涵蓋事件風暴、限界上下文、 上下文映射、場景驅動設計和測試驅動開發(fā)。整個工作坊圍繞為學在線課堂的案例全程演練具有實操價值的領域驅動設計方法。

目標收益

通過本次工作坊,你將能夠深刻體會領域驅動從戰(zhàn)略設計到戰(zhàn)術設計的全過程;你將學到如何將事件風暴運用到具體的項目開發(fā)中,并利用它進行業(yè)務分析、架構設計和編程開發(fā),在降低業(yè)務復雜度的同時提高開發(fā)質(zhì)量;你將學到如何利用場景驅動設計固化設計和開發(fā)過程,在現(xiàn)有開發(fā)團隊中實現(xiàn)領域驅動設計在復雜系統(tǒng)下的軟著陸。

培訓對象

1、專注于行業(yè)軟件開發(fā)或互聯(lián)網(wǎng)開發(fā)的軟件從業(yè)者
2、希望掌握事件風暴方法的業(yè)務分析人員與開發(fā)人員
3、希望提高領域建模與分析能力的軟件設計人員
4、希望掌握領域驅動設計方法并運用到項目中的后端開發(fā)人員

課程大綱

領域驅動設計過程 (1小時) 貫穿戰(zhàn)略式設計到戰(zhàn)術式設計,整體介紹領域驅動設計的完整過程和基本概念。
事件風暴(1小時) 介紹事件風暴的基本概念,包括領域事件的基本特征,事件風暴的設計驅動力,并介紹事件風暴的可視化符號特征,為開展事件風暴工作坊做準備。
探索業(yè)務全景 (3小時) 通過識別事件風暴的領域事件,并利用事件因果關系的驅動力識別各自的前置事件和 后置事件,形成一條或多條代表了時間軸的事件流。
探索過程包括:
? 識別代表業(yè)務全景的領域事件
? 標記代表問題、重要關注點的熱點
? 為每個領域事件識別參與者
? 對所有事件進行橫向和縱向的切分,獲得候選限界上下文
? 遍歷所有事件,確定上下文映射

領域分析建模 (2小時) 針對限界上下文內(nèi)的領域事件進行領域分析建模。這個過程屬于事件風暴的第二階段,將進一步確定領域分析模型。分析過程如下:
? 根據(jù)領域事件確定決策命令
? 根據(jù)決策命令確定讀模型
? 根據(jù)決策命令和領域事件之間的關系確定聚合
? 根據(jù)讀模型、聚合獲得領域分析模型
場景驅動設計 (1小時) 選擇一個領域場景,由參與者開啟一個初始狀態(tài),開始執(zhí)行具有時序性的連續(xù)任務, 角色之間采用行為協(xié)作來共同滿足業(yè)務價值,這就是場景驅動設計(Scenario?Driven Design)。
這個過程是從領域分析模型到領域設計模型的關鍵步驟,同時也有利于降低開發(fā)團隊 的設計門檻,形成固化的領域驅動戰(zhàn)術設計過程。
場景驅動設計的過程 (2小時) 場景驅動設計以事件風暴識別出來的領域場景為起點,以領域分析模型中的模型對象 結合角色構造型作為參與協(xié)作的設計元素,固化為一個可按部就班執(zhí)行的動態(tài)設計過 程。整個設計過程分為三個步驟:
? 識別場景:從需求中識別出獨立的具有業(yè)務價值的領域場景
? 分解任務:根據(jù)職責的層次對領域場景進行任務分解
? 分配職責:為領域驅動設計角色構造型分配不同層次的職責
測試驅動開發(fā) (2小時) 場景驅動設計與測試驅動開發(fā)之間形成了一種相輔相成的設計伴侶。場景驅動設計分解出來的任務以及角色構造型的協(xié)作時序圖,可以作為測試驅動開發(fā)的起點。測試驅動開發(fā)的代碼編寫又反過來驗證場景驅動設計的正確性,并通過重構改進代碼質(zhì)量, 并重新發(fā)現(xiàn)之前未曾發(fā)現(xiàn)的隱含概念。在本次工作坊中,我們將選擇一個領域場景, 嚴格按照測試驅動開發(fā)的開發(fā)節(jié)奏進行。
領域驅動設計過程 (1小時)
貫穿戰(zhàn)略式設計到戰(zhàn)術式設計,整體介紹領域驅動設計的完整過程和基本概念。
事件風暴(1小時)
介紹事件風暴的基本概念,包括領域事件的基本特征,事件風暴的設計驅動力,并介紹事件風暴的可視化符號特征,為開展事件風暴工作坊做準備。
探索業(yè)務全景 (3小時)
通過識別事件風暴的領域事件,并利用事件因果關系的驅動力識別各自的前置事件和 后置事件,形成一條或多條代表了時間軸的事件流。
探索過程包括:
? 識別代表業(yè)務全景的領域事件
? 標記代表問題、重要關注點的熱點
? 為每個領域事件識別參與者
? 對所有事件進行橫向和縱向的切分,獲得候選限界上下文
? 遍歷所有事件,確定上下文映射

領域分析建模 (2小時)
針對限界上下文內(nèi)的領域事件進行領域分析建模。這個過程屬于事件風暴的第二階段,將進一步確定領域分析模型。分析過程如下:
? 根據(jù)領域事件確定決策命令
? 根據(jù)決策命令確定讀模型
? 根據(jù)決策命令和領域事件之間的關系確定聚合
? 根據(jù)讀模型、聚合獲得領域分析模型
場景驅動設計 (1小時)
選擇一個領域場景,由參與者開啟一個初始狀態(tài),開始執(zhí)行具有時序性的連續(xù)任務, 角色之間采用行為協(xié)作來共同滿足業(yè)務價值,這就是場景驅動設計(Scenario?Driven Design)。
這個過程是從領域分析模型到領域設計模型的關鍵步驟,同時也有利于降低開發(fā)團隊 的設計門檻,形成固化的領域驅動戰(zhàn)術設計過程。
場景驅動設計的過程 (2小時)
場景驅動設計以事件風暴識別出來的領域場景為起點,以領域分析模型中的模型對象 結合角色構造型作為參與協(xié)作的設計元素,固化為一個可按部就班執(zhí)行的動態(tài)設計過 程。整個設計過程分為三個步驟:
? 識別場景:從需求中識別出獨立的具有業(yè)務價值的領域場景
? 分解任務:根據(jù)職責的層次對領域場景進行任務分解
? 分配職責:為領域驅動設計角色構造型分配不同層次的職責
測試驅動開發(fā) (2小時)
場景驅動設計與測試驅動開發(fā)之間形成了一種相輔相成的設計伴侶。場景驅動設計分解出來的任務以及角色構造型的協(xié)作時序圖,可以作為測試驅動開發(fā)的起點。測試驅動開發(fā)的代碼編寫又反過來驗證場景驅動設計的正確性,并通過重構改進代碼質(zhì)量, 并重新發(fā)現(xiàn)之前未曾發(fā)現(xiàn)的隱含概念。在本次工作坊中,我們將選擇一個領域場景, 嚴格按照測試驅動開發(fā)的開發(fā)節(jié)奏進行。

課程費用

6800.00 /人

課程時長

2

預約體驗票 我要分享

近期公開課推薦

近期公開課推薦

活動詳情

提交需求