- 管制與減負之間的平衡——2018·勞
- “招標投標領域突出問題專項治理方案解
- 領域驅(qū)動軟件設計實戰(zhàn)訓練營 培訓班
- 金牌班組長核心能力提升訓練營 ——從
- 班組建設與班組長勝任力提升
- 戰(zhàn)略性降本增效方案班2.0
- 新政新規(guī)下延遲退休、末等調(diào)整、違紀處
- 科技助力智能制造轉(zhuǎn)型升級高研班 ——
- SQE供應商質(zhì)量管理高級研修班
- 生產(chǎn)計劃與物料控制高級研修班(PMC
- PDCA管理培訓班
- 2014浙大心理咨詢師培訓班
- 高級DOE(實驗設計)研修培訓班
- 青少年演講口才培訓班實戰(zhàn)公眾演說
- EXCEL統(tǒng)計分析理論與實例特訓班教
- 精益生產(chǎn)與供應商選擇、評估及全面管理
- 廣告公司中層管理人員管理技能培訓班
- 汽車公司大客戶銷售技巧與中國式客戶服
- 廣汽豐田精益考察培訓班
- 紡織會計實踐做帳班--盛澤會計實務操
領域驅(qū)動軟件設計實戰(zhàn)訓練營 培訓班
課程編號:58515 課程人氣:547
課程價格:¥7800 課程時長:3天
- 課程說明
- 講師介紹
- 選擇同類課
中高級工程師、企業(yè)架構(gòu)師、軟件設計師、技術決策/解決方案人員等。
【培訓收益】
現(xiàn)在是一個快速變化的時代,我們不得不面對激烈的競爭和快速的市場變化。快速的變化,帶來軟件需求的快速變革。因此,所有的軟件企業(yè)不得不面對這樣一個事實:當軟件系統(tǒng)經(jīng)歷了無數(shù)次變更以后,程序變得凌亂不堪、難于維護。而軟件經(jīng)過了無數(shù)次變更以后,系統(tǒng)的業(yè)務邏輯變得越來越復雜,我們的設計開始迷失方向。這種設計的迷失,加快了軟件退化的速度,使得任何一個變更,都變得成本巨大。這就是現(xiàn)代軟件企業(yè)不得不面對的困境。 如何解決這種軟件的困境呢?領域驅(qū)動設計,給我們指明了方向。他通過將軟件設計還原到真實世界,將軟件設計與真實世界對應起來。這樣,當業(yè)務邏輯變得越來越復雜的時候,軟件需求也開始頻繁變更的時候,我們只需要將業(yè)務還原到真實場景,依據(jù)真實世界來指導我們的軟件設計,設計思路就會清晰起來,我們就不再迷失方向。 本課程就是在講解如何通過領域驅(qū)動設計,來應對復雜系統(tǒng)的需求變更,實現(xiàn)高質(zhì)量的軟件設計,避免代碼腐化。課程首先剖析了軟件退化的根源,通過對真實系統(tǒng)一步一步退化的過程演變,揭示軟件退化的根源,為解決問題指明了方向。接著,有針對性地講解領域驅(qū)動設計是如何解決這些問題,為學員能夠有效提高軟件設計質(zhì)量,提供了思路與方向 然后,通過真實案例來一步一步講解如何進行領域驅(qū)動設計,如何通過領域驅(qū)動設計來指導軟件變更,實現(xiàn)高質(zhì)量的軟件設計。本課程注重實戰(zhàn),因此每一部分的講解都是基于真實場景講解,并且在真實場景中思考與練習。
第一天
第一單元
剖析領域驅(qū)動的設計思想 為什么我們需要領域驅(qū)動設計
1. 現(xiàn)如今DDD越來越流行
2. DDD并不能幫助新項目的軟件開發(fā)
3. DDD真正的作用是日后長期的維護
實踐DDD的4大難題:
1. 準確理解為什么要采用DDD?
2. 怎樣正確地進行業(yè)務領域建模?
3. 怎樣用領域模型指導開發(fā)與變更?
4. 如何設計支持領域驅(qū)動的架構(gòu)設計?
DDD真正的作用是應對日后的軟件維護
1. 我們現(xiàn)在面對的是快速變化的時代
2. 變更越頻繁,代碼質(zhì)量下降越快
案例:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程
案例分析:揭示軟件退化的根源
DDD的解決之道:業(yè)務領域建模
3. 系統(tǒng)規(guī)模越來越大,系統(tǒng)越來越復雜
案例:演示嵌入式溫控系統(tǒng)越來越難于維護的根源
案例分析:領域分析才是解決之道
DDD的解決之道:基于限界上下文拆分系統(tǒng)
案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過程
1. 起初的設計
2. 隨后的變更
3. 質(zhì)量不斷下降的過程
軟件質(zhì)量下降的根源:
1. 軟件總是因變更而變得越來越復雜
2. 軟件結(jié)構(gòu)已經(jīng)不再適應復雜的軟件需求
3. 必須要調(diào)整軟件結(jié)構(gòu)以適應新的軟件需求
DDD的建模過程:
1. 每次需求變更時先對需求進行領域分析
2. 基于領域分析先進行領域模型的變更
3. 基于領域模型的變更去指導程序的變更
DDD是應對軟件復雜性之道
1. 剖析領域驅(qū)動的設計思想
2. 服務、實體與值對象的概念
3. 充血模型與貧血模型的設計思路
4. 問題域、子域與限界上下文劃分
基于領域模型的設計變更
1. 演練基于DDD的設計與變更過程
2. 演練領域模型如何指導數(shù)據(jù)庫設計
3. 演練領域模型如何指導程序設計
4. 聚合、倉庫與工廠:傻傻分不清
5. 限界上下文:系統(tǒng)拆分的利器
案例:重新演練電商網(wǎng)站付款功能的變更過程
第一個版本的領域模型與設計
第一次變更的分析設計過程
第二場變更的設計實現(xiàn)
第三次變更的設計實現(xiàn)
第四次變更與架構(gòu)演化
第一天
第二單元
演練領域驅(qū)動的設計過程 領域建模分析過程
演練案例:在線訂餐系統(tǒng)的領域設計過程
1. 從領域中吸取知識
2. 統(tǒng)一語言建模
3. 事件風暴會議
1) 梳理業(yè)務流程,識別領域事件
2) 為每個領域事件識別參與者、行為、相關事物
3) 標記事物之間的關系、聚合、聚合根
4) 根據(jù)業(yè)務劃分限界上下文
5) 遍歷所有事件,確定上下文映射
4. 業(yè)務領域建模
1) 為每個領域事件構(gòu)建業(yè)務領域模型
2) 劃分主題域、支撐域、通用域
3) 落實各子域之間的聯(lián)系、接口及事件通知機制
基于領域模型的微服務設計
1. 小而專的微服務設計
2. 限界上下文與微服務拆分
3. 上下文地圖與微服務接口
4. 各微服務中實體、值對象與服務的設計
5. 各微服務中聚合、工廠與倉庫的設計
6. 領域模型4種關系3種繼承的數(shù)據(jù)庫設計
7. 聚合層的設計、工廠和倉庫的實現(xiàn)
8. 基于DDD的微服務架構(gòu)分層
解決DDD的設計難題
1. 跨庫查詢的設計難題與設計實現(xiàn)
2. 領域事件的通知機制與設計實現(xiàn)
3. 微服務接口的防腐層設計
4. 狀態(tài)查詢跟蹤的設計思路與代碼實現(xiàn)
分組練習:按照事件風暴的步驟進行業(yè)務領域建模
1. 召開事件風暴會議
2. 進行業(yè)務領域建模
3. 基于領域模型設計開發(fā)系統(tǒng)
第二天
第三單元
領域驅(qū)動設計實踐 實戰(zhàn)演練:遠程智慧醫(yī)療大數(shù)據(jù)平臺設計過程
1. 系統(tǒng)業(yè)務規(guī)劃與戰(zhàn)略設計
2. 子系統(tǒng)→限界上下文→功能模塊劃分
3. 由粗到細的用例建模
4. 各子域業(yè)務領域建模
1) 智慧診療數(shù)據(jù)模型的領域分析
2) 診所管理信息系統(tǒng)的領域分析
5. 各子域的接口設計
1) 上下文地圖的模型分析
2) 微服務接口的方案設計
6. 微服務的技術落地實踐
1) 去中心化的技術治理
2) 微服務的技術中臺
3) 微服務的云端應用平臺
起初:一個傳統(tǒng)的診所管理系統(tǒng)向互聯(lián)網(wǎng)轉(zhuǎn)型
1) 起初沒有采用領域驅(qū)動設計,也運行了這么多年
2) 現(xiàn)在向互聯(lián)網(wǎng)轉(zhuǎn)型,業(yè)務變得越來越復雜,怎么開始領域建模?
第一步:站在全局的系統(tǒng)建設規(guī)劃
第二步:DDD戰(zhàn)略設計與限界上下文劃分
第三步:各子域的業(yè)務領域建模
第四步:上下文地圖與各子域的接口設計
轉(zhuǎn)型成互聯(lián)網(wǎng)連鎖診所系統(tǒng),又該如何分析設計
1) 基于領域模型進行新需求的分析
2) 基于領域模型進行原有代碼的更新維護
3) 基于限界上下文進行微服務的拆分,以及這個過程中的坑
第一步:基于DDD進行戰(zhàn)略設計的調(diào)整
第二步:各子域的業(yè)務領域建模調(diào)整
第四步:上下文地圖與各子域的接口設計
第五步:基于DDD的微服務拆分
基于DDD的數(shù)據(jù)庫設計與去中心化的數(shù)據(jù)治理
如何由原有的貧血模型向現(xiàn)在的充血模型改造
如何解決跨庫的關聯(lián)查詢與事務處理
如何實現(xiàn)領域事件的消息推送機制
如何實現(xiàn)跨庫的狀態(tài)數(shù)據(jù)查詢
如何打造基于整潔架構(gòu)的領域驅(qū)動設計框架
增加人工智能的智能診療數(shù)據(jù)模型
1) 如何通過領域模型來開展數(shù)據(jù)智能業(yè)務
2) 如何基于領域模型的規(guī)劃與智能系統(tǒng)的接口
3) 基于領域模型的微服務+大數(shù)據(jù)的設計實踐
分組練習:按照領域模型進行設計開發(fā)
1. 基于領域模型進行微服務的拆分與設計
2. 基于領域模型進行每個微服務的數(shù)據(jù)庫設計
3. 基于上下文地圖形成微服務間的契約與接口
第二天
第四單元
基于領域驅(qū)動的技術中臺建設 DDD需要強大技術架構(gòu)支持
1. 降低技術門檻,減少開發(fā)工作量 → 制訂規(guī)范、合理分層、降低復雜度
2. 易于業(yè)務變更,易于架構(gòu)演化 → 將業(yè)務與技術解耦
3. 支持領域驅(qū)動,支持微服務 → 通用倉庫、工廠及基礎設施的設計
4. 平臺不斷完善,功能不斷積累 → 敏捷架構(gòu)設計:架構(gòu)跑道與使能故事
支持DDD的技術架構(gòu)建設思路
1. 分析當前軟件架構(gòu)設計與架構(gòu)演化的痛點與根源
2. 闡述技術中臺的建設思路
1)將業(yè)務與技術解耦 → 整潔架構(gòu)與六邊形架構(gòu)
2)提取共性,精簡業(yè)務代碼 → 單Controller,單Dao
支持領域驅(qū)動+微服務的技術中臺
案例:在線訂餐系統(tǒng)的應用
1. 通用、可配置的DDD倉庫與工廠的設計
2. 解決跨庫的關聯(lián)查詢與事務處理
3. 純潔的Service與Entity便于不斷地架構(gòu)演化
現(xiàn)有系統(tǒng)的整潔架構(gòu)轉(zhuǎn)型
1. 系統(tǒng)級的重構(gòu)方法與步驟
2. 建立接口層解耦業(yè)務代碼與技術框架的過程
3. 基于整潔架構(gòu)的技術架構(gòu)演化與快速交付
第三天 第五單元
基于DDD的微服務設計實踐 實戰(zhàn)演練:高并發(fā)高可用的訂單系統(tǒng)
微服務架構(gòu)的6種設計模式
1. 聚合模式
案例:電商網(wǎng)站購物功能的設計
微服務前后端分離的設計
分布式事務的兩階段提交
TCC方案與阿里Seata
演練:運用Seata實現(xiàn)微服務的分布式事務
基于消息的最終一致性設計
演練:基于消息實現(xiàn)微服務的分布式事務
案例:電商網(wǎng)站下單服務的設計
單一職責原則與領域驅(qū)動設計
互聯(lián)網(wǎng)縱向切分在微服務的實現(xiàn)
縱向切分應當注意的設計問題
解決跨庫關聯(lián)查詢的設計
演練:微服務間解決跨庫關聯(lián)查詢的設計
2. 代理模式
案例:電商網(wǎng)站多渠道支付的微服務實現(xiàn)
3. 鏈式模式
4. 分支模式
5. 數(shù)據(jù)共享模式
案例:大數(shù)據(jù)與微服務結(jié)合的架構(gòu)設計
案例:電商網(wǎng)站海量訂單數(shù)據(jù)的秒級查詢
6. 異步消息模式
案例:電商網(wǎng)站異步化操作的微服務實現(xiàn)
微服務的拆分原則
1. 能不拆盡量不拆:減少微服務間的調(diào)用
2. 該拆分就得拆分
1) 公共模塊該拆分就得拆分
2) 越來越復雜的模塊該拆分就得拆分
范老師 獨立咨詢顧問,暢銷書籍《架構(gòu)真意》與《大話重構(gòu)》的作者,規(guī)?;艚軸PC。曾任航天信息首席架構(gòu)師,哈工大軟件工程碩士,軟件架構(gòu)及重構(gòu)的客座講師。從事軟件研發(fā)工作近二十年,并且現(xiàn)在一直堅守在大型軟件架構(gòu)設計一線工作。從需求分析、軟件開發(fā)到項目管理、架構(gòu)設計都有豐富的從業(yè)經(jīng)驗。先后參與了數(shù)十個國內(nèi)大型軟件項目,涉及國家財政、軍工、稅務、醫(yī)療等領域的大數(shù)據(jù)中臺建設、風險防控與人工智能研究。互聯(lián)網(wǎng)轉(zhuǎn)型、微服務轉(zhuǎn)型及大數(shù)據(jù)轉(zhuǎn)型的實踐者與倡導者。同時,還是大型遺留系統(tǒng)改造專業(yè)戶,多次參與大型遺留系統(tǒng)改造、軟件系統(tǒng)重構(gòu)等重大項目,長期關注大型業(yè)務系統(tǒng)的品質(zhì)保證、防止腐化以及技術改造等困擾軟件企業(yè)的問題,在遺留系統(tǒng)優(yōu)化與改造方面有豐富的經(jīng)驗。
程老師 中國科學院軟件研究所碩士,主要研究方向:架構(gòu)設計、項目管理實踐、大型高可用高并發(fā)架構(gòu)設計、微服務架構(gòu)、軟件測試等等。熟悉網(wǎng)絡分布式計算、數(shù)據(jù)庫、網(wǎng)絡操作系統(tǒng),精通J2EE、SQL、中間件服務器。在J2EE技術領域具有理論功底和實踐經(jīng)驗。在J2ME商務應用和基于J2ME游戲開發(fā)領域具有深厚的理論功底和豐富的實戰(zhàn)經(jīng)驗。主要授課方向:DevOps落地實踐、微服務架構(gòu)、軟件構(gòu)架設計、UML、GO語言、OOAD、J2EE企業(yè)級高級應用開發(fā)等。 擅長架構(gòu)企業(yè)級應用;有獨立工作流引擎開發(fā)、企業(yè)系統(tǒng)應用集成方面的豐富經(jīng)驗;在企業(yè)門戶(Portal)、報表、工作流引擎和企業(yè)服務總線(ESB)等應用領域有深入的理論研究和充分的實踐;對軟件開發(fā)的整個流程有深刻認識,有很好的協(xié)作精神和學習能力。在架構(gòu)下的系統(tǒng)設計和開發(fā)方面均有豐富經(jīng)驗。能夠結(jié)合實際,在復雜的應用環(huán)境中選擇適合的技術組合并合理利用開源中間件來降低項目開發(fā)風險、縮短開發(fā)周期、提高應用系統(tǒng)的可維護性和可擴展性。
-
《從巡視、巡察和審計角度談國企招標采購風險防控》和《國企招標采購合規(guī)管理/最新政策解讀》專題培訓班
開課時間:已開課
開課地點: 江蘇-南京
(一)2024年招標投標采購領域最新政策文件解讀1.國務院辦公廳關于創(chuàng)新完善體制機制推動招標投標市場規(guī)范健康發(fā)展的意見(國辦發(fā)〔2024〕21號);2.《2024年中央企業(yè)采購與供應鏈管理對標評估工作方案》(改革函〔2024〕9號);3.《公平競爭審查條例》(國務院令783號);..
-
國家軟考高級-系統(tǒng)架構(gòu)設計師 考前培訓班
開課時間:已開課
開課地點: 北京-北京
第一天上午 考試概述 1. 系統(tǒng)架構(gòu)的概念及其發(fā)展歷史2. 系統(tǒng)架構(gòu)師的定義與職業(yè)素質(zhì)3. 系統(tǒng)架構(gòu)師知識結(jié)構(gòu)操作系統(tǒng) 1. 操作系統(tǒng)基本知識2. 進程管理3. 存儲管理4. 文件管理5. 作業(yè)管理6. 設備管理第一天下午 數(shù)據(jù)庫系統(tǒng) 1. 數(shù)據(jù)庫設計..
-
國家軟考高級-網(wǎng)絡規(guī)劃設計師 考前培訓班
開課時間:已開課
開課地點: 北京-北京
第一天 計算機網(wǎng)絡基礎 計算機網(wǎng)絡組成、分類及模型,數(shù)據(jù)通信基礎 局域網(wǎng)訪問控制,高速局域網(wǎng),無線廣域網(wǎng)與虛擬局域網(wǎng) 廣域網(wǎng)擁塞機制與接入技術,網(wǎng)絡互連技術與網(wǎng)絡協(xié)議 網(wǎng)絡設備的功能與應用 網(wǎng)絡管理..
-
產(chǎn)品戰(zhàn)略規(guī)劃實戰(zhàn) 培訓班
開課時間:已開課
開課地點: 北京-北京
戰(zhàn)略規(guī)劃定義 1. 戰(zhàn)略定義2. 戰(zhàn)略規(guī)劃定義與執(zhí)行障礙3. 戰(zhàn)略規(guī)劃與找工作類比 案例練習:1. 案例:戰(zhàn)略與登山尋寶藏的類比2. 案例:戰(zhàn)略規(guī)劃與找工作的類比企業(yè)戰(zhàn)略的3個層次 1. 總體戰(zhàn)略2. 業(yè)務戰(zhàn)略3. 職能戰(zhàn)略 華為BLM業(yè)務領先模型(業(yè)務級) BL..
-
開課時間:已開課
開課地點: 北京-北京
第一天 信息系統(tǒng)的審計流程 規(guī)劃1信息系統(tǒng)審計標準、準則和道德規(guī)范2業(yè)務流程3 控制類型4基于風險的審計規(guī)劃5 審計類型和評估執(zhí)行1 審計項目管理2 抽樣方法3 審計證據(jù)搜集技巧4 數(shù)據(jù)分析5 報告和溝通技巧6 質(zhì)量保證和審計流程改進第二天 I..