邊界上下文【翻譯】

? ? ? 邊界上下文是領(lǐng)域驅(qū)動設(shè)計的一個重要模式。它是領(lǐng)域驅(qū)動設(shè)計中策略設(shè)計部分的關(guān)注點-這部分是關(guān)于處理大型模型和團隊的洲胖。領(lǐng)域驅(qū)動設(shè)計通過把大型模型分割成不同的上下文并且明確定義它們之間的關(guān)系來處理大型模型渴庆。

? ? ? 領(lǐng)域驅(qū)動設(shè)計是基于背后領(lǐng)域的模型來設(shè)計軟件。一個模型作為一種統(tǒng)一語言幫助軟件開發(fā)人員和領(lǐng)域?qū)<抑g交流。它也作為軟件自身設(shè)計的概念基礎(chǔ)—如何分解成對象或者方法炬藤。為了有效性额港,一個模型必須是統(tǒng)一的即它是內(nèi)部一致的已至于在內(nèi)部沒有相矛盾的點饺窿。

? ? ? 當你試圖對一個更大的領(lǐng)域建模,構(gòu)建統(tǒng)一的模型會越來越困難移斩。在一個大型組織的不同部門肚医,不同小組的人可能使用略微不同的詞匯。模型的精確性很快會遇到這種問題向瓷,常常導(dǎo)致很多疑惑肠套。這種疑惑往往是因為關(guān)注于領(lǐng)域的中心概念。在我職位生涯的早期我做過一些與電力相關(guān)的工作—在這里”米”在公司的不同部門代表不同的東西:它是輸電網(wǎng)與地區(qū)之間猖任,輸電網(wǎng)與用戶之間的連接你稚,它是物理上米的意思。這些微妙的多義詞可能在溝通中比較緩和朱躺,但是對于計算機的精確性并不能這樣刁赖。我一次又一次的發(fā)現(xiàn)這個問題發(fā)生在一些多義詞上,比如“用戶”和“產(chǎn)品”长搀。

? ? ? 在那段年輕歲月宇弛,我們被建議在整個業(yè)務(wù)中構(gòu)建一個統(tǒng)一的模型,但是DDD認為我們所學習的”對一個大型系統(tǒng)盈滴,領(lǐng)域模型的完全統(tǒng)一將是不可行的或者不劃算的“涯肩。所以取而代之,DDD把大型系統(tǒng)分割成邊界上下文巢钓,每一個都有一個統(tǒng)一模型—本質(zhì)上是構(gòu)建多個重要模型(MultiCanonicalModels)的方法病苗。

? ? ? 邊界上下文即包含不相關(guān)的概念(例如一個售后票據(jù)僅僅存在于用戶售后上下文中)同時也共享一些概念(例如產(chǎn)品和用戶)。在集成的時候不同的上下文可能有一些相同的概念在不同的機制下有完全不同的模型映射到這些多義詞上症汹。很多DDD模式探索了上下文之間關(guān)系的可替換方式硫朦。

? ? ? 多種因素影響上下文之間的邊界劃定。比較常用的重要方法是人類文化背镇,因為模型作為一種統(tǒng)一語言咬展,在語言改變的時候你需要一個不同的模型。你也可以在相同的領(lǐng)域上下文中找到多個上下文瞒斩,例如一個應(yīng)用中內(nèi)存和關(guān)系數(shù)據(jù)庫模型的分離破婆。通過不同的方式描述模型,邊界就被設(shè)置胸囱。

? ? ? DDD的策略設(shè)計部分描述了多種方法祷舀,你可以使用它處理上下文之間的管理。使用一個上下文地圖來描述這些關(guān)系是非常值得的。

進一步閱讀

DDD的權(quán)威來源是Eric Evans的書裳扯。對于軟件著作來說它不是最容易讀的抛丽,但是它包含了大量實質(zhì)性的研究。上下文邊界在第4部分饰豺。

Vaughn Vernon的《Implementing Domain-Driven Desgin》書關(guān)注于策略設(shè)計亿鲜。第2章詳細介紹了一個領(lǐng)域怎樣被分成邊界上下文,第3章是繪制上下文地圖的最好資源冤吨。

我喜歡一些老但是仍然有用的軟件書籍蒿柳。我最喜歡的書之一是William Kent的《Data and Reality》。我仍然記的他對油井的多異性的簡短描述漩蟆。

Eric Evans描述了一個邊界上下文的明確使用如何允許團隊使用冒泡上下文把一個新功能移植到一個遺留系統(tǒng)中其馏。例子描述了相關(guān)的邊界上下文如何有相同的和不同的模型以及如何在它們之間做對應(yīng)。

作者:Martin Fowler

原文鏈接:http://martinfowler.com/bliki/BoundedContext.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末爆安,一起剝皮案震驚了整個濱河市叛复,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扔仓,老刑警劉巖褐奥,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異翘簇,居然都是意外死亡撬码,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門版保,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呜笑,“玉大人,你說我怎么就攤上這事彻犁〗行玻” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵汞幢,是天一觀的道長驼鹅。 經(jīng)常有香客問我,道長森篷,這世上最難降的妖魔是什么输钩? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮仲智,結(jié)果婚禮上买乃,老公的妹妹穿的比我還像新娘。我一直安慰自己钓辆,他們只是感情好剪验,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布哼绑。 她就那樣靜靜地躺著,像睡著了一般碉咆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛀恩,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天疫铜,我揣著相機與錄音,去河邊找鬼双谆。 笑死壳咕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的顽馋。 我是一名探鬼主播谓厘,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寸谜!你這毒婦竟也來了竟稳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤熊痴,失蹤者是張志新(化名)和其女友劉穎他爸,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體果善,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡诊笤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了巾陕。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片讨跟。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鄙煤,靈堂內(nèi)的尸體忽然破棺而出晾匠,到底是詐尸還是另有隱情,我是刑警寧澤梯刚,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布混聊,位于F島的核電站,受9級特大地震影響乾巧,放射性物質(zhì)發(fā)生泄漏句喜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一沟于、第九天 我趴在偏房一處隱蔽的房頂上張望咳胃。 院中可真熱鬧,春花似錦旷太、人聲如沸展懈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽存崖。三九已至冻记,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間来惧,已是汗流浹背冗栗。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留供搀,地道東北人隅居。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像葛虐,于是被迫代替她去往敵國和親胎源。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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