日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ddd架构 无法重构_漫谈分层架构:为什么要进行架构分层?

發布時間:2025/3/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ddd架构 无法重构_漫谈分层架构:为什么要进行架构分层? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么要分層

  • 高內聚:分層的設計可以簡化系統設計,讓不同的層專注做某一模塊的事
  • 低耦合:層與層之間通過接口或API來交互,依賴方不用知道被依賴方的細節
  • 復用:分層之后可以做到很高的復用
  • 擴展性:分層架構可以讓我們更容易做橫向擴展

如果系統沒有分層,當業務規模增加或流量增大時我們只能針對整體系統來做擴展。分層之后可以很方便的把一些模塊抽離出來,獨立成一個系統。

2、傳統MVC架構

優點:關注前后端分離

缺點:模型層分層太粗,融合了數據處理、業務處理等所有的功能。核心的復雜業務邏輯都放到模型層,導致模型層很亂

適應場景:后端業務邏輯簡單的服務,比如接口直接提供對數據庫增刪改查

3、后端三層架構

定義:

  • 表現層:controller
  • 邏輯層:service
  • 數據訪問層:dao
  • 優點:邏輯與數據層分離

    缺點:模型層分層比較粗,核心的復雜業務邏輯都放到模型層,導致模型層很亂

    適應場景:后端業務邏輯簡單的服務,比如接口直接提供對數據庫增刪改查

    4、阿里分層架構

    架構來源:參照參照阿里發布的《阿里巴巴 Java 開發手冊 v1.4.0(詳盡版)》,將原先的三層架構細化而來

    特點:添加了Manager 通用業務處理層。

    這一層有兩個作用,一、可以將原先 Service 層的一些通用能力下沉到這一層,比如與緩存和存儲交互策略,中間件的接入;二、也可以在這一層封裝對第三方接口的調用,比如調用支付服務,調用審核服務等RPC接口。

    優點:相比于三層方式,添加了通用處理層對接外部平臺。 上下游對接劃分的比較清晰

    缺點:核心業務邏輯層沒有劃分

    適應場景:業務邏輯不復雜的常用業務

    5、DDD分層架構

    (1)特點

  • 數據、緩存等都視為基礎層, 可以被所有層調用
  • 抽離了領域層,負責核心業務邏輯處理,領域層調用外部依賴全部通過接口,以保證領域層的100%單測覆蓋率
  • 應用層聚合多個領域層的能力,只做功能的組合、轉發,不負責具體業務邏輯
  • 優點:相比于三層方式,更關注領域服務,即業務核心邏輯的劃分、收斂

    缺點:分層復雜, 如果業務邏輯簡單沒有必要

    適應場景:業務復雜的業務

    (2)和傳統三層架構的對比

    DDD四層架構也基于傳統三層架構的,不同點有以下幾方面:

  • 關注點不一樣:三層架構關注請求調用順序;DDD架構關注領域服務。
  • 橫向劃分方式不一樣:三層架構主要關注縱向劃分,對橫向劃分沒有約定;DDD架構更關注縱向,即:多個領域層之間劃分及交互方式。
  • 對資源的定位不一樣:三層架構把所有依賴的數據都放到數據訪問層;DDD架構只將領域強關聯的數據放到Repository中,其他比如API層緩存、文件等都當成基礎服務來處理。
  • 6、整潔架構和六邊形架構

    整潔架構和六邊形架構都是DDD架構的一種方式,只不過是視角不同。

    (1)整潔架構

    特點:整潔架構的層就像洋蔥片一樣,它體現了分層的設計思想

    整潔架構最主要的原則是依賴原則,它定義了各層的依賴關系,越往里依賴越低,代碼級別越高,越是核心能力。外圓代碼依賴只能指向內圓,內圓不需要知道外圓的任何情況。

    (2)六邊形架構

    六邊形架構又名“端口適配器架構”。追溯微服務架構的淵源,一般都會涉及到六邊形架構。

    六邊形架構的核心理念是:應用是通過端口與外部進行交互的。我想這也是微服務架構下API網關盛行的主要原因吧。

    也就是說,在下圖的六邊形架構中,紅圈內的核心業務邏輯(應用程序和領域模型)與外部資源(包括APP、Web應用以及數據庫資源等)完全隔離,僅通過適配器進行交互。它解決了業務邏輯與用戶界面的代碼交錯問題,很好地實現了前后端分離。六邊形架構各層的依賴關系與整潔架構一樣,都是由外向內依賴。

    7、匯總

    本文匯總了傳統MVC架構、后端三層架構、阿里分層架構、DDD架構以及基于DDD架構的整潔架構和六邊形架構。從前往后越來越復雜,其他也對應著軟件工程的越來越復雜,架構模式也變的越來越復雜。軟件架構領域沒有一招鮮吃遍天的功法,針對的不同的業務場景采用不同的架構,并且隨著業務的發展,不斷調整架構以適應業務的發展,以變(架構、技術組件、重構等)應不變(業務發展、用戶體驗、穩定性等)才是一個合格的軟件工程師應追求的境界。

    原文鏈接:https://juejin.cn/post/6907828643062513671

    如果覺得本文對你有幫助,可以轉發關注支持一下

    總結

    以上是生活随笔為你收集整理的ddd架构 无法重构_漫谈分层架构:为什么要进行架构分层?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。