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

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

  人物介紹:

  Jack Chen ——“寵物商店”的首席架構(gòu)架構(gòu)師,擁有豐富的軟件設(shè)計(jì)與建模經(jīng)驗(yàn),但對(duì)新生事物持懷疑態(tài)度。

  王總——“寵物商店”的總經(jīng)理,從美國(guó)留學(xué)后回國(guó)創(chuàng)立“寵物商店”網(wǎng)站。一路來(lái)唾手可得的成功讓他養(yǎng)成了固執(zhí)專(zhuān)橫的行事作風(fēng)。

  Spark —— Jack Chen的大學(xué)同學(xué),一家商業(yè)軟件公司的高級(jí)咨詢(xún)顧問(wèn)。最近熱衷于宣揚(yáng)“領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)”的最佳實(shí)踐。

  引子

  就象大家所聽(tīng)說(shuō)過(guò)的那些神奇小子創(chuàng)業(yè)故事一樣,幾只從大西洋游回的海龜找到了一個(gè)偉大的idea——在互聯(lián)網(wǎng)上開(kāi)辦在線(xiàn)商店銷(xiāo)售寵物。幸虧的是他們找到了投資者而且發(fā)展的很不錯(cuò)。但是隨著時(shí)間的推移,當(dāng)初“完美”的技術(shù)架構(gòu)隨著越來(lái)越多的裝進(jìn)籃子的需求后變得不堪重負(fù)。作為公司首席架構(gòu)師的Jack Chen已經(jīng)被這幾個(gè)月“雞毛蒜皮”的需求折磨失眠好幾天啦。

  Jack Chen周一一早就被興奮的王總給喊進(jìn)了辦公室,立即就被王總?cè)映鰜?lái)的idea嚇傻了。

  “我有一個(gè)很cool的想法,我們可以在線(xiàn)為寵物醫(yī)院提供在線(xiàn)預(yù)約的服務(wù)業(yè)務(wù)。而不僅僅是賣(mài)掉它們,你知道這意味著什么嗎?這是一個(gè)年產(chǎn)值上百億的市場(chǎng)!!!”。

  “可是王總,我們的系統(tǒng)不能支持這種非實(shí)物的服務(wù)預(yù)訂銷(xiāo)售,它可能對(duì)我們?cè)械木W(wǎng)站形成巨大的沖擊,我們需要三個(gè)月的時(shí)間對(duì)這個(gè)業(yè)務(wù)進(jìn)行全方面的評(píng)估…”

  Jack Chen立即就被氣勢(shì)洶洶的王總打斷了,“三個(gè)月的評(píng)估?我需要在兩個(gè)月內(nèi)就給我上線(xiàn)這個(gè)新業(yè)務(wù)。我們的投資人非常認(rèn)可我的idea,并要求我們立即把這個(gè)項(xiàng)目上線(xiàn),它可能會(huì)幫助我們提高明年的IPO價(jià)格。你明白嗎? DO IT ASAP!”

  評(píng)估

  “好吧,也許這個(gè)該死的王胖子是對(duì)的。我們這個(gè)將技術(shù)與業(yè)務(wù)混在一起的亂攤子也是到了該整理整理的時(shí)候。”自言自語(yǔ)發(fā)了半小時(shí)牢騷后的Jack Chen終于恢復(fù)到正常狀態(tài)上來(lái)了,我想我應(yīng)該看看我們現(xiàn)在是什么樣子的,為了支持這個(gè)該死的“在線(xiàn)為寵物醫(yī)院提供在線(xiàn)預(yù)約的服務(wù)”的需求我們需要做出哪些改變。于是Jack Chen在白板上很快的就畫(huà)出了下面的Use Case圖來(lái)。

  

 

  圖1 原寵物商店UseCase匯總圖

  為了支持“在線(xiàn)預(yù)約”這種特殊的產(chǎn)品,它會(huì)影響到大部分的Use Case,具體列舉如下:

  商品信息需要增加“預(yù)約時(shí)間”這個(gè)屬性,客戶(hù)在下訂單時(shí)會(huì)把它作為標(biāo)識(shí)一個(gè)預(yù)約的關(guān)鍵要素。

  “在線(xiàn)預(yù)約”是個(gè)虛擬的商品,它可不需要真的需要去檢貨和包裝發(fā)貨,如果真的那么做啦,我就太傻了。

  每個(gè)寵物醫(yī)院每天都只能接受一定數(shù)量的預(yù)約,從這個(gè)概念上來(lái)說(shuō),它與實(shí)物商品有類(lèi)似的庫(kù)存概念。可是我該怎么去表達(dá)它們呢?

  最要命的是:我真的要把這些所有受影響的Use Case都翻出來(lái)去讓它們支持虛擬物品的業(yè)務(wù)嗎?我怎么可能在2個(gè)月內(nèi)完成這些重構(gòu)?

  銀彈

  了無(wú)生趣的Jack Chen在王總的辦公室門(mén)口徘徊了N圈,還是沒(méi)有勇氣去迎接那一通狂風(fēng)暴雨般的中英文雙語(yǔ)版的羞辱謾罵。“也許事情是有轉(zhuǎn)機(jī)的,我好象在哪里聽(tīng)說(shuō)過(guò)有種銀彈可以解決這種系統(tǒng)重構(gòu)的問(wèn)題的”。“該死,誰(shuí)把Spark送給我的《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》墊在顯示器下啦,他一直在向我布道這本書(shū)給他的項(xiàng)目帶來(lái)的種種神奇改變,也許我也可以試試它的威力”。

  “好吧,Spark,我承認(rèn)你給推薦的書(shū)非常棒,你說(shuō)的也很有道理。我讀了它,明白并一些概念——例如:領(lǐng)域分割 、Entity、Service、Value Object…,可我對(duì)于該如何去做還是一頭霧水。你能不能直接把你從重構(gòu)項(xiàng)目中獲得的最佳實(shí)踐直接分享給我呢?不然的話(huà),周一王胖子是不會(huì)放過(guò)交不出答案的我的!”。讀完了這本書(shū),Jack Chen覺(jué)得很有收獲,但又不知道怎么開(kāi)始,打個(gè)電話(huà)給領(lǐng)域建模的先行者Spark也許真的是解決問(wèn)題最快的方法。

  “什么,這個(gè)問(wèn)題說(shuō)來(lái)話(huà)長(zhǎng)?不要緊,我已經(jīng)在你家門(mén)口了,你同我慢慢說(shuō)”,Jack Chen帶著星巴克咖啡+肯德基全家桶+久久鴨脖+諂媚的笑容出現(xiàn)在Spark家門(mén)口。

  布道

  Spark聽(tīng)完了Jack Chen對(duì)于現(xiàn)狀及需求的描述之后,一幅氣定神閑的樣子訕訕地說(shuō)出“這個(gè)很簡(jiǎn)單嘛,你現(xiàn)在需要做的只是這樣一些事情:”

  用大比例結(jié)構(gòu)對(duì)你的系統(tǒng)進(jìn)行領(lǐng)域劃分

  找出這個(gè)需求影響的領(lǐng)域及對(duì)外接口

  建立一個(gè)適合你們公司的領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的技術(shù)框架

  按照需求的緊急度來(lái)重構(gòu)各個(gè)領(lǐng)域的設(shè)計(jì)與編碼

  下面我們就按照這個(gè)順序來(lái)實(shí)踐一下:

  一、概要領(lǐng)域劃分

  Jack Chen立即把自己之前畫(huà)的Use Case重畫(huà)了一遍,然后用希冀的眼神看著Spark等待著認(rèn)可。“你的錯(cuò)誤是過(guò)于看重Case或者操作者身份,領(lǐng)域的劃分不是基于功能或角色來(lái)進(jìn)行的,通常來(lái)說(shuō)我們是將內(nèi)聚程度較高的Use Case歸到一個(gè)上下文中。盡量使得領(lǐng)域自閉程度較高,并擁有相同的業(yè)務(wù)語(yǔ)言環(huán)境。例如基于你的Use Case圖,我會(huì)畫(huà)出以下的領(lǐng)域”

  

 

  圖2 寵物商店領(lǐng)域通道圖

  通道圖是一個(gè)對(duì)業(yè)務(wù)領(lǐng)域建模非常有幫助的工具,它可以同時(shí)表達(dá)出執(zhí)行序列與分片的作用。

  二、找出受影響的領(lǐng)域與接口

  從領(lǐng)域的角度來(lái)看,只有商品對(duì)外暴露出來(lái)的接口是會(huì)影響到各個(gè)領(lǐng)域,需要優(yōu)先建立商品領(lǐng)域(ProductDomain)及讀取商品信息服務(wù)接口(GetProductService)來(lái)進(jìn)行重構(gòu)。

  之外,在【圖2】 中用綠色標(biāo)識(shí)出來(lái)的Use Case是由于增加支持“在線(xiàn)預(yù)約”這種虛擬商品所需要進(jìn)行代碼重構(gòu)的部分。這部分工作如果工期比較緊,可以?xún)?yōu)先使用模式的方式來(lái)進(jìn)行代碼重構(gòu),這樣也可以在之后更加容易用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)的方法再次重構(gòu)。


  推薦閱讀

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

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


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

地址:http://m.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èi)媒體與樂(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)論中的用戶(hù)名進(jìn)入您的個(gè)人空間,讓更多網(wǎng)友認(rèn)識(shí)您。
自媒體專(zhuān)欄

評(píng)論

熱度

主站蜘蛛池模板: 亚洲精品成人网站在线播放| 亚洲精品成人网站在线播放 | 亚洲国产成人久久综合区| 国产成人精品综合在线观看 | 欧美.成人.综合在线| 国产精品成人网站| 四虎成人精品在永久在线观看| 91成人在线免费观看| 国产成人精品视频网站| 久久久久AV综合网成人| 色老头成人免费视频天天综合| 成人精品视频一区二区三区| 国产成人精品久久一区二区小说| 亚洲成人福利在线观看| 天堂成人一区二区三区| 亚洲av成人片在线观看| 成人区人妻精品一区二区不卡 | 亚洲欧洲精品成人久久曰| 在线观看亚洲成人| 爱情岛永久地址www成人| 亚洲欧美日韩成人网| 国产成人精品免费视频大全五级| 成人高清毛片a| 精品久久久久成人码免费动漫| 午夜成人在线视频| 国产91青青成人a在线| 国产成人精品视频一区| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 国产成人精品a视频| 成人性生交大片免费视频| 99久久国产综合精品成人影院 | 成人久久精品一区二区三区| 日韩欧美国产成人| 欧美videosex性欧美成人| 欧美成人免费全部观看天天性色 | 国产成人精品日本亚洲专区6| 成人网在线免费观看| 成人性生交大片免费看好| 成人中文乱幕日产无线码| 国产成人综合洲欧美在线| 国产成人8X视频网站入口|