成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

限界上下文(BC)是什么

JackJiang / 3484人閱讀

摘要:翻譯自有整理你問的限界上下文是什么特定模型的分隔適用性。限界上下文意味著責(zé)任是通過明確的邊界來強(qiáng)制執(zhí)行的舉個例子過程約翰,公司的開發(fā)人員。每個組也是有限的上下文。

翻譯自DDD - The Bounded Context Explained,有整理
你問的限界上下文(BC)是什么?

“特定模型的分隔適用性。限界上下文使團(tuán)隊成員能夠清楚地分享對必須一致的內(nèi)容以及可以獨(dú)立開發(fā)的內(nèi)容?!?/strong>

看定義看懂了嗎?

BC是最難解釋的DDD原則之一,但它可能是最重要的,因為沒有BC就不能做DDD。因此,您必須了解如何在實際獲取根聚合,聚合,實體和值對象之前識別BC。

讓我們再試一次:上下文意味著具體的責(zé)任。限界上下文意味著責(zé)任是通過明確的邊界來強(qiáng)制執(zhí)行的

舉個例子 過程

約翰,X公司的開發(fā)人員。約翰在IT部門工作

麗塔,她是同一家公司的會計師。麗塔在會計部門工作

此時,IT部門是一個限界上下文,會計部門是另一個限界上下文

IT部門有責(zé)任處理公司中與IT相關(guān)的所有事務(wù),而會計部門處理與會計相關(guān)的所有事務(wù)

約翰不會進(jìn)入麗塔的辦公室并修改工資單,而麗塔也不會去約翰的辦公室并修改他的代碼。

雖然他們可以這么做,但這將是一個丑聞。因為如果他們這樣做,他們將超越他們的界限。

如果麗塔在會計軟件(內(nèi)部開發(fā))中發(fā)現(xiàn)錯誤,她會致電IT部門處理。她不會啟動Visual Studio并開始搞亂代碼。這既不是她的責(zé)任同時她也不需要知道怎么做,即使她知道VS是約翰用來編寫代碼的程序(事實上,VS在會計師的計算機(jī)上將是一個非常奇怪的軟件)

同樣明智的是,工資單文件或發(fā)票在IT部門中是沒有位置的。

當(dāng)然,當(dāng)約翰遇到涉及工資單的問題時,他要求麗塔調(diào)查一下。

兩者都尊重彼此的界限,并根據(jù)自己的責(zé)任行事。

但I(xiàn)T部門本身分為兩組:軟件開發(fā)組和管理組。第一組實現(xiàn)功能并修復(fù)錯誤。第二組處理服務(wù)器。每個組也是有限的上下文。他們有自己的責(zé)任和明確的界限。 DBA不編寫C#代碼,約翰不會破壞服務(wù)器配置。每個人都按照自己的責(zé)任行事并在自己的范圍內(nèi)行事。

兩者都有非常精確的責(zé)任,他們的界限非常明確。

小結(jié)

所以,IT部門是BC。約翰是其模型的一部分。
事實上,所有有意義的東西(開發(fā)人員,服務(wù)器等)都是BC的一部分,它應(yīng)該在內(nèi)部保持一致(開發(fā)人員應(yīng)該編寫軟件而不是詢問發(fā)票)。
這意味著麗塔在IT方面沒有地位,她不應(yīng)該處理與IT相關(guān)的任何事情。
麗塔是會計BC的一部分。她可能正在訪問IT辦公室,但她只是一個匆匆過客,她對該部門毫無意義,沒有人希望她編寫代碼或充當(dāng)開發(fā)人員。約翰可能喜歡麗塔,并花了一些時間在她的辦公室,但這并不能使約翰成為一名會計師。

不同BC之間的“合作” BC與BC的關(guān)系

我們可以看到,在一定程度上,BC是自治的,它們不重疊。此外,如果來自一個BC(X)的對象轉(zhuǎn)到其他BC(Y),它并不意味著它現(xiàn)在是后者的一部分,它僅被視為一個對Y沒有意義的簡單對象。所以它們幾乎是獨(dú)立的,那么他們?nèi)绾我黄鸸ぷ鳎?/p> 不同BC之間該如何合作 例子說明

登場新人物 -> 安德魯(IT部門經(jīng)理)

按照例子來說,當(dāng)會計部門必須和IT部門合作的時候該如何做?

他們通過與合適的人交談來做到這一點(diǎn)。

當(dāng)麗塔需要一個新的軟件功能時,她可以告訴約翰,但約翰的經(jīng)理(安德魯)最終決定是否添加,以及將添加哪些功能。

當(dāng)你想要新功能甚至修復(fù)一些錯誤時,是需要與安德魯交流的。安德魯是IT經(jīng)理,他告訴約翰(或IT的其他任何人)下一步該做什么。

麗塔不能忽視安德魯,因為這是IT部門的規(guī)則:安德魯做決定。你必須按照安德魯想要的方式提出你的想法,否則他們會被拒絕。當(dāng)要求對IT不符合方式且沒有意義的時候,要求會自動被拒絕。

安德魯是IT BC的反腐敗層,沒有什么決定能夠跳過他,它適合于IT部門的內(nèi)部組織。

類比到代碼

這些例子很簡單,但我們的代碼呢?我們確實希望我們的BC能夠解耦,所以BC1不應(yīng)該知道BC2。好吧,這個想法是一個BC不應(yīng)該知道其他BC的內(nèi)部,這兩個可以使用公共對象(DTO)直接將消息傳遞給另一個或者是專門的適配器,它知道如何與兩個BC通信。雖然通過域事件(基本上是更高級別使用的觀察者模式)的首選方法。

結(jié)束語

哇,很長的帖子,但我希望你現(xiàn)在對一個有限的背景有一個非常明確的理解。以下是常見有界上下文的一些示例:應(yīng)用程序本身,UI層,域?qū)右约八鼈兊淖钚C:對象,任何對象。

參考

DDD - The Bounded Context Explained

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28078.html

相關(guān)文章

  • 領(lǐng)域驅(qū)動設(shè)計戰(zhàn)術(shù)模式--領(lǐng)域事件

    摘要:將領(lǐng)域中所發(fā)生的活動建模成一系列離散事件。領(lǐng)域事件是領(lǐng)域模型的組成部分,表示領(lǐng)域中所發(fā)生的事情。創(chuàng)建領(lǐng)域事件事件命名在建模領(lǐng)域事件時,我們應(yīng)該根據(jù)限界上下文中的通用語言來命名事件。 使用領(lǐng)域事件來捕獲發(fā)生在領(lǐng)域中的一些事情。 領(lǐng)域驅(qū)動實踐者發(fā)現(xiàn)他們可以通過了解更多發(fā)生在問題域中的事件,來更好的理解問題域。這些事件,就是領(lǐng)域事件,主要是與領(lǐng)域?qū)<乙黄疬M(jìn)行知識提煉環(huán)節(jié)中獲得。 領(lǐng)域事件,可...

    wzyplus 評論0 收藏0
  • 基本算法思想:遞歸+分治+動態(tài)規(guī)劃+貪心+回溯+分支限界

    摘要:代碼實現(xiàn)見下面評論對應(yīng)代碼動態(tài)規(guī)劃基本思想和分治法基本思想有共同的地方,不同的是子問題往往不是獨(dú)立的,有事母問題要借助子問題的解來判斷,因此把已經(jīng)計算好的問題記錄在表格中,后續(xù)如果需要查詢一下,可以避免重復(fù)計算,這是動態(tài)規(guī)劃的基本思想。 作者:心葉時間:2018-05-01 19:28 本文對應(yīng)github地址:https://github.com/yelloxing/... 以上實現(xiàn)...

    EscapedDog 評論0 收藏0
  • 《微服務(wù)設(shè)計》讀書筆記(關(guān)于微服務(wù)的一點(diǎn)想法)

    摘要:而微服務(wù)將這個理念應(yīng)用在獨(dú)立的服務(wù)上。微服務(wù)對比與原來的單體應(yīng)用,有它的優(yōu)勢,如服務(wù)的自治性增強(qiáng)但同時也會帶來一些其他問題,如性能復(fù)雜度等問題。想要使用微服務(wù),首先是要清楚哪些業(yè)務(wù)或者功能應(yīng)該成為單獨(dú)的服務(wù)。其次,考慮業(yè)務(wù)極有可能的變化。 1、在學(xué)習(xí)軟件構(gòu)造、設(shè)計相關(guān)知識時,大家應(yīng)該有學(xué)習(xí)到內(nèi)聚性的概念:即把因相同原因而變化的東西聚合到一起,而把因不同原因而變化的東西分離開來。而 微服...

    lpjustdoit 評論0 收藏0
  • 校招社招必備核心前端面試問題與詳細(xì)解答

    摘要:本文總結(jié)了前端老司機(jī)經(jīng)常問題的一些問題并結(jié)合個人總結(jié)給出了比較詳盡的答案。網(wǎng)易阿里騰訊校招社招必備知識點(diǎn)。此外還有網(wǎng)絡(luò)線程,定時器任務(wù)線程,文件系統(tǒng)處理線程等等。線程核心是引擎。主線程和工作線程之間的通知機(jī)制叫做事件循環(huán)。 showImg(https://segmentfault.com/img/bVbu4aB?w=300&h=208); 本文總結(jié)了前端老司機(jī)經(jīng)常問題的一些問題并結(jié)合個...

    DevTalking 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<