日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

DDD、SOA、微服務和微內核,看到經常有人把這幾個概念拿出來一起講。事實上,DDD和其他三個不是一個維度的東西。

DDD其實特別好理解,DDD就是領域來驅動設計嘛,是一種設計思想。很容易又和OOA、OOD和OOP來比較了。這個回頭再說。

SOA、微服務和微內核都是架構風格,DDD里能和他們三個放在一起比較的是四層架構和六邊形架構。

四層架構

四層架構長這樣:

我們聊聊DDD、SOA、微服務和微內核圖片

分為用戶接口層、應用層、領域層和基礎層,四層架構目的是為了解耦,下層不依賴上層,從依賴關系上講,四層架構的箭頭是反過來的。

目前這個架構,在現代系統中,通常用作項目工程模塊的設計。就是說更傳統的MVC逐漸被淘汰,目前主流就是這種四層架構。有的項目工程會先用限界上下文劃分子域,再用四層架構。然后代碼結構長這樣:

├─interfaces   API接口層
│   ├─dto     視圖模型,數據模型定義 vo/dto(大多數情況是一樣的)
│   └─controller   控制器,對外提供(Restful)接口
│ 
├─Application   應用層
│   ├─service  應用服務,非核心服務 
│   └─***      others
│ 
├─domAIn   領域層
│   ├─entity        領域實體、聚合根,充血的領域模型 
│   ├─valueobject        領域值對象       
│   └─service  領域服務類,一些不能歸屬某個具體領域模型的行為
│ 
├─infrastructure  基礎設施層
│   ├─po           持久化對象 
│   ├─repository 倉儲類,持久化接口&實現,可與ORM映射框架結合
│   ├─dao         數據訪問對象 
│   ├─client       feign等調用客戶端 
└─  └─factory    工廠類,負責復雜領域對象創建,封裝細節

底層實體采用充血模型,有一些聚合,形成聚合根。與存儲層的交互封裝在倉庫中,用DDD工廠來管理倉庫。上層會將實體轉換成貧血模型再暴露出去。你們項目的結構,架構師是不是這樣定義的?

六邊形架構

六邊形架構很多文章作者把這個架構分成幾層,這些都是加上了作者個人的理解。實際上六邊形架構又叫洋蔥形架構很簡單,就是個端口適配器模式。外六邊形是技術域,內六邊形是業務域。這個常用于一些整體架構中。比如說基于一些基礎組件做二次開發。真正的業務實現是組件實現的,有一些專門的維護人員。但是團隊中往往會有更多成員在做封裝接口暴露給公司內的用戶,做高可用或者自動化運維這些通常所說的外層。這個外層就是六邊形架構里技術域解決的問題。

我們聊聊DDD、SOA、微服務和微內核圖片

SOA和微服務架構

SOA的出現是為了解決功能復用的問題,將一些共通的模塊提取出來做成服務。這個我之前在開發中發現不好用,僅次于單體應用時各個模塊引入一個common的jar包。因為這些共通的模塊很可能適應不了各方面的需求,上層的需求總有一些差異。這樣的情況下,這個共通模塊就不太好維護了。

服務化的概念使得上世紀就已經產生的DDD得到了大家的關注。因為DDD解決了怎么服務化的問題,就是劃分領域。微服務就是服務化之后劃分粒度的問題了。

微內核架構

微內核架構又叫插件化架構,包含兩類組件:核心系統(core system)和插件模塊(plug-in modules)。核心系統負責和業務無關的通用功能,例如模塊加載、模塊間通信等;插件模塊負責實現具體的業務邏輯,例如“學生信息管理”系統中的“手機號注冊”功能。

核心系統(Core System)功能一般比較穩定,不會由于業務擴展而不斷修改,插件模塊需要根據業務功能的發展不斷地擴展。微內核的架構本質是將變化部分封裝在插件里,從而實現快速靈活擴展的目標,而同時又不影響整體系統的穩定。常見的例子有:Eclipse IDE、Spring、Dubbo。

我做過一個配置化項目。把業務流程劃分成模塊,會不斷有新業務接入進來,很多模塊都可以復用。比如業務A需要abc三個模塊,業務B需要acde四個模塊,那新業務進來只需要進行模塊流程的配置。如果需要的模塊沒有,那就以插件的形式集成進來再進行配置。我們稱這個服務采用的是微內核架構,目的就是要讓大家把新功能的開發做插件式開發,避免對舊功能的影響,提高系統的穩定性。

分享到:
標簽:DDD
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定