日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

DDD理论学习系列(3)-- 限界上下文

發(fā)布時(shí)間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DDD理论学习系列(3)-- 限界上下文 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 引言

限界上下文可以拆分為兩個(gè)詞,限界和上下文。
限界:是指一個(gè)界限,具體的某一個(gè)范圍。
上下文:個(gè)人理解就是語(yǔ)境。

比如我們常說(shuō)的段子:

“我想靜靜。”
這個(gè)句子一般是想表達(dá)“我想靜一靜”的意思。但是我們卻把它玩笑成“靜靜是誰(shuí)?”。
可見(jiàn)上下文語(yǔ)境很重要。

這個(gè)例子只是個(gè)開(kāi)胃菜,我們接著往下看。

2. 案例分析

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

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

根據(jù)上一節(jié)對(duì)領(lǐng)域的剖析,我們把案例主要拆分成幾個(gè)子域,其中銷(xiāo)售子域是核心域,商品子域和物流子域?yàn)橹巫佑颉T谶@三個(gè)子域中,都要和商品打交道。如果把商品抽象為Product對(duì)象的話(huà),按我們一般的常規(guī)思路(拋開(kāi)子域的劃分)來(lái)說(shuō),不管是商品銷(xiāo)售還是發(fā)貨,我們都可以共用同一個(gè)Product對(duì)象。
但在DDD中,在商品子域和銷(xiāo)售子域中,可以共享這個(gè)Product對(duì)象,但在物流子域,就有點(diǎn)大材小用。為什么呢?因?yàn)楫吘刮锪髯佑蜿P(guān)注的是商品的發(fā)貨處理和物流跟蹤。針對(duì)發(fā)貨流程而言,我只關(guān)心商品的數(shù)量、大小、重量等規(guī)格,而不必了解商品的價(jià)格等其他信息。所以說(shuō)物流子域應(yīng)該關(guān)注的是貨物的發(fā)貨處理而不是商品。
那為什么我們之前的開(kāi)發(fā)思路會(huì)共用同一個(gè)Product對(duì)象呢?
答案很簡(jiǎn)單,沒(méi)有進(jìn)行領(lǐng)域的劃分。把整個(gè)項(xiàng)目一概而論,統(tǒng)一建模導(dǎo)致的結(jié)果。
在DDD的思想下,當(dāng)劃分子域之后,每個(gè)子域都對(duì)應(yīng)有各自的上下文。在銷(xiāo)售子域和商品子域所在的上下文語(yǔ)境中,商品就是商品,無(wú)二義性。在物流子域的上下文語(yǔ)境中,我們也可以說(shuō)商品的發(fā)貨處理,但這時(shí)的商品就特指貨物了。確定了真實(shí)面目之后,我想我們也會(huì)不由自主的抽象一個(gè)新的Cargo對(duì)象來(lái)處理物流相關(guān)的業(yè)務(wù)。這也是DDD帶來(lái)的好處,讓我們更清晰的建模。

3. 限界上下文的命名

限界上下文只是一個(gè)統(tǒng)一的命名,在我們劃分子域后,每個(gè)子域一般對(duì)應(yīng)一個(gè)上下文,也可以對(duì)應(yīng)多個(gè)上下文。但如果子域?qū)?yīng)多個(gè)上下文的時(shí)候,就要考慮一下是不是子域能否繼續(xù)劃分。
命名方式很簡(jiǎn)單,領(lǐng)域名+上下文。
比如我們的銷(xiāo)售子域?qū)?yīng)銷(xiāo)售上下文,物流子域?qū)?yīng)物流上下文。

4. 總結(jié)

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

相關(guān)文章

  • DDD理論學(xué)習(xí)系列(1)-- 通用語(yǔ)言

  • DDD領(lǐng)域驅(qū)動(dòng)之干貨 (一)

  • DDD理論學(xué)習(xí)系列(2)-- 領(lǐng)域

  • 從事件和DDD入手來(lái)構(gòu)建微服務(wù)

  • WeText項(xiàng)目:一個(gè)基于.NET實(shí)現(xiàn)的DDD、CQRS與微服務(wù)架構(gòu)的演示案例

  • 【DDD/CQRS/微服務(wù)架構(gòu)案例】在Ubuntu 14.04.4 LTS中運(yùn)行WeText項(xiàng)目的服務(wù)端

原文地址:http://www.cnblogs.com/sheng-jie/p/6881316.html


.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺(tái)或掃描二維碼關(guān)注

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的DDD理论学习系列(3)-- 限界上下文的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。