全國(guó) [城市選擇] [會(huì)員登錄](méi) [講師注冊(cè)] [機(jī)構(gòu)注冊(cè)] [助教注冊(cè)]  
中國(guó)企業(yè)培訓(xùn)講師
領(lǐng)域驅(qū)動(dòng)軟件設(shè)計(jì)實(shí)戰(zhàn)訓(xùn)練營(yíng)培訓(xùn)班
 
講師:專(zhuān)家講師 瀏覽次數(shù):2793

課程描述INTRODUCTION

· 高層管理者· 中層領(lǐng)導(dǎo)· 其他人員· 技術(shù)主管

培訓(xùn)講師:專(zhuān)家講師    課程價(jià)格:¥元/人    培訓(xùn)天數(shù):3天   

日程安排SCHEDULE

課程大綱Syllabus

領(lǐng)域驅(qū)動(dòng)軟件設(shè)計(jì)公開(kāi)課

培訓(xùn)對(duì)象:
中高級(jí)工程師、企業(yè)架構(gòu)師、軟件設(shè)計(jì)師、技術(shù)決策/解決方案人員等。

培訓(xùn)收益
現(xiàn)在是一個(gè)快速變化的時(shí)代,我們不得不面對(duì)激烈的競(jìng)爭(zhēng)和快速的市場(chǎng)變化??焖俚淖兓?,帶來(lái)軟件需求的快速變革。因此,所有的軟件企業(yè)不得不面對(duì)這樣一個(gè)事實(shí):當(dāng)軟件系統(tǒng)經(jīng)歷了無(wú)數(shù)次變更以后,程序變得凌亂不堪、難于維護(hù)。而軟件經(jīng)過(guò)了無(wú)數(shù)次變更以后,系統(tǒng)的業(yè)務(wù)邏輯變得越來(lái)越復(fù)雜,我們的設(shè)計(jì)開(kāi)始迷失方向。這種設(shè)計(jì)的迷失,加快了軟件退化的速度,使得任何一個(gè)變更,都變得成本巨大。這就是現(xiàn)代軟件企業(yè)不得不面對(duì)的困境。
如何解決這種軟件的困境呢?領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),給我們指明了方向。他通過(guò)將軟件設(shè)計(jì)還原到真實(shí)世界,將軟件設(shè)計(jì)與真實(shí)世界對(duì)應(yīng)起來(lái)。這樣,當(dāng)業(yè)務(wù)邏輯變得越來(lái)越復(fù)雜的時(shí)候,軟件需求也開(kāi)始頻繁變更的時(shí)候,我們只需要將業(yè)務(wù)還原到真實(shí)場(chǎng)景,依據(jù)真實(shí)世界來(lái)指導(dǎo)我們的軟件設(shè)計(jì),設(shè)計(jì)思路就會(huì)清晰起來(lái),我們就不再迷失方向。
本課程就是在講解如何通過(guò)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),來(lái)應(yīng)對(duì)復(fù)雜系統(tǒng)的需求變更,實(shí)現(xiàn)高質(zhì)量的軟件設(shè)計(jì),避免代碼腐化。課程首先剖析了軟件退化的根源,通過(guò)對(duì)真實(shí)系統(tǒng)一步一步退化的過(guò)程演變,揭示軟件退化的根源,為解決問(wèn)題指明了方向。接著,有針對(duì)性地講解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)是如何解決這些問(wèn)題,為學(xué)員能夠有效提高軟件設(shè)計(jì)質(zhì)量,提供了思路與方向
然后,通過(guò)真實(shí)案例來(lái)一步一步講解如何進(jìn)行領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),如何通過(guò)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)來(lái)指導(dǎo)軟件變更,實(shí)現(xiàn)高質(zhì)量的軟件設(shè)計(jì)。本課程注重實(shí)戰(zhàn),因此每一部分的講解都是基于真實(shí)場(chǎng)景講解,并且在真實(shí)場(chǎng)景中思考與練習(xí)。

培訓(xùn)特色
1.理論與實(shí)踐相結(jié)合、案例分析與行業(yè)應(yīng)用穿插進(jìn)行;
2.專(zhuān)家精彩內(nèi)容解析、學(xué)員專(zhuān)題討論、分組研究;
3.通過(guò)全面知識(shí)理解、專(zhuān)題技能和實(shí)踐結(jié)合的授課方式。

課程收益
本課程注重實(shí)戰(zhàn),并以工作坊的形式提供很多案例,讓學(xué)員通過(guò)練習(xí)掌握領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的過(guò)程。同時(shí),通過(guò)大量真實(shí)的案例,講解許多公司在開(kāi)展領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的過(guò)程中面臨的難題、解決的思路,以及最終的設(shè)計(jì)養(yǎng)

課程大綱:
第一天上午
第一單元
剖析領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想
為什么我們需要領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
1.現(xiàn)如今DDD越來(lái)越流行
2.DDD并不能幫助新項(xiàng)目的軟件開(kāi)發(fā)
3.DDD真正的作用是日后長(zhǎng)期的維護(hù)
實(shí)踐DDD的4大難題:
1.準(zhǔn)確理解為什么要采用DDD?
2.怎樣正確地進(jìn)行業(yè)務(wù)領(lǐng)域建模?
3.怎樣用領(lǐng)域模型指導(dǎo)開(kāi)發(fā)與變更?
4.如何設(shè)計(jì)支持領(lǐng)域驅(qū)動(dòng)的架構(gòu)設(shè)計(jì)?
DDD真正的作用是應(yīng)對(duì)日后的軟件維護(hù)
1.我們現(xiàn)在面對(duì)的是快速變化的時(shí)代
2.變更越頻繁,代碼質(zhì)量下降越快
案例:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過(guò)程
案例分析:揭示軟件退化的根源
DDD的解決之道:業(yè)務(wù)領(lǐng)域建模
3.系統(tǒng)規(guī)模越來(lái)越大,系統(tǒng)越來(lái)越復(fù)雜
案例:演示嵌入式溫控系統(tǒng)越來(lái)越難于維護(hù)的根源
案例分析:領(lǐng)域分析才是解決之道
DDD的解決之道:基于限界上下文拆分系統(tǒng)
案例分析:演示電商網(wǎng)站付款功能代碼質(zhì)量下降的過(guò)程
1.起初的設(shè)計(jì)
2.隨后的變更
3.質(zhì)量不斷下降的過(guò)程
軟件質(zhì)量下降的根源:
1.軟件總是因變更而變得越來(lái)越復(fù)雜
2.軟件結(jié)構(gòu)已經(jīng)不再適應(yīng)復(fù)雜的軟件需求
3.必須要調(diào)整軟件結(jié)構(gòu)以適應(yīng)新的軟件需求
DDD的建模過(guò)程:
1.每次需求變更時(shí)先對(duì)需求進(jìn)行領(lǐng)域分析
2.基于領(lǐng)域分析先進(jìn)行領(lǐng)域模型的變更
3.基于領(lǐng)域模型的變更去指導(dǎo)程序的變更
DDD是應(yīng)對(duì)軟件復(fù)雜性之道
1.剖析領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)思想
2.服務(wù)、實(shí)體與值對(duì)象的概念
3.充血模型與貧血模型的設(shè)計(jì)思路
4.問(wèn)題域、子域與限界上下文劃分
基于領(lǐng)域模型的設(shè)計(jì)變更
1.演練基于DDD的設(shè)計(jì)與變更過(guò)程
2.演練領(lǐng)域模型如何指導(dǎo)數(shù)據(jù)庫(kù)設(shè)計(jì)
3.演練領(lǐng)域模型如何指導(dǎo)程序設(shè)計(jì)
4.聚合、倉(cāng)庫(kù)與工廠:傻傻分不清
5.限界上下文:系統(tǒng)拆分的利器
案例:重新演練電商網(wǎng)站付款功能的變更過(guò)程
第一個(gè)版本的領(lǐng)域模型與設(shè)計(jì)
第一次變更的分析設(shè)計(jì)過(guò)程
第二場(chǎng)變更的設(shè)計(jì)實(shí)現(xiàn)
第三次變更的設(shè)計(jì)實(shí)現(xiàn)
第四次變更與架構(gòu)演化

第一天下午
第二單元
演練領(lǐng)域驅(qū)動(dòng)的設(shè)計(jì)過(guò)程
領(lǐng)域建模分析過(guò)程
演練案例:在線訂餐系統(tǒng)的領(lǐng)域設(shè)計(jì)過(guò)程
1.從領(lǐng)域中吸取知識(shí)
2.統(tǒng)一語(yǔ)言建模
3.事件風(fēng)暴會(huì)議
1)梳理業(yè)務(wù)流程,識(shí)別領(lǐng)域事件
2)為每個(gè)領(lǐng)域事件識(shí)別參與者、行為、相關(guān)事物
3)標(biāo)記事物之間的關(guān)系、聚合、聚合根
4)根據(jù)業(yè)務(wù)劃分限界上下文
5)遍歷所有事件,確定上下文映射
4.業(yè)務(wù)領(lǐng)域建模
1)為每個(gè)領(lǐng)域事件構(gòu)建業(yè)務(wù)領(lǐng)域模型
2)劃分主題域、支撐域、通用域
3)落實(shí)各子域之間的聯(lián)系、接口及事件通知機(jī)制
基于領(lǐng)域模型的微服務(wù)設(shè)計(jì)
1.小而專(zhuān)的微服務(wù)設(shè)計(jì)
2.限界上下文與微服務(wù)拆分
3.上下文地圖與微服務(wù)接口
4.各微服務(wù)中實(shí)體、值對(duì)象與服務(wù)的設(shè)計(jì)
5.各微服務(wù)中聚合、工廠與倉(cāng)庫(kù)的設(shè)計(jì)
6.領(lǐng)域模型4種關(guān)系3種繼承的數(shù)據(jù)庫(kù)設(shè)計(jì)
7.聚合層的設(shè)計(jì)、工廠和倉(cāng)庫(kù)的實(shí)現(xiàn)
8.基于DDD的微服務(wù)架構(gòu)分層
解決DDD的設(shè)計(jì)難題
1.跨庫(kù)查詢(xún)的設(shè)計(jì)難題與設(shè)計(jì)實(shí)現(xiàn)
2.領(lǐng)域事件的通知機(jī)制與設(shè)計(jì)實(shí)現(xiàn)
3.微服務(wù)接口的防腐層設(shè)計(jì)
4.狀態(tài)查詢(xún)跟蹤的設(shè)計(jì)思路與代碼實(shí)現(xiàn)
分組練習(xí):按照事件風(fēng)暴的步驟進(jìn)行業(yè)務(wù)領(lǐng)域建模
1. 召開(kāi)事件風(fēng)暴會(huì)議
2. 進(jìn)行業(yè)務(wù)領(lǐng)域建模
3. 基于領(lǐng)域模型設(shè)計(jì)開(kāi)發(fā)系統(tǒng)

第二天上午
第三單元
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)實(shí)踐
實(shí)戰(zhàn)演練:遠(yuǎn)程智慧醫(yī)療大數(shù)據(jù)平臺(tái)設(shè)計(jì)過(guò)程
1.系統(tǒng)業(yè)務(wù)規(guī)劃與戰(zhàn)略設(shè)計(jì)
2.子系統(tǒng)→限界上下文→功能模塊劃分
3.由粗到細(xì)的用例建模
4.各子域業(yè)務(wù)領(lǐng)域建模
1)智慧診療數(shù)據(jù)模型的領(lǐng)域分析
2)診所管理信息系統(tǒng)的領(lǐng)域分析
5.各子域的接口設(shè)計(jì)
1)上下文地圖的模型分析
2)微服務(wù)接口的方案設(shè)計(jì)
6.微服務(wù)的技術(shù)落地實(shí)踐
1)去中心化的技術(shù)治理
2)微服務(wù)的技術(shù)中臺(tái)
3)微服務(wù)的云端應(yīng)用平臺(tái)
起初:一個(gè)傳統(tǒng)的診所管理系統(tǒng)向互聯(lián)網(wǎng)轉(zhuǎn)型
1)起初沒(méi)有采用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),也運(yùn)行了這么多年
2)現(xiàn)在向互聯(lián)網(wǎng)轉(zhuǎn)型,業(yè)務(wù)變得越來(lái)越復(fù)雜,怎么開(kāi)始領(lǐng)域建模?
第一步:站在全局的系統(tǒng)建設(shè)規(guī)劃
第二步:DDD戰(zhàn)略設(shè)計(jì)與限界上下文劃分
第三步:各子域的業(yè)務(wù)領(lǐng)域建模
第四步:上下文地圖與各子域的接口設(shè)計(jì)
轉(zhuǎn)型成互聯(lián)網(wǎng)連鎖診所系統(tǒng),又該如何分析設(shè)計(jì)
1)基于領(lǐng)域模型進(jìn)行新需求的分析
2)基于領(lǐng)域模型進(jìn)行原有代碼的更新維護(hù)
3)基于限界上下文進(jìn)行微服務(wù)的拆分,以及這個(gè)過(guò)程中的坑
第一步:基于DDD進(jìn)行戰(zhàn)略設(shè)計(jì)的調(diào)整
第二步:各子域的業(yè)務(wù)領(lǐng)域建模調(diào)整
第四步:上下文地圖與各子域的接口設(shè)計(jì)
第五步:基于DDD的微服務(wù)拆分
基于DDD的數(shù)據(jù)庫(kù)設(shè)計(jì)與去中心化的數(shù)據(jù)治理
如何由原有的貧血模型向現(xiàn)在的充血模型改造
如何解決跨庫(kù)的關(guān)聯(lián)查詢(xún)與事務(wù)處理
如何實(shí)現(xiàn)領(lǐng)域事件的消息推送機(jī)制
如何實(shí)現(xiàn)跨庫(kù)的狀態(tài)數(shù)據(jù)查詢(xún)
如何打造基于整潔架構(gòu)的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)框架
增加人工智能的智能診療數(shù)據(jù)模型
1)如何通過(guò)領(lǐng)域模型來(lái)開(kāi)展數(shù)據(jù)智能業(yè)務(wù)
2)如何基于領(lǐng)域模型的規(guī)劃與智能系統(tǒng)的接口
3)基于領(lǐng)域模型的微服務(wù)+大數(shù)據(jù)的設(shè)計(jì)實(shí)踐
分組練習(xí):按照領(lǐng)域模型進(jìn)行設(shè)計(jì)開(kāi)發(fā)
1. 基于領(lǐng)域模型進(jìn)行微服務(wù)的拆分與設(shè)計(jì)
2. 基于領(lǐng)域模型進(jìn)行每個(gè)微服務(wù)的數(shù)據(jù)庫(kù)設(shè)計(jì)
3. 基于上下文地圖形成微服務(wù)間的契約與接口

第二天下午
第四單元
基于領(lǐng)域驅(qū)動(dòng)的技術(shù)中臺(tái)建設(shè) DDD需要強(qiáng)大技術(shù)架構(gòu)支持
1.降低技術(shù)門(mén)檻,減少開(kāi)發(fā)工作量 → 制訂規(guī)范、合理分層、降低復(fù)雜度
2.易于業(yè)務(wù)變更,易于架構(gòu)演化 → 將業(yè)務(wù)與技術(shù)解耦
3.支持領(lǐng)域驅(qū)動(dòng),支持微服務(wù) → 通用倉(cāng)庫(kù)、工廠及基礎(chǔ)設(shè)施的設(shè)計(jì)
4.平臺(tái)不斷完善,功能不斷積累 → 敏捷架構(gòu)設(shè)計(jì):架構(gòu)跑道與使能故事
支持DDD的技術(shù)架構(gòu)建設(shè)思路
1.分析當(dāng)前軟件架構(gòu)設(shè)計(jì)與架構(gòu)演化的痛點(diǎn)與根源
2.闡述技術(shù)中臺(tái)的建設(shè)思路
1)將業(yè)務(wù)與技術(shù)解耦 → 整潔架構(gòu)與六邊形架構(gòu)
2)提取共性,精簡(jiǎn)業(yè)務(wù)代碼 → 單Controller,單Dao
支持領(lǐng)域驅(qū)動(dòng)+微服務(wù)的技術(shù)中臺(tái)
案例:在線訂餐系統(tǒng)的應(yīng)用
1.通用、可配置的DDD倉(cāng)庫(kù)與工廠的設(shè)計(jì)
2.解決跨庫(kù)的關(guān)聯(lián)查詢(xún)與事務(wù)處理
3.純潔的Service與Entity便于不斷地架構(gòu)演化
現(xiàn)有系統(tǒng)的整潔架構(gòu)轉(zhuǎn)型
1.系統(tǒng)級(jí)的重構(gòu)方法與步驟
2.建立接口層解耦業(yè)務(wù)代碼與技術(shù)框架的過(guò)程
3.基于整潔架構(gòu)的技術(shù)架構(gòu)演化與快速交付

第三天
第五單元
基于DDD的微服務(wù)設(shè)計(jì)實(shí)踐
實(shí)戰(zhàn)演練:高并發(fā)高可用的訂單系統(tǒng)
微服務(wù)架構(gòu)的6種設(shè)計(jì)模式
1.聚合模式
案例:電商網(wǎng)站購(gòu)物功能的設(shè)計(jì)
微服務(wù)前后端分離的設(shè)計(jì)
分布式事務(wù)的兩階段提交
TCC方案與阿里Seata
演練:運(yùn)用Seata實(shí)現(xiàn)微服務(wù)的分布式事務(wù)
基于消息的最終一致性設(shè)計(jì)
演練:基于消息實(shí)現(xiàn)微服務(wù)的分布式事務(wù)
案例:電商網(wǎng)站下單服務(wù)的設(shè)計(jì)
單一職責(zé)原則與領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
互聯(lián)網(wǎng)縱向切分在微服務(wù)的實(shí)現(xiàn)
縱向切分應(yīng)當(dāng)注意的設(shè)計(jì)問(wèn)題
解決跨庫(kù)關(guān)聯(lián)查詢(xún)的設(shè)計(jì)
演練:微服務(wù)間解決跨庫(kù)關(guān)聯(lián)查詢(xún)的設(shè)計(jì)
2.代理模式
案例:電商網(wǎng)站多渠道支付的微服務(wù)實(shí)現(xiàn)
3.鏈?zhǔn)侥J?br /> 4.分支模式
5.數(shù)據(jù)共享模式
案例:大數(shù)據(jù)與微服務(wù)結(jié)合的架構(gòu)設(shè)計(jì)
案例:電商網(wǎng)站海量訂單數(shù)據(jù)的秒級(jí)查詢(xún)
6.異步消息模式
案例:電商網(wǎng)站異步化操作的微服務(wù)實(shí)現(xiàn)
微服務(wù)的拆分原則
1.能不拆盡量不拆:減少微服務(wù)間的調(diào)用
2.該拆分就得拆分
1)公共模塊該拆分就得拆分
2)越來(lái)越復(fù)雜的模塊該拆分就得拆分

領(lǐng)域驅(qū)動(dòng)軟件設(shè)計(jì)公開(kāi)課


轉(zhuǎn)載:http://malashangbang.com/gkk_detail/301821.html

已開(kāi)課時(shí)間Have start time

2024-10-21 杭州

在線報(bào)名Online registration

    參加課程:領(lǐng)域驅(qū)動(dòng)軟件設(shè)計(jì)實(shí)戰(zhàn)訓(xùn)練營(yíng)培訓(xùn)班

    單位名稱(chēng):

  • 參加日期:
  • 聯(lián)系人:
  • 手機(jī)號(hào)碼:
  • 座機(jī)電話(huà):
  • QQ或微信:
  • 參加人數(shù):
  • 開(kāi)票信息:
  • 輸入驗(yàn)證:  看不清楚?點(diǎn)擊驗(yàn)證碼刷新
付款信息:
開(kāi)戶(hù)名:上海投智企業(yè)管理咨詢(xún)有限公司
開(kāi)戶(hù)行:中國(guó)銀行股份有限公司上海市長(zhǎng)壽支行
帳號(hào):454 665 731 584