軟體架構概觀
Software Architecture
為架構而架構是一個很大盲點,架構不在追求完美而在於滿足需求與面對需求變化的能力
架構的演進需要有一個明確的目標,這些目標通常是源自現存系統的缺陷
架構團隊的責任
面對需求
滿足需求與面對需求變化的能力
持續擴充與演進的能力
面對技術
適當技術的引用、與時俱進的演化能力
機制制定,例如:授權認證、監控機制、通訊機制、流控機制…
核心模組的設計與研發實現。80%的系統流量會經過20%的核心模組,其重要性不言可喻。
辛苦一次永久使用,相同的事、類似的模組不重複設計製作
實踐scalable、fault-tolerant、high-performance的承諾
面對其他開發人員
經驗分享與傳承
防範豬一樣的隊友搞垮系統,從自動偵測機制與技術規格框架設計做起
工具能做的,程式可解的,減少人工作業
化繁為簡,盡量讓他們集中精力在解決Domain的需求而非技術的議題,提高生產力
系統架構重要性
疊床架屋糊一起 v.s. 層次分明可擴充延展永續演進
IT技術不一定適用所有的系統架構,架構不對就無法發揮雲端或Container技術的優勢