成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

領(lǐng)域驅(qū)動設(shè)計是怎樣的

這篇文章給大家介紹領(lǐng)域驅(qū)動設(shè)計是怎樣的,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創(chuàng)新新互聯(lián),憑借十年的網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗,本著真心·誠心服務(wù)的企業(yè)理念服務(wù)于成都中小企業(yè)設(shè)計網(wǎng)站有1000+案例。做網(wǎng)站建設(shè),選創(chuàng)新互聯(lián)公司。

領(lǐng)域驅(qū)動設(shè)計

領(lǐng)域驅(qū)動設(shè)計是Eric Evans 定義的一種發(fā)展理念,

  • 軟件中的復(fù)雜性:包含“某種程度上確實有用但無法解釋如何運(yùn)行但代碼”。軟件變得復(fù)雜及難以管理但一個主要原因在于,領(lǐng)域復(fù)雜性和技術(shù)復(fù)雜性混合在來一起。

復(fù)雜問題域產(chǎn)生的原因(泥球模式)

軟件復(fù)雜性:偶發(fā)性技術(shù)復(fù)雜性和領(lǐng)域邏輯復(fù)雜性。

  • 1.未使用通用語言創(chuàng)建的代碼:對于公共語言和問題域知識缺乏重視會導(dǎo)致代碼庫可用但無法揭示業(yè)務(wù)目的,這會使得代碼庫難以閱讀和維護(hù),因為分析模型與代碼模型之間的轉(zhuǎn)譯將會代價高昂且容易出錯。備注:分析模型:分析模型用于描述一個軟件應(yīng)用程序的邏輯設(shè)計與結(jié)構(gòu)。它可以由示意圖或使用UML這樣的建模語言來表示。它是軟件的一種表現(xiàn)形式,讓非技術(shù)人員能夠概念化以便理解軟件是如何構(gòu)造的。

  • 2.組織結(jié)構(gòu)的缺乏:一個系統(tǒng)的最初體現(xiàn)是快速制作且通常能獲得面面俱到的成功,但由于缺乏基于圍繞問題域模型的應(yīng)用程序設(shè)計的重視,后續(xù)的功能擴(kuò)展就會變得很棘手。

泥球模式的危害

  • 1.泥球模式將扼殺開發(fā):開發(fā)團(tuán)隊會不斷抱怨在如此一團(tuán)混亂的情況下難以開展工作。開發(fā)速度的增長水平也無法滿足業(yè)務(wù)需求。

  • 2.缺乏對問題域的關(guān)注:當(dāng)不能充分理解正在處理的業(yè)務(wù)領(lǐng)域時,軟件項目就會失敗。編碼不應(yīng)該是困難的哪一環(huán),維持一個能夠滿足業(yè)務(wù)用例的有用軟件模型才是難點所在。

什么是問題域

問題域涉及你當(dāng)前正在構(gòu)建軟件的主題領(lǐng)域。DDD強(qiáng)調(diào)的是在致力于為大型復(fù)雜業(yè)務(wù)系統(tǒng)創(chuàng)建軟件時專注領(lǐng)域要高于其他的一切的需求。

領(lǐng)域驅(qū)動設(shè)計模式如何管理復(fù)雜性

DDD 能同時應(yīng)對理解問題域以及創(chuàng)建有助于解決其內(nèi)在的問題的可維護(hù)解決方案的挑戰(zhàn)。

DDD 的戰(zhàn)略模式

  • 1.提煉問題域已揭示重要之處是什么。

    開發(fā)團(tuán)隊與領(lǐng)域?qū)<視褂梅治瞿J胶椭R處理來將大的問題域提煉成更具管理性的子域。核心領(lǐng)域是出于開發(fā)過程的產(chǎn)品背后的驅(qū)動力;它是構(gòu)造產(chǎn)品的根本原因。

    探索核心領(lǐng)域有助于團(tuán)隊理解他們制作軟件的原因以及軟件對業(yè)務(wù)達(dá)成的成就意味著什么。對業(yè)務(wù)目標(biāo)的鑒定將使得開發(fā)團(tuán)隊能夠確定系統(tǒng)的重要部分并為之投入精力。隨著業(yè)務(wù)的發(fā)展,軟件也必須相應(yīng)發(fā)展;它需要具備可修改能力,對應(yīng)用程序關(guān)鍵區(qū)域的代碼質(zhì)量進(jìn)行投入將有助于應(yīng)用程序跟上業(yè)務(wù)的變化節(jié)奏。

  • 2.創(chuàng)建一個模型以解決領(lǐng)域問題 在解空間中,會為每一個子域構(gòu)建一個軟件模型以處理領(lǐng)域問題并讓軟件與業(yè)務(wù)保持一致。該模型并非現(xiàn)實世界的模型,而更多的是構(gòu)建來滿足業(yè)務(wù)用例需求的一個抽象體,同時仍保持業(yè)務(wù)領(lǐng)域的規(guī)則和邏輯。

  • 3.使用公共語言開啟建模協(xié)作 模型使用公共語言構(gòu)建(UML),以便快捷高效地將軟件模型和概念分析模型連接在一起。編碼時的術(shù)語會被映射到公共語言中,在業(yè)務(wù)分析時隱藏的概念也會被反饋到代碼中。這正是領(lǐng)域?qū)<液烷_發(fā)團(tuán)隊能夠在協(xié)作中逐步發(fā)展模型的關(guān)鍵。

  • 4.將模型與歧義和損壞隔離 模型位于有界上下文內(nèi),定義了模型的適用性并確保保留其完整性。有界上下文用于形成一個圍繞模型的防護(hù)邊界,這是通過允許總體解決方案的不同模型在良好定義的業(yè)務(wù)上下文內(nèi)部逐步發(fā)展來達(dá)成的,這樣就不會帶來對系統(tǒng)其他的負(fù)面連鎖影響。

模型是與基礎(chǔ)架構(gòu)代碼隔離的,以避免技術(shù)與業(yè)務(wù)概念融合的偶發(fā)復(fù)雜性。通過將模型完整性與第三方代碼隔離,有界上下文還能阻止模型完整性被損壞。

  • 5.理解上下文之間的關(guān)系

DDD 理解確保團(tuán)隊和業(yè)務(wù)在獨立模型和上下文如何共同工作以便解決跨越子域的領(lǐng)域問題方面要非常清楚的需求。

DDD的戰(zhàn)術(shù)模式

DDD的戰(zhàn)術(shù)模式是一個幫助創(chuàng)建用于復(fù)雜有界上下文的有效模型的模式集合。(企業(yè)應(yīng)用架構(gòu)模式 ,設(shè)計模式)

問題空間與解空間

領(lǐng)域驅(qū)動設(shè)計的實踐與原則

  • 專注于核心領(lǐng)域

  • 通過協(xié)作進(jìn)行學(xué)習(xí)

  • 通過探索和實驗來創(chuàng)建模型

  • 通信

  • 理解模型的適用性

  • 讓模型持續(xù)發(fā)展

領(lǐng)域驅(qū)動設(shè)計的常見誤區(qū)

  • 戰(zhàn)術(shù)模式是DDD的關(guān)鍵 對于開發(fā)人員來說,在開發(fā)人員不關(guān)心或不理解的領(lǐng)域方面,發(fā)現(xiàn)在代碼中實現(xiàn)的DDD戰(zhàn)術(shù)模式遠(yuǎn)比發(fā)現(xiàn)業(yè)務(wù)用戶和團(tuán)隊之間的會話要容易多。這就是DDD會被誤認(rèn)為不過是由實體,值對象和存儲庫構(gòu)成的一種模式語言。

  • DDD是一套框架

  • DDD是銀彈

關(guān)于領(lǐng)域驅(qū)動設(shè)計是怎樣的就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享題目:領(lǐng)域驅(qū)動設(shè)計是怎樣的
鏈接URL:http://jinyejixie.com/article16/jjjpdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管做網(wǎng)站、定制網(wǎng)站網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
南江县| 长垣县| 广元市| 延庆县| 冕宁县| 西乌| 齐齐哈尔市| 通榆县| 德令哈市| 滨海县| 鹤岗市| 二连浩特市| 义马市| 石家庄市| 巴楚县| 永州市| 汽车| 惠州市| 遵化市| 中牟县| 岐山县| 揭东县| 和林格尔县| 湾仔区| 庆安县| 卫辉市| 宜章县| 柳江县| 台北市| 包头市| 临城县| 武清区| 伊宁县| 申扎县| 潮州市| 利津县| 顺昌县| 鄂伦春自治旗| 庆城县| 边坝县| 卢氏县|