<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      從0開發(fā)3D引擎(補(bǔ)充):介紹領(lǐng)域驅(qū)動設(shè)計(jì)

      我們使用領(lǐng)域驅(qū)動設(shè)計(jì)(英文縮寫為DDD)的方法來設(shè)計(jì)引擎,在引擎開發(fā)的過程中,領(lǐng)域模型會不斷地演化。
      本文介紹本系列使用的領(lǐng)域驅(qū)動設(shè)計(jì)思想的相關(guān)概念和知識點(diǎn),給出了相關(guān)的資料。

      上一篇博文

      從0開發(fā)3D引擎(七):學(xué)習(xí)Reason語言

      下一篇博文

      從0開發(fā)3D引擎(八):準(zhǔn)備“搭建引擎雛形”

      概覽

      下面的資料粗略地介紹了DDD的相關(guān)知識點(diǎn):
      領(lǐng)域驅(qū)動設(shè)計(jì)學(xué)習(xí)輸出
      領(lǐng)域驅(qū)動設(shè)計(jì)(DDD)部分核心概念的個人理解

      系統(tǒng)學(xué)習(xí)資料

      相關(guān)資料為:
      DDD理論學(xué)習(xí)系列

      為什么用DDD

      參考領(lǐng)域驅(qū)動設(shè)計(jì)學(xué)習(xí)輸出:

      • DDD 幫助解決微服務(wù)拆分困境
      • DDD 幫助應(yīng)對系統(tǒng)復(fù)雜性
      • DDD 幫助統(tǒng)一語言

      相關(guān)概念

      領(lǐng)域模型

      領(lǐng)域模型包括領(lǐng)域服務(wù)、實(shí)體、值對象

      相關(guān)資料為:
      領(lǐng)域驅(qū)動設(shè)計(jì)之實(shí)體、值對象、領(lǐng)域服務(wù)
      DDD 領(lǐng)域驅(qū)動設(shè)計(jì)學(xué)習(xí)(五)- 實(shí)體/值對象/領(lǐng)域服務(wù)

      領(lǐng)域模型的分類

      可分為四類:

      • 失血模型
      • 貧血模型
      • 充血模型
      • 脹血模型

      相關(guān)資料為:
      關(guān)于領(lǐng)域模型(貧血模型,充血模型)

      架構(gòu)

      DDD主要有分層、六邊形、洋蔥這幾種架構(gòu)。其中,六邊形和洋蔥架構(gòu)都運(yùn)用了依賴倒置,比較類似。

      架構(gòu)資料:
      DDD 領(lǐng)域驅(qū)動設(shè)計(jì)學(xué)習(xí)(四)- 架構(gòu)(分層/六邊形/RESTful)

      分層架構(gòu)資料:
      DDD分層架構(gòu)的三種模式

      洋蔥架構(gòu)資料:
      The Onion Architecture

      數(shù)據(jù)

      相關(guān)概念參考領(lǐng)域驅(qū)動設(shè)計(jì)系列(2)淺析VO、DTO、DO、PO的概念、區(qū)別和用處

        VO(View Object):視圖對象,用于展示層,它的作用是把某個指定頁面(或組件)的所有數(shù)據(jù)封裝起來。
        DTO(Data Transfer Object):數(shù)據(jù)傳輸對象,這個概念來源于J2EE的設(shè)計(jì)模式,原來的目的是為了EJB的分布式應(yīng)用提供粗粒度的數(shù)據(jù)實(shí)體,以減少分布式調(diào)用的次數(shù),從而提高分布式調(diào)用的性能和降低網(wǎng)絡(luò)負(fù)載,但在這里,我泛指用于展示層與服務(wù)層之間的數(shù)據(jù)傳輸對象。
        DO(Domain Object):領(lǐng)域?qū)ο螅褪菑默F(xiàn)實(shí)世界中抽象出來的有形或無形的業(yè)務(wù)實(shí)體。
        PO(Persistent Object):持久化對象,它跟持久層(通常是關(guān)系型數(shù)據(jù)庫)的數(shù)據(jù)結(jié)構(gòu)形成一一對應(yīng)的映射關(guān)系,如果持久層是關(guān)系型數(shù)據(jù)庫,那么,數(shù)據(jù)表中的每個字段(或若干個)就對應(yīng)PO的一個(或若干個)屬性。

      相關(guān)資料為:
      領(lǐng)域驅(qū)動設(shè)計(jì)系列(2)淺析VO、DTO、DO、PO的概念、區(qū)別和用處

        

      通用語言,又叫統(tǒng)一語言

      相關(guān)資料為:
      DDD 領(lǐng)域驅(qū)動設(shè)計(jì)學(xué)習(xí)(一)- 領(lǐng)域模型和統(tǒng)一語言
      重讀領(lǐng)域驅(qū)動設(shè)計(jì)——如何說好一門通用語言

      事件風(fēng)暴

      我們使用事件風(fēng)暴作為DDD的開始,得到通用語言。

      相關(guān)資料為:
      領(lǐng)域驅(qū)動設(shè)計(jì): 服務(wù)邊界劃分
      使用事件風(fēng)暴探索業(yè)務(wù)全景

      領(lǐng)域和子域

      相關(guān)資料為:
      DDD理論學(xué)習(xí)系列(2)-- 領(lǐng)域

      限界上下文

      相關(guān)資料為:
      DDD理論學(xué)習(xí)系列(3)-- 限界上下文

      上下文映射圖

      參考DDD—上下文映射圖,上下文之間有下面的關(guān)系:

      • 合作關(guān)系(PS):如果兩個限界上下文的團(tuán)隊(duì)要么一起成功,要么一起失敗,此時他們需要建立起一種合作關(guān)系。他們需要協(xié)調(diào)開發(fā)計(jì)劃和集成管理。
      • 共享內(nèi)核(SK):對模型和代碼的共享將產(chǎn)生一種緊密的依賴性,對于設(shè)計(jì)來說,這種依賴性可好可壞。我們需要為共享的部分模型指定一個顯式的邊界,并保持共享內(nèi)核的小型化。共享內(nèi)核具有特殊的狀態(tài),在沒有與另一個團(tuán)隊(duì)協(xié)商的情況下,這種狀態(tài)是不能改變的。我們應(yīng)該引入一種持續(xù)集成過程來保證共享內(nèi)核與通用語言的一致性。
      • 客戶方——供應(yīng)方開發(fā)(CSD):當(dāng)兩個團(tuán)隊(duì)處于一種上游-下游關(guān)系時,上游團(tuán)隊(duì)可能獨(dú)立于下游團(tuán)隊(duì)完成開發(fā),此時下游團(tuán)隊(duì)開發(fā)可能會受到影響。因此,在上游團(tuán)隊(duì)的計(jì)劃中,我們應(yīng)該顧及到下游團(tuán)隊(duì)的需求。
      • 遵奉者(C):在存在上游-下游關(guān)系時,如果上游團(tuán)隊(duì)已經(jīng)沒有動力提供下游團(tuán)隊(duì)之所需,下游團(tuán)隊(duì)便孤軍無助了。只能盲目地使用上游團(tuán)隊(duì)的模型。
      • 防腐層(ACL):在集成兩個良好的限界上下文時,翻譯層可能很簡單,甚至可以很優(yōu)雅地實(shí)現(xiàn)。但是,當(dāng)共享內(nèi)核、合作關(guān)系或客戶方-供應(yīng)方關(guān)系無法順利實(shí)現(xiàn)時,此時的翻譯將變得復(fù)雜。對于下游客戶來說,你需要根據(jù)自己的領(lǐng)域模型創(chuàng)建一個單獨(dú)的層,該層作為上游系統(tǒng)的委派向你的系統(tǒng)提供功能。防腐層通過已有的接口與其他系統(tǒng)交互,而其他系統(tǒng)只需要做很小的修改,甚至無須修改。在防腐層內(nèi)部,它在你自己的模型和他方模型之間進(jìn)行翻譯轉(zhuǎn)化。
      • 開放主機(jī)服務(wù)(OHS):定義一種協(xié)議,讓你的子系統(tǒng)通過該協(xié)議來訪問你的服務(wù)。你需要將該協(xié)議公開,這樣任何與你集成的人都可以使用該協(xié)議。在有新的集成需求時,你應(yīng)該對協(xié)議進(jìn)行改進(jìn)或者擴(kuò)展。對于一些特殊的需求,你可以采用一次性的翻譯予以處理,這樣可以保持協(xié)議的簡單性和連貫性。
      • 發(fā)布語言(PL):在兩個限界上下文之間翻譯模型需要一種公用的語言。此時你應(yīng)該使用一種發(fā)布出來的共享語言來完成集成交流。發(fā)布語言通常與開放主機(jī)一起使用。
      • 另謀他路(S):在確定需求時,我們應(yīng)該做到堅(jiān)持到底。如果兩套功能沒有顯著的關(guān)系,那么它們也可以被完全解耦的。聲明兩個限界上下文之間不存在任何關(guān)系,這樣使得開發(fā)者去尋找簡單的、專門的方法來解決問題。

      相關(guān)資料為:
      看看上下文映射的清晰視圖
      DDD—上下文映射圖

      聚合

      聚合Aggregate就是一組相關(guān)對象的集合,我們把它作為數(shù)據(jù)修改和訪問的單元。一個聚合包含聚合根、實(shí)體和值對象。

      相關(guān)資料為:
      領(lǐng)域模型:聚合、聚合根
      領(lǐng)域驅(qū)動設(shè)計(jì)-聚合

      在UML中,需要區(qū)分聚合關(guān)系和組合關(guān)系,詳見:
      淺談UML中的聚合與組合

      服務(wù)

      服務(wù)包括應(yīng)用服務(wù)、領(lǐng)域服務(wù)、基礎(chǔ)服務(wù)。

      基礎(chǔ)服務(wù)是指基礎(chǔ)設(shè)施中提供的服務(wù),通常用于操作外部,如發(fā)送email等。

      應(yīng)用服務(wù)和領(lǐng)域服務(wù)的相關(guān)資料為:
      如何分辨應(yīng)用服務(wù)與領(lǐng)域服務(wù)
      領(lǐng)域驅(qū)動設(shè)計(jì)DDD之領(lǐng)域服務(wù)

      倉庫

      我們使用倉庫來操作PO。

      相關(guān)資料為:
      DDD理論學(xué)習(xí)系列(12)-- 倉儲

      DDD應(yīng)用示例

      相關(guān)示例為:
      領(lǐng)域驅(qū)動設(shè)計(jì)在互聯(lián)網(wǎng)業(yè)務(wù)開發(fā)中的實(shí)踐
      基于 DDD 的微服務(wù)設(shè)計(jì)和開發(fā)實(shí)戰(zhàn)

      posted @ 2020-03-04 12:43  楊元超  閱讀(666)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 五月天国产成人av免费观看| 少妇人妻偷人精品无码视频新浪| 熟女女同亚洲女同中文字幕 | 日韩一区二区三区av在线| 99久久成人国产精品免费| 精品中文人妻在线不卡| 一亚洲一区二区中文字幕| 日日碰狠狠添天天爽五月婷| 97se亚洲国产综合自在线观看| 92自拍视频爽啪在线观看| 起碰免费公开97在线视频| 无码人妻精品一区二区三区夜夜嗨| 亚洲丰满熟女一区二区蜜桃| 日韩精品 在线一区二区| 午夜国产小视频| 大肉大捧一进一出好爽视频mba| 色一伦一情一区二区三区| 国产精品无码免费播放| 亚洲综合一区无码精品| 欧洲一区二区中文字幕| 99精品国产丝袜在线拍国语| 黑人巨大粗物挺进了少妇| 噜噜综合亚洲av中文无码| 大胸美女被吃奶爽死视频| 丰满熟妇乱又伦在线无码视频| 激情五月开心婷婷深爱| 蚌埠市| 天天燥日日燥| 人妻影音先锋啪啪AV资源| 欧美白妞大战非洲大炮| 无码精品一区二区免费AV| 97欧美精品系列一区二区| 乱色熟女综合一区二区三区| 亚洲精品人妻中文字幕| 亚洲成人av在线资源| 电白县| 成人国产乱对白在线观看| 一个人在看www免费| 中文字幕亚洲人妻一区| 九色综合久99久久精品| 精品黄色av一区二区三区|