DDD理論學(xué)習(xí)系列(3)-- 限界上下文

DDD理論學(xué)習(xí)系列——案例及目錄


1. 引言

限界上下文可以拆分為兩個詞,限界和上下文。
限界:是指一個界限颤专,具體的某一個范圍。
上下文:個人理解就是語境钠乏。

比如我們常說的段子:

“我想靜靜栖秕。”
這個句子一般是想表達“我想靜一靜”的意思晓避。但是我們卻把它玩笑成“靜靜是誰簇捍?”。
可見上下文語境很重要俏拱。

這個例子只是個開胃菜暑塑,我們接著往下看。

2. 案例分析

整個應(yīng)用程序之內(nèi)的一個概念性邊界彰触。
邊界之內(nèi)的每種領(lǐng)域術(shù)語梯投、詞組或句子--也即通用語言,都有確定的上下文含義况毅。
邊界之外分蓖,這些術(shù)語可能表示不同的意思。

每次看到這種解釋就頭大尔许。我們還是結(jié)合我們的案例來聊一聊吧么鹤。

根據(jù)上一節(jié)對領(lǐng)域的剖析,我們把案例主要拆分成幾個子域味廊,其中銷售子域是核心域蒸甜,商品子域和物流子域為支撐子域棠耕。在這三個子域中,都要和商品打交道柠新。如果把商品抽象為Product對象的話窍荧,按我們一般的常規(guī)思路(拋開子域的劃分)來說,不管是商品銷售還是發(fā)貨恨憎,我們都可以共用同一個Product對象蕊退。
但在DDD中,在商品子域和銷售子域中憔恳,可以共享這個Product對象瓤荔,但在物流子域,就有點大材小用钥组。為什么呢输硝?因為畢竟物流子域關(guān)注的是商品的發(fā)貨處理和物流跟蹤。針對發(fā)貨流程而言程梦,我只關(guān)心商品的數(shù)量点把、大小、重量等規(guī)格屿附,而不必了解商品的價格等其他信息愉粤。所以說物流子域應(yīng)該關(guān)注的是貨物的發(fā)貨處理而不是商品。

那為什么我們之前的開發(fā)思路會共用同一個Product對象呢拿撩?
答案很簡單,沒有進行領(lǐng)域的劃分如蚜。把整個項目一概而論压恒,統(tǒng)一建模導(dǎo)致的結(jié)果。

在DDD的思想下错邦,當劃分子域之后探赫,每個子域都對應(yīng)有各自的上下文。在銷售子域和商品子域所在的上下文語境中撬呢,商品就是商品伦吠,無二義性。在物流子域的上下文語境中魂拦,我們也可以說商品的發(fā)貨處理毛仪,但這時的商品就特指貨物了。確定了真實面目之后芯勘,我想我們也會不由自主的抽象一個新的Cargo對象來處理物流相關(guān)的業(yè)務(wù)箱靴。這也是DDD帶來的好處,讓我們更清晰的建模荷愕。

3. 限界上下文的命名

限界上下文只是一個統(tǒng)一的命名衡怀,在我們劃分子域后棍矛,每個子域一般對應(yīng)一個上下文,也可以對應(yīng)多個上下文抛杨。但如果子域?qū)?yīng)多個上下文的時候够委,就要考慮一下是不是子域能否繼續(xù)劃分。
命名方式很簡單怖现,領(lǐng)域名+上下文茁帽。
比如我們的銷售子域?qū)?yīng)銷售上下文,物流子域?qū)?yīng)物流上下文真竖。

4. 總結(jié)

通過我們上面的舉例分析脐雪,限界上下文也并不是一個高深的概念。
用官話來說限界上下文主要用來封裝通用語言和領(lǐng)域?qū)ο蟆?br> 按我個人的理解它就是用來為領(lǐng)域提供上下文語境恢共,保證在領(lǐng)域之內(nèi)的一些術(shù)語战秋、業(yè)務(wù)相關(guān)對象等(通用語言)有一個確切的含義,沒有二義性讨韭。

參考資料

What are Bounded Contexts and Context Maps in Domain Driven Design?


2018.1.27 更新

觀察角度的不同,限界上下文劃定的邊界也有所不同脂信。大體可以分為如下三個方面:
領(lǐng)域邏輯層面:限界上下文確定了領(lǐng)域模型的業(yè)務(wù)邊界,維護了模型的完整性與一致性,從而降低系統(tǒng)的業(yè)務(wù)復(fù)雜度透硝。
團隊合作層面:限界上下文確定了開發(fā)團隊的工作邊界狰闪,建立了團隊之間的合作模式,避免團隊之間的溝通變得混亂,從而降低系統(tǒng)的管理復(fù)雜度濒生。
技術(shù)實現(xiàn)層面:限界上下文確定了系統(tǒng)架構(gòu)的應(yīng)用邊界埋泵,保證了系統(tǒng)層和上下文領(lǐng)域?qū)痈髯缘闹滦裕⒘松舷挛闹g的集成方式罪治,從而降低系統(tǒng)的技術(shù)復(fù)雜度丽声。
這三種邊界體現(xiàn)了限界上下文對不同邊界的控制力,業(yè)務(wù)邊界是對領(lǐng)域模型的控制,工作邊界是對開發(fā)協(xié)作的控制觉义,應(yīng)用邊界是對技術(shù)風(fēng)險的控制雁社。引入限界上下文的目的:其實不在于如何劃分邊界,而在于如何控制邊界晒骇。
--引用自?張逸:領(lǐng)域驅(qū)動戰(zhàn)略實踐?

怎么理解呢霉撵,就是說對限界上下文的劃分可以從三個角度去看。

  1. 從領(lǐng)域邏輯的角度洪囤,即根據(jù)業(yè)務(wù)知識進行劃分徒坡,比如將電商項目劃分為訂單、商品箍鼓、促銷崭参、物流、售后等限界上下文款咖。
  2. 從技術(shù)實現(xiàn)角度何暮,比如為了解決系統(tǒng)的高并發(fā)奄喂,決定引入緩存,那就可以考慮將緩存服務(wù)抽離為一個獨立的限界上下文作為支撐海洼。
  3. 從團隊合作的角度跨新,即回到了以人為本的思想。比如根據(jù)領(lǐng)域業(yè)務(wù)劃分的限界上下文組建領(lǐng)域特性團隊進行職責劃分以確定團隊協(xié)作邊界坏逢。明確的團隊邊界有利于團隊的溝通和協(xié)作域帐。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市是整,隨后出現(xiàn)的幾起案子肖揣,更是在濱河造成了極大的恐慌,老刑警劉巖浮入,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件龙优,死亡現(xiàn)場離奇詭異,居然都是意外死亡事秀,警方通過查閱死者的電腦和手機彤断,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來易迹,“玉大人宰衙,你說我怎么就攤上這事《糜” “怎么了供炼?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長窘疮。 經(jīng)常有香客問我劲蜻,道長,這世上最難降的妖魔是什么考余? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮轧苫,結(jié)果婚禮上楚堤,老公的妹妹穿的比我還像新娘。我一直安慰自己含懊,他們只是感情好身冬,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岔乔,像睡著了一般酥筝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雏门,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天嘿歌,我揣著相機與錄音掸掏,去河邊找鬼。 笑死宙帝,一個胖子當著我的面吹牛丧凤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播步脓,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼愿待,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了靴患?” 一聲冷哼從身側(cè)響起仍侥,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸳君,沒想到半個月后农渊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡相嵌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年腿时,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饭宾。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡批糟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出看铆,到底是詐尸還是另有隱情徽鼎,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布弹惦,位于F島的核電站否淤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏棠隐。R本人自食惡果不足惜石抡,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望助泽。 院中可真熱鬧啰扛,春花似錦、人聲如沸嗡贺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诫睬。三九已至煞茫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背续徽。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工蚓曼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人炸宵。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓辟躏,卻偏偏與公主長得像,于是被迫代替她去往敵國和親土全。 傳聞我的和親對象是個殘疾皇子捎琐,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

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