架构为什么要以领域为核心
很久以前, 人們以為地球是太陽系的中心.
然后一位聰明人, 哥白尼, 他改變了我們對太陽系的看法. 他認為太陽是太陽系的中心:
這是對太陽更好的一個解釋, 更簡單也更具說服力.?
事實上, 以太陽為中心的模型確實是更優雅的.
上面這件事也發生在軟件開發里.?
下面這個就是很多開發者慣用的以數據庫為核心的經典三層架構:
在這種結構下: UI, 業務邏輯, 數據訪問都是圍繞著數據庫來運行的.
數據庫就是這種結構的核心.
后來, 和太陽系一樣, 人們開始改變了看待軟件架構的方式 -- 為什么不以領域為核心?
而在這種結構下, 數據庫只不過是架構之外的一個實現細節.
在這里, 領域(業務領域)是核心/必需品, 而數據庫就是一個細節而已.
為什么要這樣看待架構?
引用Robert Martin的一句話: "建筑師首先需要保證造出來的房子是可以居住的, 而不是確保房子必須用磚頭來蓋".
蓋一幢房子, 首先要保證房子有足夠的空間, 并且可以居住. 而房子涂什么顏色的漆, 以及用什么樣的裝潢, 這些雖然也很重要, 但它們不是必需的.
所以對于軟件架構來說, 我們要搞清楚的就是, 什么是核心/必需品, 什么是細節.
這里面, 領域是必需的, 用例也是必需的; 而展示層則是細節, 持久層也是細節, 它們盡管很重要, 但是它們無法去解決核心問題.
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?
總結
以上是生活随笔為你收集整理的架构为什么要以领域为核心的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net core 中间件管道底层剖析
- 下一篇: C# - 为引用类型重定义相等性 - 继