讀古今文學網 > 程序員必讀之軟件架構 > 太多假設 >

太多假設

下面的圖告訴我們解決方案是一個多層Java EE系統,但它忽略了一些重要的細節。

對於通信是如何發生的,Web服務器和應用程序服務器之間的連線沒有提供任何信息。是SOAP、RESTful服務、HTTP請求的XML、遠程方法調用、Windows通信基礎、還是異步消息?答案是不清楚,我考慮這一點有三個理由。

1.約束 :如果是在一個存在約束 的環境中工作,技術的選擇可能已經為你做好了。比如,你可能有進程間通信的標準,或者只允許某些類型的流量通過的防火牆。

2.非功能需求 :技術和協議的選擇可能會影響到你能否滿足非功能需求,特別是如果你正在處理高性能、可伸縮性和安全性。

3.複雜度 :我曾經與從未創建過多層架構的軟件團隊一起工作,他們往往誤以為這種架構風格可以「不費吹灰之力」得來。在現實世界中,更多分層意味著更高的複雜度 。

就算有很多選項,團隊往往也不喜歡在把一些原型組成整體之前就匆匆提交。沒問題,只是換成用潛在選項清單來註釋圖上那些線,這樣至少我們能更好的對話。