2.1 緣起
世界上有兩件東西能夠深深地震撼人們的心靈:一件是我們心中崇高的道德準則,另一件是我們頭頂上燦爛的星空。——康德
架構是一種思維模式,可以理解為系統化地看待周遭事物并提出解決方案。從這個角度講,小到一段代碼,中到一個模塊,大到一系列產品集,都有其架構層次。我們常常聽到的抽象、擴展、復用、分層都是常見的架構設計手段。一位程序員經常做架構思維的訓練和實踐,然后成長為一位系統或者平臺架構師,這是一種自然演化的成長路徑。所以說,架構思維非架構師獨有,架構師也非天降神人,而是通過實踐、學習成長而來的。
架構師是連接商業世界與技術世界的橋梁,如同金門大橋一樣(如圖2.1所示)。《軟件架構師的12項修煉:技術技能篇》一書曾大篇幅論述了接觸客戶的重要性,通過調研、會談、引導等方式可以了解客戶,了解產品展開競爭的市場,從而研究業務目標,考慮能為客戶做什么,在塵土飛揚的商業背面來設計IT系統。比如,客戶告訴你的未必是真正的需求,而是要挖掘背后的本質需求。此時,往往需要考慮如下幾個要點:
●客戶的“痛點”是什么?
●如何讓客戶更高效地工作?
●如何滿足客戶的需求?
因此,架構師不僅僅要懂得技術選型、約束,有豐富的代碼研發經驗,對于非功能性需求(比如性能、事務設計)有豐富的應對策略,還需要足夠了解業務,了解客戶需要什么,并知道如何衡量產品是否成功。這種成功是真實的成功,而不是象牙塔和實驗室中架構師們假想的那種成功。

圖2.1
筆者主張的架構設計思想,一言以蔽之就是“以終為始”。只有從需求出發,才能衡量架構設計的成敗,也只有這樣才能不偏不倚地不斷評估當下所走之路是偏離了路線還是已經完成失去了方向。
推薦閱讀
- Game Programming Using Qt Beginner's Guide
- Windows系統管理與服務配置
- Magento 2 Theme Design(Second Edition)
- 青少年軟件編程基礎與實戰(圖形化編程三級)
- C語言程序設計教程(第2版)
- MATLAB 2020 從入門到精通
- 21天學通C++(第6版)
- SSM輕量級框架應用實戰
- Learn React with TypeScript 3
- Android程序設計基礎
- Windows內核編程
- Machine Learning for Developers
- Apache Solr PHP Integration
- Google Adsense優化實戰
- Flink核心技術:源碼剖析與特性開發