1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        好的領(lǐng)域模型應(yīng)該是什么樣子?

        共 975字,需瀏覽 2分鐘

         ·

        2022-12-18 09:34

        ?

        好的領(lǐng)域模型應(yīng)該長什么樣子?

        DDD說,領(lǐng)域模型應(yīng)該是可以準(zhǔn)確表達(dá)業(yè)務(wù)需求的模型。

        模型和領(lǐng)域模型是兩個概念,模型可以是數(shù)據(jù)模型或服務(wù)模型,領(lǐng)域模型是以領(lǐng)域為核心的模型,是對領(lǐng)域知識嚴(yán)格組織和抽象得來的。

        ?

        那,應(yīng)該如何描述領(lǐng)域模型呢?

        是UML圖?還是編程代碼?還是一個完整的書面文檔?

        這些僅僅是表達(dá)領(lǐng)域模型的一種載體,如果UML圖、編程代碼、書面文檔不能傳遞出領(lǐng)域知識,那就不是領(lǐng)域模型。

        一個好的領(lǐng)域模型應(yīng)該包含如下特征:

        1.  用統(tǒng)一語言來表達(dá)領(lǐng)域中的概念;

        2.  涵蓋了業(yè)務(wù)活動和規(guī)則等領(lǐng)域知識;

        3.  對領(lǐng)域內(nèi)的知識做了適當(dāng)?shù)奶釤捄统橄螅?/p>

        4.  建立了一個迭代演進(jìn)的過程;

        5.  有助于業(yè)務(wù)人員和技術(shù)人員的交流;


        所以,我們忘記載體,關(guān)注于他如何傳遞領(lǐng)域知識,并且有助于技術(shù)人員和業(yè)務(wù)人員的交流,那他就可以稱為領(lǐng)域模型。

        模型設(shè)計和模型實現(xiàn)其實是兩件事情,就像在公司里面老板做戰(zhàn)略取舍,基層做戰(zhàn)術(shù)落地,在領(lǐng)域模型的設(shè)計和實現(xiàn)上應(yīng)該也分開。

        模型是作基本職責(zé)的分配,程序是模型的具體表達(dá)。

        Eric Evans說:將分析、建模、設(shè)計、編程工作過度分離對模型驅(qū)動設(shè)計會產(chǎn)生不良影響。

        所以要將分析、設(shè)計、實現(xiàn)統(tǒng)一到模型設(shè)計中考量。

        在分析階段,業(yè)務(wù)人員和技術(shù)人員在一起工作,建立準(zhǔn)確和簡潔的分析模型,直觀傳遞不同角色對業(yè)務(wù)知識的理解。

        在設(shè)計階段,基于分析模型對模型中的設(shè)計進(jìn)行改進(jìn),考慮職責(zé)的合理分配和協(xié)作,建立有指導(dǎo)意義的設(shè)計模型。

        在實現(xiàn)階段,代碼忠實反映模型的設(shè)計,反映出模型中的領(lǐng)域和知識。

        戰(zhàn)略設(shè)計環(huán)節(jié),識別出業(yè)務(wù)場景下,系統(tǒng)的限界上下文。

        在限界上下文中,提取語義相關(guān)和功能相關(guān)的用例,作為分析建模的重要輸入。

        戰(zhàn)術(shù)設(shè)計環(huán)節(jié),通過用戶故事迭代,逐步對比模型進(jìn)行細(xì)化,引入設(shè)計模式,結(jié)合TDD開發(fā)等進(jìn)行編碼實現(xiàn)。

        領(lǐng)域服務(wù)應(yīng)該是一系列活動集合,是領(lǐng)域服務(wù)下的關(guān)鍵環(huán)節(jié)。

        在每個關(guān)鍵環(huán)節(jié),對于不同用戶身份,應(yīng)該有規(guī)則映射處理細(xì)節(jié),這部分規(guī)則可以有機(jī)的、結(jié)構(gòu)化的可視化出來,便于溝通。

        領(lǐng)域服務(wù)應(yīng)該和領(lǐng)域掛鉤,指導(dǎo)每個關(guān)鍵領(lǐng)域下應(yīng)該有的活動有哪些。

        要想實現(xiàn)這些活動集的復(fù)用,就需要明確輸入和輸出,看得清輸入、輸出、關(guān)鍵流程才敢去復(fù)用。

        總結(jié)來說,領(lǐng)域、領(lǐng)域服務(wù)、領(lǐng)域節(jié)點、業(yè)務(wù)身份的關(guān)鍵規(guī)則、為領(lǐng)域服務(wù)復(fù)用的輸入和輸出,都是可以被可視化和配置化起來的。

        瀏覽 77
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费看成人视频 | 91激情小说 | 青青草免费在线观看 | 色戒免费观看完整版高清在线观看中文 | 坤坤插进桃子里 | 草草久久久亚洲黑人AV成人片 | 狠狠撸视频 | 无码成人免费 | 国产又粗又硬又猛的免费视频 | 亚洲色情A片 |