自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

領(lǐng)域、子域、核心域、通用域以及支撐域,是不是讓人一頭霧水,完全分不清誰是誰?

開發(fā) 架構(gòu)
在微服務(wù)設(shè)計和開發(fā)過程中,不一定會用到所有這些名詞,但它們有助于理解 DDD 的核心設(shè)計思想和理念。而這些思想和理念,在 IT 戰(zhàn)略設(shè)計、業(yè)務(wù)建模和微服務(wù)設(shè)計中都具有借鑒意義。

DDD 的知識體系包含眾多名詞,如領(lǐng)域、子域、核心域、通用域、支撐域、限界上下文、聚合、聚合根、實體、值對象等。這些都是關(guān)鍵概念,但由于比較晦澀難懂,可能會讓人們在還沒開始實踐 DDD 時就望而卻步。因此,在基礎(chǔ)篇中,我們要做好實踐前的準備工作。

需要注意的是,在微服務(wù)設(shè)計和開發(fā)過程中,不一定會用到所有這些名詞,但它們有助于理解 DDD 的核心設(shè)計思想和理念。而這些思想和理念,在 IT 戰(zhàn)略設(shè)計、業(yè)務(wù)建模和微服務(wù)設(shè)計中都具有借鑒意義。

從這部分內(nèi)容開始,我們將圍繞這些 DDD 關(guān)鍵概念進行講解,幫助大家理清它們與微服務(wù)的關(guān)系,以及它們在微服務(wù)設(shè)計中的作用。今天重點了解領(lǐng)域、子域、核心域、通用域和支撐域等重要概念。

如何理解領(lǐng)域和子域?

首先看領(lǐng)域的定義。漢語詞典中解釋領(lǐng)域是從事一種專門活動或事業(yè)的范圍、部類或部門,百度百科則解釋為一種特定的范圍或區(qū)域。這兩個解釋的共同點是 “范圍”,這也是 DDD 在設(shè)計中強調(diào)邊界的原因。

在研究和解決業(yè)務(wù)問題時,DDD 會按照一定規(guī)則對業(yè)務(wù)領(lǐng)域進行細分。當細分到一定程度后,就會在特定邊界內(nèi)建立領(lǐng)域模型,并用代碼實現(xiàn)該模型來解決業(yè)務(wù)問題。簡單來說,DDD 的領(lǐng)域就是在這個邊界內(nèi)要解決的業(yè)務(wù)問題域。

由于領(lǐng)域是用來限定業(yè)務(wù)邊界和范圍的,所以它有大小之分,領(lǐng)域越大,業(yè)務(wù)范圍就越大。

領(lǐng)域可以進一步劃分為子域,劃分出來的多個子域分別對應(yīng)更小的問題域或更小的業(yè)務(wù)范圍。

DDD 是處理高度復雜領(lǐng)域的設(shè)計思想,它旨在分離技術(shù)實現(xiàn)的復雜度。面對復雜的業(yè)務(wù)領(lǐng)域,DDD 使業(yè)務(wù)變得簡單且易于理解、技術(shù)實現(xiàn)更容易的方法與自然科學研究類似。在自然科學研究中,遇到復雜問題時,通常會將問題逐步細分,然后針對細分后的問題域逐個深入研究,建立子域的知識體系。當所有子域的研究完成后,就形成了整個領(lǐng)域的完整知識體系。


圖片

我們來看上面的圖,圖中的例子是關(guān)于如何為桃樹構(gòu)建完整的生物學知識體系,初中生物課就提到了這種研究方法,其研究過程如下:

一、確定研究對象(研究領(lǐng)域)研究對象是一棵桃樹,這相當于 DDD 中的研究領(lǐng)域。

二、對研究對象進行細分(劃分子域)將桃樹細分為器官,器官又分為營養(yǎng)器官(根、莖、葉)和生殖器官(花、果實、種子)。桃樹整體的知識體系就是要研究的問題域(對應(yīng) DDD 的領(lǐng)域),而根、莖、葉、花、果實和種子這些器官就是細分后的問題子域(類似于 DDD 將領(lǐng)域劃分為子域的過程)。

三、進一步細分器官(子域再細分)例如把葉子這個器官細分為保護組織、營養(yǎng)組織和輸導組織等,這相當于 DDD 中將子域進一步細分的過程。

四、細分組織為細胞(確定最小單元)將組織細分為細胞,細胞是研究的最小單元,細胞之間的細胞壁確定了研究的最小邊界。

并且,細胞核、線粒體、細胞膜等物質(zhì)構(gòu)成細胞,這些物質(zhì)協(xié)同作用使細胞具備特定生物功能。這里可以把細胞看作 DDD 中的聚合,細胞內(nèi)的這些物質(zhì)看作聚合中的聚合根、實體和值對象等,在聚合內(nèi)這些實體協(xié)作完成特定業(yè)務(wù)功能,這類似 DDD 設(shè)計中確定微服務(wù)內(nèi)功能要素和邊界的過程。

總結(jié)來說,每個細分的領(lǐng)域都有一個知識體系,即 DDD 的領(lǐng)域模型。當完成所有子域的研究后,就能建立全域的知識體系和全域的領(lǐng)域模型。

以上用自然科學研究方法說明了通過將領(lǐng)域細分為子域可以降低研究復雜度,接下來將切換到保險行業(yè)(作者所從事行業(yè))來對比驗證二者細分過程是否一致。

保險是一個較為龐大的領(lǐng)域。在早期,保險核心系統(tǒng)采用單體系統(tǒng)來實現(xiàn)所有功能。然而,隨著保險業(yè)務(wù)的發(fā)展,單體系統(tǒng)逐漸無法滿足需求,于是保險公司開始進行中臺轉(zhuǎn)型,采用分布式微服務(wù)架構(gòu)來取代單體系統(tǒng)。在分布式微服務(wù)架構(gòu)下,需要劃分業(yè)務(wù)領(lǐng)域邊界、建立領(lǐng)域模型并實現(xiàn)微服務(wù)落地。

為了對保險領(lǐng)域進行建模和建設(shè)微服務(wù),可以依據(jù)業(yè)務(wù)關(guān)聯(lián)程度以及流程邊界,把保險領(lǐng)域細分為承保、收付、再保、理賠等子域。其中,承保子域還能夠進一步細分為投保、壽險的保全、財險的批改等子子域。

在投保這個限界上下文當中,可以構(gòu)建投保的領(lǐng)域模型,而這個投保的領(lǐng)域模型最終會映射到系統(tǒng)中,形成投保微服務(wù)。這就是保險領(lǐng)域細分和微服務(wù)建設(shè)的流程。

或許你會覺得,如果你不是保險行業(yè)的從業(yè)者,很難理解這個過程。但實際上,盡管不同行業(yè)的業(yè)務(wù)模型可能各異,然而領(lǐng)域建模和微服務(wù)建設(shè)的流程與方法大體上是相似的。其核心要點在于逐步分解問題域,從而降低業(yè)務(wù)理解和系統(tǒng)實現(xiàn)的難度。

如何理解核心域、通用域和支撐域?

在領(lǐng)域持續(xù)細分的進程中,領(lǐng)域會分化出各式各樣的子域,而依據(jù)子域自身的重要性以及功能特性,可將其歸為三大類別:核心域、通用域和支撐域。

核心域堪稱重中之重,它是決定產(chǎn)品及公司核心競爭力的關(guān)鍵所在,承載著業(yè)務(wù)成功的關(guān)鍵要素,凝聚著公司獨一無二的核心競爭力,是企業(yè)脫穎而出的制勝法寶。

通用域,所涵蓋的是那些缺乏鮮明個性化訴求,卻能被多個子域頻繁共用的通用功能子域,它為不同子域提供標準化、通用性的服務(wù),使得整體業(yè)務(wù)流程更為順暢高效。

支撐域同樣不可或缺,它屬于一種功能性子域,雖然不具備決定產(chǎn)品和公司核心競爭力的關(guān)鍵功能,也并非通用功能,但卻是維持業(yè)務(wù)正常運轉(zhuǎn)必需的基礎(chǔ)支撐部分。

對比這三類子域,核心域的地位無疑最為突出,后續(xù)在闡述相關(guān)目的時,還會以核心域為典型進行詳盡剖析。要是將通用域和支撐域?qū)?yīng)到企業(yè)系統(tǒng)中來舉例說明的話,通用域就好比企業(yè)日常運營中所需用到的通用系統(tǒng),像認證、權(quán)限管理這類應(yīng)用,市面上隨處可見,幾乎不受企業(yè)特定屬性的限制,購買后稍作調(diào)整甚至無需定制化就能直接投入使用。而支撐域則帶有鮮明的企業(yè)個性特征,不具備廣泛通用性,諸如數(shù)據(jù)代碼類的數(shù)據(jù)字典等系統(tǒng),專為企業(yè)自身特定的數(shù)據(jù)管理需求而打造。

那為什么要劃分核心域、通用域和支撐域,主要目的是什么呢?

咱們還是以上圖中的桃樹為例。之前,我們把桃樹細分成了根、莖、葉、花、果實和種子這六個子域,那桃樹到底有沒有核心域呢?要是有的話,究竟哪個才是呢?

要知道,不同的人看待桃樹的視角各異。假設(shè)這棵桃樹長在公園里,在園丁的眼中,他們盼著陽春三月能呈現(xiàn) “人面桃花相映紅” 的美景,此時,花就成了桃樹的核心域??梢翘覙湓诠麍@里,果農(nóng)心心念念的是在豐收季收獲沉甸甸、碩果累累的桃子,這樣一來,果實便當之無愧地成為桃樹的核心域。

很明顯,處于不同場景,人們對桃樹核心域的理解截然不同,相應(yīng)地,對桃樹的照料方式也大不一樣。園丁會著重關(guān)注桃樹花期所需的營養(yǎng),果農(nóng)卻更聚焦于桃樹落果期的營養(yǎng)補給,有時為了保障果實有充足的養(yǎng)分,甚至會剪掉那些瘋長的莖和葉,而這些莖和葉就類似于通用域或支撐域。

同理,公司在進行 IT 系統(tǒng)建設(shè)的時候,鑒于預(yù)算和資源往往有限,對于不同類型的子域,自然得采取不同的關(guān)注度與資源投入策略,畢竟要懂得好鋼用在刀刃上。

許多公司的業(yè)務(wù)乍一看頗為相似,實則商業(yè)模式與戰(zhàn)略方向存在天壤之別,這就使得公司的關(guān)注點有所不同,進而在劃分核心域、通用域和支撐域時,結(jié)果也會大相徑庭。

就拿電商平臺來說,淘寶、天貓、京東和蘇寧易購同屬電商范疇,可商業(yè)模式卻各有千秋。淘寶是典型的 C2C 網(wǎng)站,也就是個人賣家面向個人買家;天貓、京東以及蘇寧易購屬于 B2C 網(wǎng)站,即公司賣家對接個人買家。即便蘇寧易購與京東都采用 B2C 模式,二者的商業(yè)模式也不盡相同,蘇寧易購是由傳統(tǒng)線下賣場華麗轉(zhuǎn)身成為電商,京東則是直營結(jié)合部分平臺的運營模式。

正是由于商業(yè)模式的差異,才導致核心域的劃分結(jié)果千差萬別。有些公司的核心域或許聚焦于客戶服務(wù),有些可能側(cè)重于產(chǎn)品質(zhì)量,還有些可能鎖定在物流環(huán)節(jié)。所以,公司在進行領(lǐng)域細分、構(gòu)建領(lǐng)域模型以及推進系統(tǒng)建設(shè)時,務(wù)必要緊密結(jié)合公司的戰(zhàn)略重點與商業(yè)模式,精準找出核心域,并且著重予以關(guān)注。

倘若你的公司恰好有意向轉(zhuǎn)型微服務(wù)架構(gòu),我在此建議你和你的技術(shù)團隊,務(wù)必將核心域的建設(shè)擺在首位,最好能具備絕對的掌控能力與自主研發(fā)能力。要是資源實在緊缺,不妨在支撐域或者通用域上動動腦筋,暫時采用外購的方式也不失為一種可行之舉。

領(lǐng)域的核心理念在于把問題域?qū)訉硬鸾?,一步一步細分下去,以此降低業(yè)務(wù)理解方面的難度,同時也讓系統(tǒng)實現(xiàn)起來更加簡便易行。借助這種領(lǐng)域細分的手段,能夠逐步收窄微服務(wù)需要應(yīng)對的問題范疇,進而構(gòu)建出契合實際需求的領(lǐng)域模型。而一旦將領(lǐng)域模型投射到實際系統(tǒng)當中,就轉(zhuǎn)化成了微服務(wù)。

再看核心域、支撐域以及通用域,它們存在的主要目的是:利用領(lǐng)域劃分這一方式,清晰界定出不同子域在公司內(nèi)部所具備的各異功能特性以及重要程度。如此一來,公司便能依據(jù)這些差異,針對各個子域制定不一樣的資源投入計劃與建設(shè)方案,在關(guān)注程度上自然也會有所區(qū)分。

責任編輯:武曉燕 來源: 二進制跳動
相關(guān)推薦

2021-01-08 13:15:30

AMD版本NVIDIA

2010-06-08 11:25:01

HTTP協(xié)議通用頭域

2022-05-23 09:00:00

前端監(jiān)控搭建

2022-05-24 07:57:06

前端監(jiān)控系統(tǒng)

2010-02-02 14:37:57

以太網(wǎng)交換技術(shù)

2010-02-02 09:38:29

Visual Stud

2011-07-15 10:43:06

AD域控制器

2021-04-27 15:20:41

人工智能機器學習技術(shù)

2011-03-25 10:38:49

邏輯域來賓域

2014-09-22 16:03:44

沖突域廣播域

2023-01-03 10:06:39

領(lǐng)域驅(qū)動DDD哲學

2011-09-06 09:56:24

JavaScript

2011-07-15 11:11:13

AD域控制器

2019-03-13 08:00:00

JavaScript作用域前端

2021-03-09 08:35:51

JSS作用域前端

2011-07-27 09:13:06

2021-05-09 21:50:48

項目實踐上下文

2019-01-08 14:02:40

游戲本顯卡

2011-07-18 11:32:31

子域域控制器

2011-09-19 16:11:55

沖突域廣播域局域網(wǎng)
點贊
收藏

51CTO技術(shù)棧公眾號