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

作者: 來源:未知 2012-04-27 20:49:47 閱讀 我要評論 直達商品

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

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

  

 

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

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

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

  基礎(chǔ)倉庫的引入,基礎(chǔ)倉庫是一個抽象的倉庫,它封裝了大量常用工具方法、業(yè)務(wù)對象生命周期維護(實體OR映射、DAO調(diào)用)、外部接口調(diào)用。可以降低業(yè)務(wù)倉庫不必要的重復(fù)編碼與復(fù)雜性。業(yè)務(wù)倉庫是繼承基礎(chǔ)倉庫的子類。

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

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

  

 

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

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

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

  基礎(chǔ)倉庫Repository通過Infrastructure中的DAO封裝了對實體的操作,如create()、update()、delete()、findById()、findList()

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

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

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

  來源:InfoQ


  推薦閱讀

  軟文寫作“三板斧”以理服人 以情動人 以誠感人

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


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

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

頂一下

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

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

評論

熱度

主站蜘蛛池模板: 成人免费小视频| 四虎在线成人免费网站| 成人3d黄动漫无尽视频网站| 欧美14videosex性欧美成人| 高清成人爽a毛片免费网站| 久久精品成人国产午夜| 欧美成人在线观看| 国产新疆成人a一片在线观看 | 色噜噜狠狠成人中文综合| 精品无码成人久久久久久| 国产成人精品免高潮在线观看| 国产成人av区一区二区三| a级成人毛片完整版| 成人乱码一区二区三区AV| 国产成人无码av片在线观看不卡 | 精品欧美成人高清在线观看| 国产成人精品午夜福利 | 国产成人精品97| 成人黄色在线观看| 久久青青成人亚洲精品| 国产成人精品午夜视频'| 欧美成人性动漫在线观看| 久久精品成人一区二区三区| 国产成人小视频| 成人久久久久久| 成人在线不卡视频| caoporn成人| 亚洲精品成人网久久久久久| 成人欧美一区二区三区黑人3p| 亚洲精品成人a| 国产成人性色视频| 国产成人精品A视频一区| 成人午夜精品无码区久久| 成人最新午夜免费视频| 欧美成人手机视频| 麻豆成人久久精品二区三区免费| 亚洲欧美日韩成人网| 亚洲成人aaa| 97成人碰碰久久人人超级碰OO | 欧美成人免费tv在线播放| 欧美成人一区二区三区在线电影|