公開課 內(nèi)訓(xùn)課 培訓(xùn)師
首頁 公開課 內(nèi)訓(xùn)課 特惠課程 培訓(xùn)師 培訓(xùn)專題 在線文檔 管理名言 會(huì)員專區(qū) 積分兌換 聯(lián)系我們 關(guān)于我們 誠聘英才     
首頁 >> 公開課 >> 研發(fā)項(xiàng)目 >> 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì) 下載課程WORD文檔
添加時(shí)間:2015-05-05      修改時(shí)間: 2015-05-05      課程編號(hào):100279249
《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》課程詳情
點(diǎn)擊下載課大綱及報(bào)名表
課程目標(biāo)
需求分析人員和領(lǐng)域?qū)<覠o法與團(tuán)隊(duì)的設(shè)計(jì)人員和開發(fā)人員進(jìn)行有效溝通。需求分析人員不了解軟件設(shè)計(jì),軟件設(shè)計(jì)人員常常會(huì)曲解需求內(nèi)容,這是軟件開發(fā)中容易出現(xiàn)的第一病癥。它帶來的后果是設(shè)計(jì)頻繁變更,設(shè)計(jì)的軟件不滿足客戶需求。

需求分析雖然明白無誤,設(shè)計(jì)人員卻無法準(zhǔn)確地抽象領(lǐng)域模型,從而不能開展有效的軟件設(shè)計(jì),這是軟件開發(fā)中容易出現(xiàn)的第二病癥。它帶來的后果是設(shè)計(jì)質(zhì)量糟糕,開發(fā)的代碼不具有良好的可讀性,增加了軟件的開發(fā)與維護(hù)成本。

系統(tǒng)的業(yè)務(wù)需求復(fù)雜多變,設(shè)計(jì)人員卻總是喜歡從實(shí)現(xiàn)角度以及數(shù)據(jù)庫層面思考業(yè)務(wù)問題,這是軟件開發(fā)中容易出現(xiàn)的第三病癥。它會(huì)導(dǎo)致開發(fā)的系統(tǒng)過于復(fù)雜,且可擴(kuò)展性差,無法有效應(yīng)對(duì)需求發(fā)生的變化。

本次培訓(xùn)的內(nèi)容——領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)正好是解決這三種常見病癥的最佳藥方。

培訓(xùn)特色
思想為體,方法為用,貫徹卓越軟件設(shè)計(jì)之精神,而非流于表面形式;
提倡開放的設(shè)計(jì)觀,不局限于一種設(shè)計(jì)方法學(xué),而是融匯貫通,取長補(bǔ)短;

重視案例分析與實(shí)踐,提倡動(dòng)手實(shí)驗(yàn),而非單純以講授性質(zhì)的培訓(xùn);通過真實(shí)案例的演練,熟悉開發(fā)過程與設(shè)計(jì)方法;

采用最新的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)思想與方法,并輔以可視化的設(shè)計(jì)手段,以工作坊的形式開展培訓(xùn),以便于學(xué)員更好地理解領(lǐng)域驅(qū)動(dòng)設(shè)計(jì);

編碼與設(shè)計(jì),二者不可偏廢。沒有優(yōu)秀的個(gè)人設(shè)計(jì)能力,團(tuán)隊(duì)就會(huì)成為無根之木,無法保證軟件的高質(zhì)量。必須幫助團(tuán)隊(duì)的每個(gè)人都能熟練運(yùn)用領(lǐng)域驅(qū)動(dòng)的分析與設(shè)計(jì)能力,才能保證生產(chǎn)力的高效;


課程大綱
第一單元 領(lǐng)域建模的方法
1、領(lǐng)域建模與設(shè)計(jì)的關(guān)系
優(yōu)秀的軟件系統(tǒng)與好的軟件設(shè)計(jì)息息相關(guān),但最關(guān)鍵的還是在于對(duì)需求的理解。如果 不能正確的理解軟件需求,那么再好的設(shè)計(jì)也不能設(shè)計(jì)出好的軟件。正確的做事情固然重要,更重要的是要做正確的事。然而,需求到設(shè)計(jì)存在巨大的鴻溝,因?yàn)樾枨笫钦驹跇I(yè)務(wù)角度來考慮,而設(shè)計(jì)往往會(huì)站在實(shí)現(xiàn)角度。領(lǐng)域建模就是為這二者搭建一個(gè)溝通與轉(zhuǎn)換的橋梁。
2、領(lǐng)域建模從需求開始
為了更好的理解需求,我們可以從需求畫布開始,充分理解參與軟件系統(tǒng)的角色、功能、價(jià)值等內(nèi)容,以便于整個(gè)團(tuán)隊(duì)更為深入地理解需求,達(dá)成一致認(rèn)識(shí)。
演練:繪制商業(yè)需求畫布
3、場景驅(qū)動(dòng)設(shè)計(jì)模型
場景驅(qū)動(dòng)設(shè)計(jì)的核心在于識(shí)別場景,它需要設(shè)計(jì)者結(jié)合具體的業(yè)務(wù)場景,分析業(yè)務(wù)流 程,以此驅(qū)動(dòng)出用例;再以用例驅(qū)動(dòng)對(duì)業(yè)務(wù)邏輯的建模。場景驅(qū)動(dòng)設(shè)計(jì)的核心模型為6W模型,即Who,Why,When,What,Where與hoW。它 將對(duì)應(yīng)職責(zé)模型的業(yè)務(wù)價(jià)值、業(yè)務(wù)功能與業(yè)務(wù)實(shí)現(xiàn),并從角色的角度思考對(duì)象之間的協(xié)作以及設(shè)計(jì)邊界。
演練:繪制場景圖

第二單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的戰(zhàn)略設(shè)計(jì)
1、限界上下文
若要進(jìn)行領(lǐng)域建模,并將業(yè)務(wù)需求逐步演化為架構(gòu)設(shè)計(jì),則需要引入DDD(領(lǐng)域驅(qū) 動(dòng)設(shè)計(jì))的戰(zhàn)略設(shè)計(jì)作為指導(dǎo)。場景圖與限界上下文可以很好地結(jié)合,幫助架構(gòu)師很好地識(shí)別各個(gè)子領(lǐng)域的概念邊界與設(shè)計(jì)邊界。如此則可以運(yùn)用“分而治之”的思想識(shí)別出整個(gè)系統(tǒng)的業(yè)務(wù)邏輯邊界與物理邊界。
可視化演練:識(shí)別電子商務(wù)系統(tǒng)的限界上下文
2、領(lǐng)域模型
通過限界上下文,可以幫助我們分析系統(tǒng)的領(lǐng)域模型,包括系統(tǒng)的核心領(lǐng)域與子領(lǐng) 域。確定系統(tǒng)的核心領(lǐng)域與子領(lǐng)域可以幫助架構(gòu)師合理分配資源(包括時(shí)間資源與人力資源)。而對(duì)子領(lǐng)域的進(jìn)一步識(shí)別,可以幫助架構(gòu)師更好地識(shí)別可重用資源,包括可重用的功能模塊,確定技術(shù)棧,決定構(gòu)建還是購買的架構(gòu)戰(zhàn)略。
3、四色建模法
首先以滿足管理和運(yùn)營的需要為前提,尋找需要追溯的事件。根據(jù)這些需要追溯,尋找足跡以及相應(yīng)的時(shí)標(biāo)性對(duì)象。尋找時(shí)標(biāo)對(duì)象周圍的人/事/物。從中抽象角色,把一些信息用描述對(duì)象補(bǔ)足。
案例分析:配送管理系統(tǒng)的四色建模
4、上下文映射圖
本部分內(nèi)容會(huì)講解限界上下文之間主要存在的組織模式與集成模式,這其中包括防腐層,開放服務(wù)調(diào)用等。利用上下文映射圖,有助于識(shí)別上下文之間的關(guān)系,思考處于上下文內(nèi)領(lǐng)域模型之間的通信方式,從而幫助架構(gòu)師驅(qū)動(dòng)出最終的應(yīng)用邏輯架構(gòu)。
可視化演練:電子商務(wù)系統(tǒng)的應(yīng)用邏輯架構(gòu)

第三單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的架構(gòu)設(shè)計(jì)
1、分層架構(gòu)
分層架構(gòu)模式是應(yīng)用最為廣泛的架構(gòu)模式,它根據(jù)關(guān)注點(diǎn)分離的架構(gòu)原則,針對(duì)表現(xiàn)層、領(lǐng)域?qū)雍突A(chǔ)設(shè)施層進(jìn)行層次分離。本次培訓(xùn)將以全新視角審視分層架構(gòu),針對(duì)大型軟件系統(tǒng)分析該如何進(jìn)行分層架構(gòu)設(shè)計(jì)。
案例分析:網(wǎng)上銀行的分層架構(gòu),根據(jù)最基本的業(yè)務(wù)流程對(duì)系統(tǒng)進(jìn)行關(guān)注點(diǎn)分離,繪制系統(tǒng)的分層架構(gòu),并通過時(shí)序圖展現(xiàn)各層之間的協(xié)作。
2、六邊形架構(gòu)
雖然分層架構(gòu)仍然是運(yùn)用最為廣泛的架構(gòu)模式,同時(shí)更是諸多架構(gòu)模式的基礎(chǔ),但它 已不足以描述越來越復(fù)雜的分布式系統(tǒng)架構(gòu)。由Cockburn提出的六邊形架構(gòu)(Hexagonal Architecture)是一種具有對(duì)稱性特征的架構(gòu)風(fēng)格。在這種架構(gòu)中,不同的客戶通過“平等”的方式與系統(tǒng)交互。該架構(gòu)中存在兩個(gè)區(qū)域,分別是“外部區(qū)域”和“內(nèi)部區(qū)域”。這種界定了明確內(nèi)外邊界的架構(gòu)風(fēng)格,更有利于架構(gòu)師實(shí)現(xiàn)關(guān)注點(diǎn)分離,并將關(guān)注重心放在適配器與通信端口上。
演練:六邊形架構(gòu)的通信邊界
案例:大型金融系統(tǒng)的客戶管理
3、CQRS
CQRS風(fēng)格,即命令查詢職責(zé)分離(Command Query ResponsibilitySegregation),它結(jié)合了消息處理、事件處理的架構(gòu)風(fēng)格,是對(duì)多種設(shè)計(jì)模式的綜合運(yùn)用,適用于處理讀寫比例高,需要支持可伸縮性的大型系統(tǒng)。
案例:AxonFramework對(duì)CQRS的支持
4、事件驅(qū)動(dòng)架構(gòu)
事件驅(qū)動(dòng)架構(gòu)(Event-Driven Architecture,EDA)是一種用于處理事件生成、發(fā)現(xiàn)和處理等任務(wù)的軟件架構(gòu)。事件往往對(duì)應(yīng)于軟件系統(tǒng)的狀態(tài)機(jī),狀態(tài)的遷移就是用事件來觸發(fā)的。因而,事件能夠很好地體現(xiàn)這樣的業(yè)務(wù)模型。同時(shí),基于事件的軟件架構(gòu)可以幫助我們更好地建立松散耦合的模塊化架構(gòu)。

第四單元 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的戰(zhàn)術(shù)設(shè)計(jì)
1、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的專用術(shù)語
領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的一個(gè)特點(diǎn)是針對(duì)領(lǐng)域?qū)樱岢隽私y(tǒng)一的設(shè)計(jì)術(shù)語,包括關(guān)聯(lián)、實(shí)體、值對(duì)象、聚合、服務(wù)、模塊。注意區(qū)分它與傳統(tǒng)業(yè)務(wù)層設(shè)計(jì)在概念上的區(qū)別。甄別這些概念之間的區(qū)別,有利于我們正確地運(yùn)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)。
整體而言,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的這些術(shù)語涵蓋了領(lǐng)域?qū)ο蟮恼麄(gè)生命周期,包括領(lǐng)域?qū)ο髲膭?chuàng)建、存儲(chǔ)、重建、歸檔、修改到刪除的整個(gè)生命周期。
2、實(shí)體與值對(duì)象
這兩個(gè)概念都是領(lǐng)域?qū)ο蟮捏w現(xiàn),二者的主要區(qū)別在于對(duì)“標(biāo)識(shí)”的運(yùn)用。本部分的內(nèi)容深入展開對(duì)實(shí)體標(biāo)識(shí)的討論,揭示實(shí)體的本質(zhì)特征,挖掘?qū)嶓w的關(guān)鍵行為。通過識(shí)別角色與職責(zé)對(duì)實(shí)現(xiàn)進(jìn)行分析。
本部分內(nèi)容還將通過深入講解值對(duì)象的特征幫助我們分辨值對(duì)象與實(shí)體,使得我們可以在領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)中有效地運(yùn)用實(shí)體與值對(duì)象。本部分內(nèi)容還包括持久化值對(duì)象,以及領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與ORM之間的關(guān)系。
3、領(lǐng)域服務(wù)
通過講解什么是領(lǐng)域服務(wù),什么不是領(lǐng)域服務(wù)理清領(lǐng)域服務(wù)的概念,并講解如何建模領(lǐng)域服務(wù)。討論領(lǐng)域服務(wù)和面向接口設(shè)計(jì)思想。
4、領(lǐng)域事件
事件驅(qū)動(dòng)架構(gòu)的主要對(duì)象即為領(lǐng)域事件,我們要分清在何時(shí)以及為什么要使用領(lǐng)域事件,并對(duì)領(lǐng)域事件進(jìn)行建模。通過講解發(fā)布者-訂閱者模式講解如何在領(lǐng)域模型和限界上下文中發(fā)布領(lǐng)域事件。同時(shí),針對(duì)事件進(jìn)行存儲(chǔ)的EventSource也與CQRS架構(gòu)風(fēng)格直接相關(guān)。
5、模塊
模塊化設(shè)計(jì)是優(yōu)良架構(gòu)的保障,同時(shí)也是軟件復(fù)用最重要的單元。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)將模塊視為與對(duì)象相等的一等公民,這使得整個(gè)設(shè)計(jì)在微觀層面符合面向?qū)ο蟮乃枷,同時(shí)也能夠?yàn)楹暧^層面的架構(gòu)設(shè)計(jì)提供有力地支持。本部分將結(jié)合限界上下文講解基本的模塊設(shè)計(jì)原則與設(shè)計(jì)模式。
6、聚合
聚合是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)最為重要的領(lǐng)域概念。本部分內(nèi)容將深入探討聚合的設(shè)計(jì)原則,并辨別在聚合設(shè)計(jì)中可能出現(xiàn)的壞味道,并提出針對(duì)性的解決方案。這些原則和方案包括:在一致性邊界之內(nèi)建模真正的不變量,設(shè)計(jì)小的聚合,通過唯一標(biāo)識(shí)引用其他聚合,在邊界外滿足最終一致性。
7、工廠和資源庫
工廠和資源庫都是管理領(lǐng)域?qū)ο螅▽?shí)體、值對(duì)象和服務(wù))生命周期的對(duì)象。工廠主要針對(duì)內(nèi)存中對(duì)象從無到有的創(chuàng)建過程,與設(shè)計(jì)模式的工廠模式基本相似。
資源庫則分為面向集合的資源庫與面向持久化的資源庫。本部分內(nèi)容將重點(diǎn)講解與資源庫直接相關(guān)的技術(shù)細(xì)節(jié),包括如何選擇資源庫的方式,如何針對(duì)聚合持久化資源庫,如何管理事務(wù),以及分辨資源庫與數(shù)據(jù)訪問對(duì)象(DAO)之間的異同。
8、應(yīng)用層設(shè)計(jì)
作為為UI提供的應(yīng)用服務(wù),其目的在于管理和協(xié)調(diào)領(lǐng)域?qū)ο,并為領(lǐng)域?qū)ο筇峁M 切關(guān)注點(diǎn)的內(nèi)容。好的應(yīng)用服務(wù)設(shè)計(jì)不應(yīng)該承擔(dān)任何與領(lǐng)域邏輯有關(guān)的職責(zé)。應(yīng)用層是架構(gòu)層面的外觀與適配器模式的體現(xiàn)。它可以提高軟件系統(tǒng)架構(gòu)的可用性與簡單性,也能夠更好地與面向服務(wù)架構(gòu)或RESTful架構(gòu)風(fēng)格結(jié)合。

第五單元 實(shí)戰(zhàn)演練
基于多租戶的社交網(wǎng)絡(luò)系統(tǒng)以及項(xiàng)目管理系統(tǒng)的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
這是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)過程的完整案例分析,從需求開始著手,開展對(duì)整個(gè)系統(tǒng)的架構(gòu)分析、領(lǐng)域概念識(shí)別與分析,并對(duì)建立的領(lǐng)域模型進(jìn)行迭代與演化,核心領(lǐng)域概念的演進(jìn),掃清領(lǐng)域設(shè)計(jì)過程中的認(rèn)知障礙,并總結(jié)了領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)過程的一些經(jīng)驗(yàn)教訓(xùn)。
本實(shí)戰(zhàn)演練包含了真實(shí)的案例需求,以及符合領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)各種知識(shí)點(diǎn)的案例病癥分析,從對(duì)比入手來探討好的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)方法。同時(shí),還將引入大量的可視化圖形、設(shè)計(jì)圖與代碼幫助學(xué)員理解如何在真實(shí)項(xiàng)目中運(yùn)用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的思想,指導(dǎo)設(shè)計(jì)人員進(jìn)行良好的設(shè)計(jì)。

《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》所屬分類
研發(fā)項(xiàng)目

《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》授課培訓(xùn)師簡介
Bruce Zhang
擅長領(lǐng)域
研發(fā)管理

職業(yè)背景
高級(jí)咨詢師,軟件架構(gòu)師,敏捷教練,連續(xù)四屆榮獲微軟最有價(jià)值專家,InfoQ 架構(gòu)社區(qū)常務(wù)編輯。先后任職于惠普、中興通訊、中軟國際等企業(yè),擔(dān)任高級(jí)軟件工程師、系統(tǒng)架構(gòu)師、技術(shù)總監(jiān)等職務(wù)。

擁有15年的軟件開發(fā)與8年左右的軟件架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),主要專注于軟件架構(gòu)、設(shè)計(jì)模式、測(cè)試驅(qū)動(dòng)開發(fā)、重構(gòu)、領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)和敏捷開發(fā),以及基于Java/.NET平臺(tái)的企業(yè)級(jí)系統(tǒng)應(yīng)用開發(fā)和分布式開發(fā)。

多次應(yīng)邀參加國內(nèi)具有影響力的軟件開發(fā)大會(huì),包括QCon全球企業(yè)開發(fā)大會(huì),亞太軟件軟件研發(fā)團(tuán)隊(duì)管理年會(huì)、Scrum Gathering、Agile China以及中國軟件技術(shù)大會(huì),擔(dān)任大會(huì)主持人、制作人和講師。著譯作包括《軟件設(shè)計(jì)精要與模式》、《WCF服務(wù)編程》、《Java設(shè)計(jì)模式》、《恰如其分的軟件架構(gòu)》

授課經(jīng)驗(yàn)
作為咨詢師和培訓(xùn)師,曾先后為可口可樂、摩托羅拉、HP、盛大、第九城市、CA、攜程、中興通訊等企業(yè)提供咨詢與培訓(xùn)服務(wù)。
《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》報(bào)名服務(wù)流程
-----------------------------------------------------------------------------------

選擇課程

選擇上課時(shí)間

報(bào)名參加

確認(rèn)報(bào)名

支付課款

參加課程

我們的優(yōu)勢(shì)
十五年誠信品牌值得信賴
一站式培訓(xùn)顧問服務(wù)想你所需
海量課程及專業(yè)師資隨需應(yīng)變
多城市開課,讓您擁有更多選擇更多便利
會(huì)員折扣讓您更合理有效的使用您的費(fèi)用預(yù)算
公開課需求        課程編號(hào):100279249          咨詢熱線:020-29042042
課程名稱:  領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)
您的真實(shí)姓名:  * (請(qǐng)一定使用真實(shí)姓名)
性    別:  先生女士
公司名稱: 
E-mail地址:  *
電話/手機(jī):  * (電話請(qǐng)帶上區(qū)號(hào),謝謝)
QQ: 
上課時(shí)間:  (時(shí)間格式:2024-09-22)
上課地點(diǎn): 
費(fèi)用預(yù)算:  * 元人民幣。(請(qǐng)?zhí)顚憯?shù)字,不需要填寫單位。)
其它咨詢: 
驗(yàn)證數(shù)字:   驗(yàn)證碼,看不清楚?請(qǐng)點(diǎn)擊刷新驗(yàn)證碼 *
準(zhǔn)時(shí)開課
報(bào)名有禮!
1、報(bào)名參加本課程,可獲得雙倍積分!
  點(diǎn)擊這里查看積分的用途
2、老客戶介紹新客戶參加本課程,老客戶將可額外獎(jiǎng)勵(lì)0.5倍積分!
  點(diǎn)擊這里查看積分的用途
3、報(bào)名參加指定課程可按會(huì)員享受8.5折優(yōu)惠!
4、報(bào)名參加本站特惠課程最高可享受300元/人的交通食宿補(bǔ)貼!
  點(diǎn)擊這里查看所有活動(dòng)特惠課程
相關(guān)培訓(xùn)
關(guān)于我們 | 聯(lián)系我們 | 友情連接 | 培訓(xùn)分類導(dǎo)航
Copyright © 2009-2024 peixune.com . All rights reserved.
廣州必學(xué)企業(yè)管理咨詢有限公司 版權(quán)所有  頁面執(zhí)行時(shí)間: 41.7 毫秒

粵公網(wǎng)安備 44011302000582號(hào)


粵ICP備16013335號(hào)
培訓(xùn)易在線客服 ×