更新時間:2019-07-30 10:29:20 來源:動力節點 瀏覽2556次
優秀的架構師的核心能力模型包含:編程、性能調優、架構設計等能力等。
編程能力
對工程師而言,編程是最基礎的能力,必備技能,其本質是一個翻譯能力,將業務需求翻譯成機器能懂的語言。
提升編程能力的書籍有很多,精通面向對象和設計模式是高效編程的基礎。初級工程師應該多寫代碼、多看代碼。找高手做CodeReview,也是提升編程水平的捷徑。
常見的編程范圍:
數據結構算法,比如:經典排序:插入排序、冒泡排序、快排(分劃交換排序)、直接選擇排序、堆排序、合并排序等。
高級語言特性:JVM、類裝載機制、多線程并發
設計模式:常見的單例、工廠等。
UML建模:詳細設計必備。
網絡與安全:網絡協議、安全等。
開源系列:spring、maven、redis、memcached、activeMQ等。
調試能力
本質上講,工程師們通過不斷調試可以持續強化其通過靜態代碼去預測運行狀態的能力。所以調試能力也是工程師編程能力提升的關鍵手段。
調試能力是項目能否按時、高質量提交的關鍵。即使一個稍具復雜度的項目,大部分工程師也無法一次性準確無誤的完成。大項目都是通過不斷地調試進行優化和糾錯的。所以調試能力是不可或缺的能力。
編譯部署能力
編譯并在線上部署運行程序是系統上線的最后一個環節,隨著SOA架構的普及以及業務復雜度的增加,大部分系統只是一個完整業務的一個環節,因此,本地編譯和運行并不能完全模擬系統在線運行。為了快速驗證所編寫程序的正確性,編譯并在線上部署就成了必要環節。所以編譯部署能力是一個必備技能。
讓盤根錯節的眾多子系統運行起來是個不小的挑戰。得益于SOA架構的普及以及大量編譯、部署工具的發展,編譯部署的門檻已經大大降低。基于應用層進行開發的公司,已經很少有“編譯工程師”的角色了。但是對于初級工程師而言,編譯部署仍然不是一個輕松的事情。
性能優化能力
衡量一個系統成功的一個重要指標是使用量。隨著使用量的增加和業務復雜度的增加,大部分系統最終都會碰到性能問題。性能優化能力是一個綜合能力。因為:
影響系統性能的因素眾多,包括:數據結構、操作系統、虛擬機、CPU、存儲、網絡等。為了對系統性能進行調優,架構師需要掌握所有相關的技術。
精通性能優化意味著深刻理解可用性、可靠性、一致性、可維護性、可擴展性等的本質。
性能調優集中在:JVM調優,線程池調優、SQL調優、索引優化、數據庫垂直拆分等。
在線運維能力
如果說性能優化能力體現的是架構師的靜態思考能力,在線運維能力考驗的就是動態反應能力。殘酷的現實是,無論程序多么完美,Bug永遠存在。與此同時,職位越高、責任越大,很多架構師需要負責非常重要的在線系統。對于線上故障,如果不能提前預防以及快速解決,損失可能不堪設想,所以在線運維能力是優秀架構師的必備技能。
為了對線上故障進行快速處理,標準化的監控、上報、升級,以及基本應對機制當然很重要。通過所觀察到的現象,快速定位、緩解以及解決相關癥狀也相當關鍵。這要求架構師對故障系統的業務、技術具備通盤解讀能力。解決線上故障的架構師就好比一個在參加比賽F1的車手。賽車手必須要了解自身、賽車、對手、同伴、天氣、場地等所有因素,快速決策,不斷調整。架構師必須要了解所有技術細節、業務細節、處理規范、同伴等眾多因素,快速決斷,迅速調整。
在線運維本質上是一個強化學習的過程。很多能力都可以通過看書、查資料來完成,但在線運維能力往往需要大量的實踐來提升。
架構設計能力:業務和技術
工程師抱怨產品經理的故事屢見不鮮,抱怨最多的主要原因來自于需求的頻繁變更。需求變更主要有兩個來源:第一個原因是市場改變或戰略調整,第二個原因是偽需求。對于第一個原因,無論是工程師還是產品經理,都只能無奈的接受。優秀的架構師應該具備減少第二種原因所導致的需求變更的概率。
偽需求的產生有兩個原因:
第一個原因是需求傳遞變形。從信息論的角度來講,任何溝通都是一個編碼和解碼的過程。典型的需求從需求方到產品經理,最終到開發工程師,最少需要經歷三次編碼和解碼過程。而信息的每一次傳遞都存在一些損失并帶來一些噪音,這導致有些時候開發出來的產品完全對不上需求。此外,需求方和產品經理在需求可行性、系統可靠性,開發成本控制方面的把控比較弱,也會導致需求變形。
第二個原因就是需求方完全沒有想好自己的需求。
優秀的架構師應該具備辨別真偽需求的能力。應該花時間去了解客戶的真實業務場景,具備較強的業務抽象能力,洞悉客戶的真實需求。系統的真正實施方是工程師,在明確客戶真實需求后,高明的架構師應該具備準確判斷項目對可行性、可靠性、可用性等方面的要求,并能具備成本意識。最后,由于需求與在線系統的緊耦合關系,掌握在線系統的各種細節也是成功的業務架構的關鍵。隨著級別的提升,工程師所面對的需求會越來越抽象。承接抽象需求,提供抽象架構是架構師走向卓越的必經之途。
市場上有一些關于如何成為架構師的書,大家可以參考。但是架構能力的提升,實踐可能是更重要的方式。業務架構師應該關注客戶的痛點而不是PRD文檔,應該深入關注真實業務。掌握現存系統的大量技術和業務細節也是業務架構師的必備知識。
技術架構設計主要集中在:架構選型、中間件掌握、負載均衡、大數據性能等領域。
最后為大家附上一套最新Java架構師在線視頻,希望大家在進階的道路上學有所成,資源可以在動力節點IT培訓官網在線客服回復“Java架構師資源”
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習