《實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》筆記(2)-第一章DDD入門

DDD入門

領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)作為一種軟件方法陆赋,它可以幫助我們?cè)O(shè)計(jì)高質(zhì)量的軟件模型。在正確實(shí)現(xiàn)的情況下嚷闭,我們通過(guò)DDD完成的設(shè)計(jì)恰恰就是軟件的工作方式攒岛。

了解DDD可以為你的項(xiàng)目和團(tuán)隊(duì)帶來(lái)哪些好處。

  • 首先胞锰,DDD不應(yīng)該是一個(gè)儀式性的過(guò)程灾锯,更不應(yīng)該成為你項(xiàng)目進(jìn)度的阻礙。我們的目標(biāo)應(yīng)該是創(chuàng)造一個(gè)可測(cè)試的嗅榕,可伸縮顺饮,組織良好的軟件模型。
  • 將領(lǐng)域?qū)<乙氲綀F(tuán)隊(duì)是大有好處的
    在實(shí)施DDD的過(guò)程中凌那,你最好將那些不怎么使用技術(shù)語(yǔ)言的人加進(jìn)自己的團(tuán)隊(duì)兼雄。就像你會(huì)像他們學(xué)習(xí)一樣,他們也會(huì)向你學(xué)習(xí)帽蝶。
    但是我們還沒(méi)有領(lǐng)域?qū)<?/li>

領(lǐng)域?qū)<也⒉皇且粋€(gè)職位赦肋,他可以是精通業(yè)務(wù)的任何人。他們可能了解更多的關(guān)于業(yè)務(wù)領(lǐng)域的背景知識(shí),他們可能是軟件產(chǎn)品的設(shè)計(jì)者佃乘,甚至有可能是銷售員囱井。

什么是領(lǐng)域模型

領(lǐng)域模型是關(guān)于某個(gè)特定業(yè)務(wù)的軟件模型。通常趣避,領(lǐng)域模型通過(guò)對(duì)象模型來(lái)實(shí)現(xiàn)庞呕,這些對(duì)象同時(shí)包含了數(shù)據(jù)和型為,并且表達(dá)了準(zhǔn)確的業(yè)務(wù)含義程帕。

為什么我們需要DDD

    1. 幫助業(yè)務(wù)人員自我提高
  • 2.確保軟件知識(shí)并不只是掌握在少數(shù)人手中住练。
  • 3.領(lǐng)域/開發(fā)者,軟件本身不存在“翻譯”愁拭,當(dāng)大家都是用相同的而語(yǔ)言進(jìn)行交流澎羞,沒(méi)人都能聽懂他人所說(shuō)。
  • 4敛苇,設(shè)計(jì)就是代碼,代碼就是設(shè)計(jì)顺呕。

DDD如何幫助我們

  • 1.領(lǐng)域?qū)<液烷_發(fā)人員聚集到一起枫攀,開發(fā)的軟件能夠反映出專家的思維模型。
  • 2.DDD關(guān)注業(yè)務(wù)戰(zhàn)略
  • 3.通過(guò)使用戰(zhàn)術(shù)設(shè)計(jì)建模工具株茶,DDD滿足了軟件真正的技術(shù)需求来涨。

處理領(lǐng)域復(fù)雜性。

在使用DDD時(shí)启盛,我們首先希望將他應(yīng)用在最重要的業(yè)務(wù)場(chǎng)景下蹦掐。這樣的模型命名為核心域(Core Domain),而相對(duì)次要的成為支撐子域(Supporting Subdomain)
DDD的作用是簡(jiǎn)化,而不是復(fù)雜化僵闯。
在使用DDD時(shí)卧抗,我們應(yīng)該采用最簡(jiǎn)單的方式對(duì)復(fù)雜領(lǐng)域進(jìn)行建模,而不是使問(wèn)題變的更復(fù)雜鳖粟。

貧血癥和失憶癥

貧血領(lǐng)域?qū)ο螅ˋnemic Domain Object)表述一個(gè)缺少內(nèi)在型為的領(lǐng)域?qū)ο蟆?/p>

如:

public bool SaveCustomer(參數(shù)1社裆,參數(shù)2){
屬性賦值,
Save();
}

三大問(wèn)題:
1.業(yè)務(wù)意圖不明顯
2.方法的實(shí)現(xiàn)本身增加了潛在的復(fù)雜性
3.Customer本身并不是對(duì)象向图,而只是一個(gè)數(shù)據(jù)持有器泳秀。
這種情況成為“由貧血導(dǎo)致的失憶癥”

如何DDD

DDD最具威力的特性:通用語(yǔ)言和限界上下文(Bounded Context),同時(shí)構(gòu)成了DDD的兩大支柱,并且他們時(shí)相輔相成的榄攀。
通用語(yǔ)言嗜傅,澄清的幾點(diǎn)

是通用,不是萬(wàn)能檩赢。
只有團(tuán)隊(duì)工作在一個(gè)獨(dú)立的限界上下文時(shí)吕嘀,通用語(yǔ)言才是"通用“的。通過(guò)上下文映射圖和其他限界上下文進(jìn)行集成。每個(gè)限界上下文都有自己的通用語(yǔ)言币他。
如果你打算將某個(gè)通用語(yǔ)言運(yùn)用在整個(gè)企業(yè)范圍之內(nèi)坞靶,你將失敗。

DDD業(yè)務(wù)價(jià)值

  • 1.獲得了一個(gè)非常有用的領(lǐng)域莫能行
  • 2.業(yè)務(wù)得到了更準(zhǔn)確的定義和理解
  • 3.領(lǐng)域?qū)<铱梢詾檐浖O(shè)計(jì)做出貢獻(xiàn)
  • 4.更好的用戶體驗(yàn)蝴悉。
  • 5.敏捷/迭代式和持續(xù)建模
  • 彰阴。。拍冠。
  • 8.使用戰(zhàn)略和站術(shù)新工具

實(shí)施DDD所面臨的挑戰(zhàn)

  • 1.為創(chuàng)建通用語(yǔ)言騰出時(shí)間和精力
  • 2.持續(xù)的將領(lǐng)域?qū)<乙腠?xiàng)目
  • 3.改變開發(fā)者對(duì)領(lǐng)域的思考方式尿这。
  • 如何在項(xiàng)目中引入領(lǐng)域?qū)<?br> 例子1:以數(shù)據(jù)為中心
public 類A{
    public 屬性A1,
    public 屬性B1
}

例子2:使用領(lǐng)域?qū)ο蟆?/p>

 pulic 類B{
     public 方法行為 (類C){
     }
}

DDD并不笨重。

DDD能很好的與敏捷項(xiàng)目框架結(jié)合起來(lái)庆杜,也傾向于”測(cè)試先行射众,逐步改進(jìn)“。
DDD-Lite是DDD站術(shù)模式的一個(gè)子集晃财,它并不強(qiáng)調(diào)對(duì)通用語(yǔ)言的使用叨橱,此外,DDD-Lite通常也忽略了限界上下文和上下文映射圖断盛。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末罗洗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子钢猛,更是在濱河造成了極大的恐慌伙菜,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件命迈,死亡現(xiàn)場(chǎng)離奇詭異贩绕,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壶愤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門淑倾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人征椒,你說(shuō)我怎么就攤上這事踊淳。” “怎么了陕靠?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵迂尝,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我剪芥,道長(zhǎng)垄开,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任税肪,我火速辦了婚禮溉躲,結(jié)果婚禮上榜田,老公的妹妹穿的比我還像新娘。我一直安慰自己锻梳,他們只是感情好箭券,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疑枯,像睡著了一般辩块。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上荆永,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天废亭,我揣著相機(jī)與錄音,去河邊找鬼具钥。 笑死豆村,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骂删。 我是一名探鬼主播掌动,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宁玫!你這毒婦竟也來(lái)了粗恢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤撬统,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后敦迄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恋追,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年罚屋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苦囱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡脾猛,死狀恐怖撕彤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猛拴,我是刑警寧澤羹铅,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站愉昆,受9級(jí)特大地震影響职员,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜跛溉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一焊切、第九天 我趴在偏房一處隱蔽的房頂上張望扮授。 院中可真熱鬧,春花似錦专肪、人聲如沸刹勃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荔仁。三九已至,卻和暖如春诺苹,著一層夾襖步出監(jiān)牢的瞬間咕晋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工收奔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掌呜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓坪哄,卻偏偏與公主長(zhǎng)得像质蕉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子翩肌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容