DDD:Domain-Driven Design

概述

過去系統(tǒng)分析和系統(tǒng)設計都是分離的废菱,正如我們國家“系統(tǒng)分析師” 和“系統(tǒng)設計師” 兩種職稱考試一樣搀继,這樣割裂的結果導致吟策,需求分析的結果無法直接進行設計編程驶冒,而能夠進行編程運行的代碼卻扭曲需求苟翻,導致客戶運行軟件后才發(fā)現(xiàn)很多功能不是自己想要的搭伤,而且軟件不能快速跟隨需求變化。

DDD則打破了這種隔閡袜瞬,提出了領域模型概念,統(tǒng)一了分析和設計編程身堡,使得軟件能夠更靈活快速跟隨需求變化邓尤。見下面DDD與傳統(tǒng)CRUD或過程腳本或者面向數(shù)據(jù)表等在開發(fā)效率上比較:

服務器后端發(fā)展三個階段:

  1. UI+DataBase的兩層架構,這種面向數(shù)據(jù)庫的架構(上圖table module )沒有靈活性贴谎。
  2. UI+Service+DataBase的多層SOA架構汞扎,這種服務+表模型的架構易使服務變得囊腫,難于維護拓展擅这,伸縮性能差澈魄,見這里討論Spring Web 應用的最大敗筆.
  3. DDD+SOA的事件驅動的CQRS讀寫分離架構,應付復雜業(yè)務邏輯仲翎,以聚合模型替代數(shù)據(jù)表模型痹扇,以并發(fā)的事件驅動替代串聯(lián)的消息驅動。真正實現(xiàn)以業(yè)務實體為核心的靈活拓展溯香。

DDD革命性在于:領域模型準確反映了業(yè)務語言鲫构,而傳統(tǒng)J2EE或Spring+Hibernate等事務性編程模型只關心數(shù)據(jù),這些數(shù)據(jù)對象除了簡單setter/getter方法外玫坛,沒有任何業(yè)務方法结笨,被比喻成失血模型,那么領域模型這種帶有業(yè)務方法的充血模型到底好在哪里湿镀?

比賽Match為案例炕吸,比賽有“開始”和“結束”等業(yè)務行為,但是傳統(tǒng)經(jīng)典的方式是將“開始”和“結束”行為放在比賽的服務Service中勉痴,而不是放在比賽對象本身之中赫模。我們不能因為用了計算機,用了數(shù)據(jù)庫蚀腿,用了框架嘴瓤,業(yè)務模型反而被技術框架給綁架,就像人雖然是由母親生的莉钙,但是人的吃喝拉撒母親不能替代廓脆,更不能以母愛名義肢解人的正常職責行為,如果是這樣磁玉,這個人就是被母愛綁架了停忿。

DDD最大的好處是:接觸到需求第一步就是考慮領域模型,而不是將其切割成數(shù)據(jù)和行為蚊伞,然后數(shù)據(jù)用數(shù)據(jù)庫實現(xiàn)席赂,行為使用服務實現(xiàn)吮铭,最后造成需求的首肢分離。DDD讓你首先考慮的是業(yè)務語言颅停,而不是數(shù)據(jù)谓晌。重點不同導致編程世界觀不同。

DDD是解決復雜中大型軟件的一套行之有效方式癞揉,在國外已經(jīng)成為主流纸肉。DDD認為很多原因造成軟件的復雜性,我們不可能避免這些復雜性喊熟,能做的是對復雜的問題進行控制柏肪。而一個好的領域模型是控制復雜問題的關鍵。領域模型的價值在于提供一種通用的語言芥牌,使得領域專家和軟件技術人員聯(lián)系在一起烦味,溝通無歧義。

DDD在軟件生產(chǎn)流程中定位i如下圖壁拉,DDD落地實現(xiàn)離不開in-memory緩存谬俄、 CQRS、 DCI弃理、 EDAEvent Source幾大大相關領域凤瘦。

Ref:
http://www.jdon.com/ddd.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市案铺,隨后出現(xiàn)的幾起案子蔬芥,更是在濱河造成了極大的恐慌,老刑警劉巖控汉,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件笔诵,死亡現(xiàn)場離奇詭異,居然都是意外死亡姑子,警方通過查閱死者的電腦和手機乎婿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來街佑,“玉大人谢翎,你說我怎么就攤上這事°逯迹” “怎么了森逮?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長磁携。 經(jīng)常有香客問我褒侧,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任闷供,我火速辦了婚禮烟央,結果婚禮上,老公的妹妹穿的比我還像新娘歪脏。我一直安慰自己疑俭,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布婿失。 她就那樣靜靜地躺著怠硼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪移怯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天这难,我揣著相機與錄音舟误,去河邊找鬼。 笑死姻乓,一個胖子當著我的面吹牛嵌溢,可吹牛的內容都是我干的。 我是一名探鬼主播蹋岩,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼赖草,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剪个?” 一聲冷哼從身側響起秧骑,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扣囊,沒想到半個月后乎折,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡侵歇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年骂澄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惕虑。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡坟冲,死狀恐怖,靈堂內的尸體忽然破棺而出溃蔫,到底是詐尸還是另有隱情健提,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布伟叛,位于F島的核電站矩桂,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜侄榴,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一雹锣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癞蚕,春花似錦蕊爵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至恒水,卻和暖如春会放,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背钉凌。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工咧最, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人御雕。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓矢沿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酸纲。 傳聞我的和親對象是個殘疾皇子捣鲸,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內容