bin^2

bin^2

discord server
twitter

架構方法論-為什麼架構只需要三層

#文章 / 完成 / 已发布
#架構
#三層分形架構

在學習架構時,常會遇到各種不同的分層架構,如傳統的三層、四層、DDD、六邊形、MVC、MVP、MVVM 等等,而且還不斷有新的分層方法出現。

真的需要不斷學習這麼多的分層方法嗎?有沒有一個萬能的分層方法可以學習呢?

架構方法論 - 三層分形架構試圖使用一個方法論來生成適用的分層方法。

為什麼要分層?#

分層的本質是聚焦。傳統的三層聚焦於業務邏輯,MVC 聚焦於交互流程控制,ORM 聚焦於數據映射,DDD 聚焦於領域服務。

如何分層?#

首先,一個軟件系統的核心是業務邏輯,聚焦業務邏輯就有了第一個層,業務邏輯層。
業務邏輯並不能直接供用戶使用,想要應用業務邏輯就需要一個交互層(或稱展現層、接入層)。

業務邏輯也不能凭空構建,需要其他的應用來支撐,所以還需要一個基礎層(或稱數據層)。

還需要其他的層次嗎?

目前來看不需要了。
這裡的基礎層,同時也是其他系統的應用。也就是一個系統的應用是其他系統的支撐,一個系統的核心依賴其他系統的應用。因為系統與系統、系統與用戶間的關係無非是支撐和依賴,所以這已經覆蓋了所有的情況。

什麼是三層分形架構?#

那麼為什麼 DDD 的分層會有四層,網絡會有 7 層,等等超過三層的設計呢?

三層以上的設計其實是在三層的基礎上,將其中一層再聚焦一個不同核心重新劃分出的三層。

比如核心層再聚焦實體和聚合,那麼應用領域實體就需要應用服務層,支持領域實體就需要倉庫、領域事件總線等支撐。

在交互層中,聚焦交互流程控制,核心層便是控制器,應用層是視圖,支撐是模型。聚焦界面的不同展示,核心層便是展示器,應用是視圖,支撐是模型。

三層架構是指聚焦某一核心,根據支撐和應用關係,劃分出三層的方法。
三層分形架構,是指應用三層架構方法,每個分層中再次使用三層架構的遞歸處理過程,因為是三層架構的重複應用,形似分形,所以命名為三層分形架構

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。