《實現領域驅動設計》筆記——上下文映射圖

一個項目的上下文映射圖可以用方式來表示。比較容易的一種是畫一個簡單的框圖表示兩個或多個限界上下文之間的映射關系。該框圖表示了不同的限界上下文在解決方案空間中是如何通過集成相互關聯的。另一種更詳細的方式是通過限界上下文集成的源代碼實現來表示。

  上下文映射圖為什么重要

  上下文映射圖主要幫助我們從解決方案空的角度看待問題。

  

  假定你期望大泥球維護團隊提供一套新的API。然而,他們卻并不打算這么做,或者他們根本就不知道你的想法。此時你的團隊和大泥球維護團隊的關系變成了?客戶方-供應方?的關系。由于大泥球團隊決定維持現狀,你的團隊不得不陷入一種遵奉關系中。這樣的關系可能導致你的項目延期交付或者徹底失敗。

  盡早繪制上下文映射圖,這樣可以迫使你仔細思考你的項目和你所依賴項目之間的關系。

  繪制上下文映射圖

  上下文映射圖表現的是項目當前的狀態,如果項目會在將來發生改變,你可以到那時才對上下文映射圖做出相應的更新。關注于當前的項目狀態可以幫助你了解你正處的位置,并幫助你決定如何走出下一步。

  繪制一個上下文映射圖并不復雜。通常,首選在白板上手繪映射圖,此時你可以采用 [Brandolini] 的風格。如果你打算使用一個繪圖工具來繪制上下文映射圖,請注意不要把圖畫得太正式了。

  上圖3.1中,圖中限界上下文的名字和彼此之間的集成關系只是占位符而已,在真實的上下文映射圖中,我們將代之以實際的名字。

  有時,我們希望對上下文映射圖的某些特定部分進行放大,以向里面加入更多的細節,這只是從另外一個角度來看待同一個限界上下文。除了邊界、關系和翻譯,我們可以可能希望加入其他的一些內容,比如模塊、聚合,或者團隊的分布信息等。

  所繪制的所有映射圖,包括文字,都可以裝訂在同一份參考文檔中,只要這對團隊是有價值的。在這個過程中,我們應該避免那些繁文縟節性的儀式,保持簡單和敏捷。向框圖中加入過多的細節對團隊并無多大幫助,交流才是關鍵,我們應該將交流對話也加入到上下文映射圖中。

  

  上下文映射圖并不是一種企業架構,也不是系統拓撲圖。但是,它可以用于高層次的架構分析,指出諸如集成瓶頸之類的架構不足。上下文映射圖展現了一種組織動態能力,它可以幫助我們識別出有礙項目進展的一些管理問題。

  并不是說限界上下文邊界一定得密不透風,而是:對于任何上下文邊界,開發團隊都希望協作上下文能夠完全地控制所進所出,還包括進出的原因。否則,該上下文便會出現一些不受歡迎的“拜訪者”。對于模型而言,這些“拜訪者”通常會導致混淆和BUG。建模人員應該是友好的,但是友好的前提是秩序與和諧。任何進入邊界的外部概念都應該持有充分的理由,甚至需要和邊界內的模型保持良好的兼容性。

  在理解充分的情況下,要繪制上下文映射圖并不難,但是通常來說,我們并不會將映射圖中的所有內容都顯示出來。在迭代過程中,思考和討論可以幫助我們改進上下文映射圖,比如對集成點進行改進,這將有助于描述限界上下文之間的關系。

  擁有自治服務的應用程序并不表示需要將上游系統的數據庫復制到下游系統。數據庫復制將迫使本地系統承擔過多的職責,它需要創建一個共享內核,而這并不是真正意義上的自治。

  處理不可用的一個 好辦法是將其顯現出來。

  使用資源可用性狀態的好處并不只是技術上的,還有商業上的。

  需要記住的是,對于一個非常詳細的上下文映射圖,我們很有可能無法對其進行實時更新。

文章轉載自:Ruby_Lu

原文鏈接:https://www.cnblogs.com/afei-24/p/17848031.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/163676.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/163676.shtml
英文地址,請注明出處:http://en.pswp.cn/news/163676.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微軟WHQL認證

windows驅動開發要擺脫在測試模式下的開發,需要通過WHQL認證。 1:申請EV代碼簽名證書。EV代碼簽名證書在后續注冊Windows硬件開發中心帳戶,以及提交WHQL認證前為驅動程序進行數字簽名等流程中都需要用到,所以申請EV代碼簽名證書是…

唯一索引和普通索引的使用上要注意什么

考慮下面一種情況: select name from CUser where id_card xxxxxxxyyyyyyzzzzz;你可能會將id_card作為主鍵了,但最好別這么做。你想想這么長一串的字符串做主鍵,查詢時候效率其實是比較低的,其實是建議選擇其他的作為主鍵。 那么…

BUUCTF [SWPU2019]我有一只馬里奧 1

BUUCTF:https://buuoj.cn/challenges 題目描述: 得到的 flag 請包上 flag{} 提交。 密文: 下載附件,得到一個.exe文件。 解題思路: 1、雙擊.exe文件運行,得到一個1.txt文本。打開,如下圖。 2、提示我們…

Mysql中正則表達式Regexp常見用法

Mysql中正則表達式Regexp常見用法_regexp不包含-CSDN博客

List轉string 逗號分隔

List轉string 逗號分隔 1、將list轉化為逗號分割的字符串 String str String.join(",", list); String str StringUtils.json(list.toArray(), ",");   2、將逗號分隔的字符串轉換為List List<String> list Arrays.asList(str.split("…

當老師應該選文科還是理科

教育不斷發展和改革&#xff0c;教師職業的選擇也越來越受到關注。許多人在選擇專業時都會考慮成為一名教師&#xff0c;但對于選擇文科還是理科卻感到困惑。本文將探討當老師應該選文科還是理科。 文科注重的是人文素養和社會科學方面的知識&#xff0c;而理科則注重自然科學和…

如何做一個簡單的深度集成學習框架

使用同一個框架&#xff0c;獨立在一個數據集上面&#xff0c;分別訓練多次&#xff0c;每個單獨模型訓練超參數可以一樣&#xff0c;也可以不一樣&#xff0c;最后若干個訓練好的獨立模型在測試集數據上面做最后集中決策。 實例代碼如下&#xff1a; class MyEnsemble(nn.Modu…

問題 上位機程序重啟

/ 1、上位機程序重啟&#xff0c; 讀線程被殺死&#xff0c;mcu usb busy&#xff0c;數據在fifo發不出去 下次線程重啟后&#xff0c;在fifo里的數據首先被發送出去。 //

紅旗Asianux Server Linux V8 安裝萬里數據庫(GreatSQL)

紅旗Asianux Server Linux V8 安裝萬里數據庫&#xff08;GreatSQL&#xff09; 紅旗Asianux介紹&#xff1a; 紅旗Asianux Server Linux 8.0是為云時代重新設計的操作系統&#xff0c;為云時代的到來引入了大量新功能&#xff0c;包括用于配置管理、快速遷移框架、編程語言和…

每天5分鐘復習OpenStack(十)Ceph 架構

1、Ceph是什么&#xff1f; “Ceph is a unified, distributed storage system designed for excellent performance, reliability and scalability.”這句話說出了Ceph的特性&#xff0c;它是可靠的、可擴展的、統一的、分布式的存儲系統。Ceph可以同時提供對象存儲RADOSGW&am…

ip_file_Hook項目解讀

程序流程 執行文件訪問攔截和 IP 地址攔截的流程&#xff1a; 文件訪問攔截功能&#xff1a; 當應用程序嘗試執行文件操作&#xff0c;例如打開文件&#xff0c;調用的是 open 或 openat 函數。 由于這兩個函數已經被重定向為自定義的版本&#xff0c;所以實際上調用的是 op…

基于 Flink SQL 和 Paimon 構建流式湖倉新方案

本文整理自阿里云智能開源表存儲負責人&#xff0c;Founder of Paimon&#xff0c;Flink PMC 成員李勁松在云棲大會開源大數據專場的分享。本篇內容主要分為四部分&#xff1a; 數據分析架構演進介紹 Apache PaimonFlink Paimon 流式湖倉流式湖倉Demo演示 數據分析架構演進 …

蝦皮數據參謀:知蝦助力商家實現數據化運營的利器

在如今競爭激烈的電商市場中&#xff0c;商家需要準確的數據分析來指導他們的業務決策。Shopee電商平臺的數據分析工具——蝦皮數據參謀&#xff08;知蝦&#xff09;&#xff0c;為商家提供了豐富的數據分析服務&#xff0c;包括商品市場、銷量、價格分布、物流監控、差評監控…

ArkTS聲明式開發范式

裝飾器 用來裝飾類、結構體、方法以及變量&#xff0c;賦予其特殊的含義&#xff0c;如上述示例中 Entry 、 Component 、 State 都是裝飾器。 Component 表示這是個自定義組件&#xff1b; Entry 則表示這是個入口組件&#xff1b; State 表示組件中的狀態變量&#xff0c;…

最新版靈沐V3.3微信資源類小程序源碼支持流量主

源碼簡介 最新版靈沐V3.3微信資源類小程序源碼支持流量主&#xff0c;一套不錯的流量主變現資源下載小程序&#xff0c;它支持在微信、QQ和抖音平臺上運行。這次更新主要集中在全局UI設計的升級&#xff0c;并依然注重資源下載和激勵視頻變現的功能。另外&#xff0c;還新增了…

VR模擬仿真技術為司法科普建設注入更多的智慧和力量

虛擬現實(VR)技術已經逐漸滲透到各個領域&#xff0c;包括司法領域&#xff0c;在法學院教學中&#xff0c;VR虛擬現實和web3d開發技術的興起&#xff0c;讓司法教育也突破傳統教授式、演練式的教學模式&#xff0c;通過VR特有的沉浸式展示特點&#xff0c;實現了真實法庭效果的…

【Sorted Set】Redis常用數據類型: ZSet [使用手冊]

個人簡介&#xff1a;Java領域新星創作者&#xff1b;阿里云技術博主、星級博主、專家博主&#xff1b;正在Java學習的路上摸爬滾打&#xff0c;記錄學習的過程~ 個人主頁&#xff1a;.29.的博客 學習社區&#xff1a;進去逛一逛~ 目錄 ⑤Redis Zset 操作命令匯總1. zadd 添加或…

【考研數據結構代碼題7】求一元多項式之和

題目&#xff1a;編寫一個算法&#xff0c;求一元多項式之和 考綱&#xff1a;一元多項式的表示與相加 題型&#xff1a;代碼填空或算法設計 難度&#xff1a;★★★ 參考代碼 typedef struct node{float coef;//系數int exp;//次數struct node *next; }polynode; polynode *…

5 分鐘,開發自己的 AI 文檔助手!手把手教程

大家好&#xff0c;我是魚皮。 幾個月前&#xff0c;我自己開發過一個 AI 文檔總結助手應用。給大家簡單演示一下&#xff0c;首先我上傳了一個文檔&#xff0c;定義 1 1 等于 3&#xff1a; 然后把文檔喂給 AI 文檔總結助手&#xff0c;再向它提問&#xff0c;然后 AI 就回答…

登陸頁面模板

簡單好看的登陸頁面 vue項目代碼 可忽略js部分 先來個效果圖 <template><div class"login"><div class"content"><p >賬戶密碼登錄</p><div class"unit"><label class"label">用戶名</…