架構師是如何練成的?

前言

在盤點2019年全年平臺各技術崗位薪資數據時發現,架構師是全年面邀薪資中僅次於CTO的崗 位,同時,將架構師作爲期望求職崗位的候選人數,僅次於Java工程師、前端工程師,以及移動端工程師。

因此,今天會把從事多年的架構經驗和大家做分享,我覺得很有必要,會比純技術的分享更有意義。

今天我將以自己的親身經歷,與大家分享技術領導者成長過程中的幾大常見難題,以及一名合格的架構 師應具備的素質。

(看着美女寫文章是真的香還有靈感)

技術路線or管理路線該如何抉擇?

經歷了3-5年的一個技術人很常見的問題就來了:我是堅持走技術路線呢,還是走管理崗位?這個問題其實並沒有標準答案。

每個人的喜好不同,對自己的規劃也不同。

但我覺得不論走技術路線還是管理路線,首先技術能力是不可或缺的。

技術人,如果自己的技術都不過關,很難領導好一個團隊。最基礎的,面臨一個技術問題的排期,如果 你技術不過關,恐怕也很難保證收到的排期是合理的、符合預期的。(畢竟誰也不會真心服一個能力比自己低的人)

其次是帶隊能力,技術專家並不只關注技術。技術是爲業務服務的,一味地講技術深度,做出來的東西 有時候並不符合業務的需要。所以,技術專家的存在,一是帶領大家對技術做攻關,二是確保業務需求 架構設計更合理。當然,管理方向和技術方向對個人的要求還是有區別的。

管理方向更多的是帶領團隊完成某件事,利用 好人;例如按照公司的戰略方向,制定團隊的作戰方法。技術專家則更多關注的是技術如何更好地服務 業務,利用自身的技術能力,賦能業務、賦能團隊。

所以一定要根據自身的實際情況及個人規劃,選擇自己未來要走的路。

架構師與程序員區別?

對於任何一個軟件開發人員來說,架構師都是一個令人嚮往的角色。

其實架構師和程序員的界限並不是很大,比如現在仍然在每天寫代碼。成長首先來自於自身的學習,而閱讀成熟項目的代碼會使人受益匪淺,其次就是來自於所從事領域的經驗,要了解分佈式系統的特點,在做項目時,要能夠關注性能、擴展性、可靠性、可用性等指標。

架構師其實就是一個漫長的積累過程(打野),從準備期到動盪期我們都是不停的探索,學習.大部分的高級架構師的年齡都是在35歲左右,這個階段就是程序員的黃金期。

合格的架構師該有怎樣的素質?

1、懂業務

沒有業務,架構也就無從談起。合理的架構也一定是隨着業務的發展逐步進化的。

大部分初創公司人員簡單,業務簡單且變化較快,這個時候,單體應用比較合適。因爲單體應用有更高 的開發效率,能夠快速試錯。但業務量上漲之後,公司的規模一般也會變大,人員增多,組織部門開始劃分。

這時就要開始服務化, 降低系統間的耦合,職責更加清晰,每個部門對自己所負責的服務負責。隨着業務量的持續上漲,就要進行更細的劃分,這時可能就要使用微服務。微服務越來越多,就要去解 決服務治理,服務發現等一系列問題。

所以說,好的架構師一定是爲業務設計架構。

2、技術前瞻性

架構師一定要站在業務和技術的更前端,考慮業務的發展對架構的影響,以最小的變動,支撐業務的發展。

拿某電商的訂單服務來說,早期,單體應用沒有訂單服務,整個業務都是一個大的數據庫。當業務量上 來後,有了訂單服務,訂單表從大庫拆分,僅僅進行了拆表操作,沒有進行拆庫,導致後期訂單庫成爲 了業務瓶頸,再次進行拆庫耗費了很多的人力物力。

如果主導這次拆分的是一個合格的架構師,應該從一開始就要考慮到目前的技術選型是否符合業務的長期發展需求,選擇一個更加合適的架構。

3、溝通協作能力

好的架構師能將自己的設計通俗易懂的講給小夥伴,不僅要做到傳道還要授業解惑。

同時,在日常工作 中,能夠將自己的選型及設計清楚地傳達下去,合理分工,還能交代清楚爲什麼這樣做,這樣做的好處 是什麼。讓每個人都清楚自己的職責,更好地完成工作內容。

好的架構師能夠關注業務重點,及時解決 小夥伴們碰到的技術問題,給予支持,幫助整個團隊一起提升。

4、持續學習的心態

新的技術層出不窮,持續不斷地學習是技術人必備的通用素質,但架構師尤甚。新的技術能否幫助業務發展,我們現有的技術體系是否有需要借鑑的地方,都是架構師要持續學習的。

除了技術,業務方向也 是架構師需要學習的點,架構師要有廣闊的視野,才能在後續的業務中有好的架構設計。

架構師如何加強技能修養?

程序員要往一名架構師發展,需要進一步加強技能的修養。

對於互聯網公司來言,最重要的技能是對網 絡和分佈式系統的理解,比較麻煩的是分佈式系統,需要結合很多實際的項目和方案來理解。

因爲同一個技術,在不同的項目經驗後,絕對不是不同的理解。

首先架構師的技術寬度必須很廣,技術深度在某一個領域是專家。

必須要有這幾個要素:

  • 思考問題的角度儘量站的高一點,再高一點,從分解公司戰略層面開始入手做架構設計
  • 對業務的深刻理解,才能做好業務架構
  • 理論學習&技術實踐,什麼時候都不能丟掉,這是技術架構的基礎,重要性不贅述 同行業交流
  • 時時對新技術保持敏感。

架構師自我培養?

要成爲一名合格的架構師僅僅通過理論學習是不行的,我自己理想中的架構師要求很高,不僅有豐富的 編碼經驗,而且還要熟悉硬件性能優化、內核調試、網絡故障排查、系統安全、分佈式系統,還有了解國內外技術的新趨勢和特點,最重要的是還要善於與人溝通,敢於排除不同意見,敢於承擔責任,瞭解團隊內工程師的特點,善於將他們組成一個整體。

技術方面:

  • 從最基礎的開發做起
  • 逐步提高解決高難度技術的能力
  • 不斷重構代碼、不斷優化代碼,每次重構都是一次思考

業務方面:

  • 從理解現有業務做起
  • 從成爲小領域業務專家,擴展到更多領域的業務專家
  • 在每次重構底層代碼時,更在不斷思考業務架構重構與優化,做到以上,大約是個高級序員或準架構師水平。

做到以上,大約是個高級程序員或準架構師水平。

架構師的核心競爭力?

  • 有獨立思考,價值判定,建立在對行業,對公司戰略和目標的深刻理解之上。
  • 很強的語言翻譯能力,能跟產品經理講明白技術能把產品理念翻譯成架構和可執行代碼
  • 影響力。

架構師如何在團隊中開展相關工作?

以公司戰略在技術方面的分解爲指導思想:

  • 爲團隊設定技術規範、代碼規範、文檔規範
  • 爲開發團隊、以及相關產品團隊、測試團隊、運維團隊,規定流程和標準 爲開發團隊抽象、提煉、儲備和推廣通用代碼類庫、常用業務代碼類庫 。
  • 根據實際操作情況,對以上內容不斷優化和調整。

架構師最大的挑戰是什麼?

如何克服這些困難?

架構師最大的挑戰是架構的落地和執行,克服方法,無它法,唯有緊密貼近業務。

示例1:公司戰略需要半年內出某個新平臺,力求速度,效率,作爲競爭的重要利器。這時架構設計最忌諱過度設計,過於理想化,建議走實用路線,不斷迭代,不斷重構,小快靈的做一次次升級架構。

示例2:公司戰略1年後重新規劃系統,爲未來3-5年做準備,這時架構設計當然需要儘量考慮周全,儘量留出足夠的接口,保留靈活性擴展性。

P8架構師具備的能力:

推薦閱讀:對標阿里P8水平Java架構學習路線,清華大牛帶你再造淘寶;

(高清版可私信小編“路線圖”免費獲取)

架構師是如何練成的?

 

最後小編想說 :(當上阿里P8架構師之後,是不是就可以擁有上圖那個顏值的助理呢)

架構師是如何練成的?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章