對于程式員來說,架構師是職業發展的一道坎,如果跨過去了,後面就前途無量了,否則可能一直得做着代碼coding的事情。
架構師必備技能:
1、技術能力
技術能力,不用置疑肯定是最重要的。技術能力弱的架構不是一個好架構。是以,你需要知道所有主流技術的基本原理、應用場景,及快速解決問題的能力。
是以,架構師必須要有見識,所需知識面肯定是要不斷拓展的。你需要清楚在什麼樣的場景用什麼樣的技術比較合适,并知道可能存在什麼樣的風險。來了需求,你腦袋是空的,不知道用什麼技術這是最可怕的。
2、架構能力
這個可以表現為抽象能力、整體規劃能力、及設計能力。你需要照在業務的角度進行系統分解、技術選型、架構搭建,以及規範制定。架構出來了至少可以滿足近幾年的發展,或者可以很友善對現有架構進行擴容。
有人說架構不需要懂業務,我面試過的就有明确表示不做業務架構。當然有方面的架構師,如中間件架構師,運維基礎設施架構師等。但一般的後端架構師都是需要了解業務,不了解業務你如果進行系統分解,服務劃分,及根據不同業務作出不同的架構?
技術都是為業務服務的,不站在業務的角度設計架構,那架構就是空談。
系統架構
3、溝通能力
這個看起來不是最重要的,其實也非常重要。作為一個優秀的架構師,你需要清楚的知道客戶的需求,需要不斷和需求人員進行溝通,以達到客戶真正的目的。
不論是不是架構師,任何一個職場人,提高自己的溝通表達能力無疑是不可或缺的。有一句話怎麼說的,上司就喜歡拍馬屁的。做上司的大多不是技術特别牛的,但溝通能力肯定是一流的。
架構師日常做什麼:
1、開會,開需求會,開設計評審會等。大概會占到平時工作的30%到50%。
2、如果不是資深架構或技術總監,那麼未必會設計一套全新的架構,往往是在現有基礎上改進,比如做擴容,分庫分表,上新的日志監控系統。這方面,架構師往往會做個案例,比如在一台linux上搭個日志系統,把步驟寫清楚,讓開發依樣畫葫蘆。對于資深架構而言,可能得重頭開始設計,或者作出調整技術元件等的決定,這一般也先在部分系統或部分機器上做試驗。
3、解決技術問題。這些問題未必是架構級别的,但隻要是進階開發解決不了的問題,架構一般都得上,誰讓架構是大牛呢?如果是架構元件方的問題,比如配置或部署方面的問題,架構師更得上。
4、但最重要的是學習,比如想,目前流量是2000每秒,到了5000時我該怎麼辦?然後再找些機器搭些元件來實驗一下。
成為架構師,不僅僅是工作上的簡單積累,更需要主動接納工作外的大量知識,同時,對性格上對于非技術能力上也有一定的要求,不僅如此連思維方式都很重要,外加職業發展中又有很多岔路,最後走到架構師這根樹枝上的就寥寥可數了。