<b>大型網(wǎng)站復(fù)雜業(yè)務(wù)持續(xù)重構(gòu)之道:全程領(lǐng)域建模實(shí)踐</b>

作者: 來(lái)源:未知 2012-04-27 20:49:47 閱讀 我要評(píng)論 直達(dá)商品

  三、建立技術(shù)框架

  這一點(diǎn),是《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》這本書沒(méi)有過(guò)多提及的內(nèi)容。這個(gè)需要結(jié)合你們公司的原來(lái)技術(shù)框架用最小化改造成本最大化收益的方式來(lái)建立領(lǐng)域驅(qū)動(dòng)的技術(shù)框架。下面是一個(gè)可以廣泛使用的領(lǐng)域驅(qū)動(dòng)的技術(shù)框架,可以在這之上增加更多的個(gè)性元素形成你公司自己的框架。

  

 

  圖3 領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)參考技術(shù)框架圖

  這個(gè)框架的各個(gè)元素基本上在 《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》一書中都可以找到對(duì)應(yīng)的解釋,但這里需要解釋一下我建立這個(gè)框架的個(gè)性理解:

  領(lǐng)域?qū)ν?頁(yè)面、AJAX、ESB調(diào)用)只暴露領(lǐng)域服務(wù),其它所有領(lǐng)域類都是包內(nèi)自閉的,對(duì)外不可見(jiàn)。

  基礎(chǔ)倉(cāng)庫(kù)的引入,基礎(chǔ)倉(cāng)庫(kù)是一個(gè)抽象的倉(cāng)庫(kù),它封裝了大量常用工具方法、業(yè)務(wù)對(duì)象生命周期維護(hù)(實(shí)體OR映射、DAO調(diào)用)、外部接口調(diào)用?梢越档蜆I(yè)務(wù)倉(cāng)庫(kù)不必要的重復(fù)編碼與復(fù)雜性。業(yè)務(wù)倉(cāng)庫(kù)是繼承基礎(chǔ)倉(cāng)庫(kù)的子類。

  基礎(chǔ)設(shè)施的引用,基礎(chǔ)設(shè)施是用來(lái)承載引用非領(lǐng)域調(diào)用的樁,我們?cè)谑褂妙I(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的時(shí)候往往是從一個(gè)舊的系統(tǒng)重構(gòu)開(kāi)始。這時(shí)我們不可能要求所有的業(yè)務(wù)子系統(tǒng)相互調(diào)用都通過(guò)Domain Service調(diào)用,這時(shí)我們可以通過(guò)Infrastructure優(yōu)美的把調(diào)用封裝在業(yè)務(wù)倉(cāng)庫(kù)的業(yè)務(wù)方法內(nèi)。

  四、重構(gòu)受影響領(lǐng)域的設(shè)計(jì)與編碼

  

 

  圖4 重構(gòu)后的商品詳情頁(yè)類圖

  Spark以商品詳情頁(yè)這個(gè)Use Case為例展示了以領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的重構(gòu)類圖:

  增加行為表ProductExt用于存儲(chǔ)商品的擴(kuò)展信息,如預(yù)約時(shí)間段、預(yù)約醫(yī)院。并為表建立一一對(duì)應(yīng)的實(shí)體Entity。

  基礎(chǔ)倉(cāng)庫(kù)Repository通過(guò)Infrastructure中的DAO封裝了對(duì)實(shí)體的操作,如create()、update()、delete()、findById()、findList()

  商品業(yè)務(wù)倉(cāng)庫(kù)ProductRepository擴(kuò)展了基礎(chǔ)倉(cāng)庫(kù),客戶程序可以用productId為參數(shù),通過(guò)ProductVo.getProduct()方法獲得商品詳細(xì)信息的業(yè)務(wù)實(shí)現(xiàn),由于業(yè)務(wù)倉(cāng)庫(kù)的的公開(kāi)方法對(duì)外返回的都是Value Object,因此不會(huì)直接暴露Entity類型給客戶程序。

  GetProductService服務(wù)類通過(guò)invoke()服務(wù)方法 對(duì)外(商品詳情頁(yè)面)提供服務(wù),它通調(diào)用業(yè)務(wù)倉(cāng)庫(kù)中的業(yè)務(wù)方法,并將接口規(guī)格化。

  在Spark的幫助下,Jack Chen成功的脫離了困境,F(xiàn)在他正在公司里積極推行自己的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)框架,他們公司的網(wǎng)站正在以每三周一次的重構(gòu)速度快速迭代演進(jìn)。他象Spark一樣,成為了一個(gè)領(lǐng)域驅(qū)動(dòng)的布道者。

  來(lái)源:InfoQ


  推薦閱讀

  軟文寫作“三板斧”以理服人 以情動(dòng)人 以誠(chéng)感人

在寫這篇文章的時(shí)候,行文天下首先想起的不是下文該怎么寫,而是想起《隋唐英雄傳》中的程咬金。這位豪爽義氣卻又透著可愛(ài)的猛將,在眾多人物中算得上運(yùn)氣最好的一位。雖然文不及李密,武不及秦瓊 ,但是他卻靠自己的>>>詳細(xì)閱讀


本文標(biāo)題:<b>大型網(wǎng)站復(fù)雜業(yè)務(wù)持續(xù)重構(gòu)之道:全程領(lǐng)域建模實(shí)踐</b>

地址:http://www.sdlzkt.com/a/22/20120427/55629.html

頂一下

樂(lè)購(gòu)科技部分新聞及文章轉(zhuǎn)載自互聯(lián)網(wǎng),供讀者交流和學(xué)習(xí),若有涉及作者版權(quán)等問(wèn)題請(qǐng)及時(shí)與我們聯(lián)系,以便更正、刪除或按規(guī)定辦理。感謝所有提供資訊的網(wǎng)站,歡迎各類媒體與樂(lè)購(gòu)科技進(jìn)行文章共享合作。

網(wǎng)友點(diǎn)評(píng)
我的評(píng)論: 人參與評(píng)論
驗(yàn)證碼: 匿名回答
網(wǎng)友評(píng)論(點(diǎn)擊查看更多條評(píng)論)
友情提示: 登錄后發(fā)表評(píng)論,可以直接從評(píng)論中的用戶名進(jìn)入您的個(gè)人空間,讓更多網(wǎng)友認(rèn)識(shí)您。
自媒體專欄

評(píng)論

熱度

主站蜘蛛池模板: 欧美成人猛男性色生活| 国产成人福利精品视频| 亚洲AV无码成人黄网站在线观看| 成人性生交大片免费看好| 欧美成人午夜做受视频| 成人免费看黄20分钟| 成人免费无码大片A毛片抽搐 | 成人毛片18女人毛片免费96 | 一级成人理伦片| 成人综合国产乱在线| 国产成人精品一区二区三区| 国产亚洲综合成人91精品| 韩国成人毛片aaa黄| 欧美成人午夜片一一在线观看| 四虎亚洲国产成人久久精品| 亚洲人成人77777网站| 欧美成人精品第一区| 国产成人www免费人成看片| 青青草视频成人| 四虎国产成人永久精品免费| 成人午夜性A级毛片免费| 亚洲av午夜成人片精品网站| 欧美一区二区三区成人片在线| 国产成人刺激视频在线观看| 欧洲成人爽视频在线观看| 免费国产成人手机在线观看| 欧美亚洲国产成人综合在线| 78成人精品电影在线播放 | 亚洲精品国产成人| 天天欲色成人综合网站| 欧美成人免费公开播放欧美成人免费一区在线播放 | 亚洲国产成人精品无码区在线秒播 | 欧美成人精品第一区| 成人自拍小视频| 91成人高清在线播放| 国产亚洲欧美成人久久片| 成人免费视频网| 欧美成人免费在线| 欧美黄成人免费网站大全| 青青草国产精品欧美成人| 黄色成人免费网站|