歡迎光臨
每天分享高質量文章

架構為什麼要以領域為核心

很久以前, 人們以為地球是太陽系的中心.

 

然後一位聰明人, 哥白尼, 他改變了我們對太陽系的看法. 他認為太陽是太陽系的中心:

 

這是對太陽更好的一個解釋, 更簡單也更具說服力.

事實上, 以太陽為中心的模型確實是更優雅的.

 


 

上面這件事也發生在軟體開發里.

下麵這個就是很多開發者慣用的以資料庫為核心的經典三層架構:

在這種結構下: UI, 業務邏輯, 資料訪問都是圍繞著資料庫來運行的.

資料庫就是這種結構的核心.

 

後來, 和太陽系一樣, 人們開始改變了看待軟體架構的方式 — 為什麼不以領域為核心?

而在這種結構下, 資料庫只不過是架構之外的一個實現細節.

在這裡, 領域(業務領域)是核心/必需品, 而資料庫就是一個細節而已.

 

為什麼要這樣看待架構?

取用Robert Martin的一句話: “建築師首先需要保證造出來的房子是可以居住的, 而不是確保房子必須用磚頭來蓋“.

 

蓋一幢房子, 首先要保證房子有足夠的空間, 並且可以居住. 而房子塗什麼顏色的漆, 以及用什麼樣的裝潢, 這些雖然也很重要, 但它們不是必需的.

 

所以對於軟體架構來說, 我們要搞清楚的就是, 什麼是核心/必需品, 什麼是細節.

這裡面, 領域是必需的, 用例也是必需的; 而展示層則是細節, 持久層也是細節, 它們儘管很重要, 但是它們無法去解決核心問題.

    已同步到看一看
    赞(0)

    分享創造快樂