讀古今文學網 > 程序員必讀之軟件架構 > 理解意義 >

理解意義

後退一步想想哪些對你的軟件系統很重要,這往往是值得的。例如,很多團隊使用關係型數據庫,這個選擇可能被認為很重要。為了減少在數據庫技術變化時必要的返工量,很多團隊會使用Hibernate或Entity Framework這樣的ORM框架。引入額外的ORM層使得數據庫操作能與代碼的其他部分解耦,而且理論上,不用花費很多精力就能獨立地切換數據庫。

引入額外層的決策是將某個部分從軟件系統中解耦的經典技術,促進了低耦合、高內聚和更好的關注點分離。此外,有了ORM以後,可能一個下午就完成了數據庫的切換。從這一點來說,從架構上它不會再被看作是重要的。

然而,當數據庫的選擇可能不再被當作重要決策時,通過引入額外層實現解耦就應該是重要決策。如果你想知道為什麼,試想把你當前所用的ORM或Web MVC框架完全替換成另一個,要花多長時間。當然,你可以在所選的ORM上再添加其他層,以隔離業務邏輯,並提供輕鬆替換ORM的敏捷性。但是,你又做出了另一個重要決策:引入了額外的分層、複雜性和成本。

儘管「重要決策」沒法徹底消失,但能通過架構分層等多種策略來改變。軟件系統架構流程的一部分就是搞清楚哪些是重要的及為什麼。