關(guān)于界限上下文的一些想法

界限上下文是<<實(shí)現(xiàn)領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)>>中提到的一個(gè)重要概念,花了一些時(shí)間才有了進(jìn)一步的了解,書中提到

界限上下文是一個(gè)顯式邊界.在邊界內(nèi),通用語(yǔ)言中的所有術(shù)語(yǔ)和詞組都有特定的含義,而模型需要準(zhǔn)確地反映通用語(yǔ)言.

這里提到的"顯式邊界"可以理解為一個(gè)語(yǔ)境,其實(shí)我們說(shuō)的每一句話都是在特定語(yǔ)境之下,并且特定語(yǔ)境下的每個(gè)詞都是有唯一解釋的,有共同的語(yǔ)境,人與人之間才能正常的交流,就好比和不同專業(yè)的人交流,也許他說(shuō)的每個(gè)詞都明白,但因?yàn)檎Z(yǔ)境不一樣,也不能聽(tīng)懂他在說(shuō)什么.還有上學(xué)時(shí)做英語(yǔ)閱讀理解,雖然每個(gè)單詞都認(rèn)識(shí),但依然不能夠理解文中表達(dá)的含義,就是缺少對(duì)語(yǔ)境的了解.書中也也提到了賬戶的例子,


賬戶的不同含義

在銀行上下文和文學(xué)上下文中都有賬戶這個(gè)概念,雖然叫法一樣,但含義卻隨著上下文的不同而不同,所以上下文劃分的有問(wèn)題,就會(huì)影響人們對(duì)問(wèn)題的描述,有問(wèn)題的描述自然會(huì)轉(zhuǎn)化為有問(wèn)題的程序,在軟件設(shè)計(jì)之初,對(duì)上下文的劃分是至關(guān)重要的,也是軟件戰(zhàn)略設(shè)計(jì)的重要組成.書中也提到了正確劃分上下文的必要性,


劃分界限上下文

正確劃分軟件的界限上下文是重要的,但是如何正確的劃分,書中沒(méi)有明確表述,因?yàn)檫@是與業(yè)務(wù)密切相關(guān),不過(guò)可以確定的是只有在深度理解業(yè)務(wù)的情況下才能正確劃分,當(dāng)然最好有領(lǐng)域?qū)<夷軌騾f(xié)助劃分.

在進(jìn)一步對(duì)界限上下文進(jìn)行抽象,可以把界限上下文理解為一個(gè)世界,世界里面涵蓋自然法則,知識(shí),問(wèn)題等等一切,可以映射到軟件設(shè)計(jì)中的業(yè)務(wù)規(guī)則,業(yè)務(wù)知識(shí),需求等,在這個(gè)世界里面解決問(wèn)題的思路的就是代碼的設(shè)計(jì)思路.

舉個(gè)常用的用例

1)顧客攜帶商品到收銀臺(tái);

2)收銀員掃描商品條形碼;

3)系統(tǒng)根據(jù)條形碼獲取并顯示商品信息先誉;

4)收銀員重復(fù)2~3步掠廓,直到所有商品掃描完畢逆甜;

5)系統(tǒng)計(jì)算商品總額;
津坑。。。浩考。。被盈。析孽。。只怎。袜瞬。。身堡。邓尤。。贴谎。汞扎。。擅这。澈魄。。
n)系統(tǒng)打出商品清單仲翎,完成交易痹扇。

這個(gè)例子位于超市界限上下文,該上下文中了包含了超市交易的相關(guān)的知識(shí),例如這個(gè)世界的參與者顧客,商品,收銀員等等;業(yè)務(wù)流程(用例本身);業(yè)務(wù)規(guī)則等.

我們可依根據(jù)這些知識(shí)進(jìn)行進(jìn)行軟件設(shè)計(jì),


商品交易界上下文

上圖是一個(gè)不完整的UML設(shè)計(jì),涵蓋了商品交易上下文中一些重要的實(shí)體,業(yè)務(wù)流程就是對(duì)這些實(shí)體行為的編排.

再進(jìn)一步對(duì)商品這個(gè)實(shí)體進(jìn)行分析,它有一個(gè)重要的行為是根據(jù)條形碼獲取商品信息,簡(jiǎn)單的實(shí)現(xiàn)可能是從數(shù)據(jù)庫(kù)獲取商品信息,所以商品這個(gè)實(shí)體也構(gòu)成一個(gè)上下文,在這個(gè)上下文包含了與商品交易上下文完全不同的知識(shí),例如數(shù)據(jù)訪問(wèn)這個(gè)概念,ORM相關(guān)的概念,也有著自己的業(yè)務(wù)規(guī)則,例如同一個(gè)條形碼只能對(duì)應(yīng)一種商品等.


上下文概念

如上圖所示,每個(gè)上下文都代表著一個(gè)世界,都有著符合本世界體系的知識(shí)和概念,商品交易上下文包含了商品,交易等概念,商品上下文包含了數(shù)據(jù)訪問(wèn),商品信息等概念,數(shù)據(jù)訪問(wèn)上下文中包含了數(shù)據(jù)庫(kù)鏈接,訪問(wèn),連接池等概念.即使有些概念的叫法看起來(lái)一致,例如商品交易上下文中和商品上下文中的商品信息概念,前者的信息是用于呈獻(xiàn)給用戶的,而后者是數(shù)據(jù)庫(kù)中商品信息表中的一個(gè)映射,兩者的本質(zhì)是有區(qū)別的,而且都必須在各自的上下文中才能有明確的解釋.

上下文世界

如上圖所示,軟件是可以由不同的上下文嵌套而成,如同我們的世界是由不同的世界嵌套構(gòu)成,所以世界即上下文,上下文即世界,應(yīng)了佛經(jīng)上的那句"須彌藏芥子铛漓,芥子納須彌",一切皆世界,世界皆一切.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市帘营,隨后出現(xiàn)的幾起案子票渠,更是在濱河造成了極大的恐慌,老刑警劉巖芬迄,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问顷,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡禀梳,警方通過(guò)查閱死者的電腦和手機(jī)杜窄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)算途,“玉大人塞耕,你說(shuō)我怎么就攤上這事∽烊浚” “怎么了扫外?”我有些...
    開(kāi)封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)廓脆。 經(jīng)常有香客問(wèn)我筛谚,道長(zhǎng),這世上最難降的妖魔是什么停忿? 我笑而不...
    開(kāi)封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任驾讲,我火速辦了婚禮,結(jié)果婚禮上席赂,老公的妹妹穿的比我還像新娘吮铭。我一直安慰自己,他們只是感情好颅停,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布谓晌。 她就那樣靜靜地躺著,像睡著了一般癞揉。 火紅的嫁衣襯著肌膚如雪纸肉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天烧董,我揣著相機(jī)與錄音毁靶,去河邊找鬼。 笑死逊移,一個(gè)胖子當(dāng)著我的面吹牛预吆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胳泉,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼拐叉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼岩遗!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起凤瘦,我...
    開(kāi)封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宿礁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蔬芥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梆靖,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年笔诵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了返吻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乎婿,死狀恐怖测僵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谢翎,我是刑警寧澤捍靠,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站森逮,受9級(jí)特大地震影響榨婆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吊宋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一纲辽、第九天 我趴在偏房一處隱蔽的房頂上張望颜武。 院中可真熱鬧璃搜,春花似錦、人聲如沸鳞上。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)篙议。三九已至唾糯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鬼贱,已是汗流浹背移怯。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留这难,地道東北人舟误。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像姻乓,于是被迫代替她去往敵國(guó)和親嵌溢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子眯牧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

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