如何成為系統(tǒng)架構(gòu)師
很多做軟件開發(fā)的小伙伴都立志想成為一名系統(tǒng)架構(gòu)師,卻不知怎么樣才算是一名合格的架構(gòu)師,下面我們一起來看看!
一、架構(gòu)師需要具備什么能力?
這個其實不太好回答,在招聘網(wǎng)站上,不同的公司對架構(gòu)師要求都不一樣,公司的業(yè)務(wù)不同對架構(gòu)師能力的側(cè)重點也有不同。但基本要求的能力至少滿足以下幾點:
1、負(fù)責(zé)公司系統(tǒng)架構(gòu)的設(shè)計、研發(fā)工作
必須在某一特定領(lǐng)域有自己深刻的理解和實踐經(jīng)驗,比如在java領(lǐng)域,就應(yīng)該熟悉各種開源框架,并能在開源框架上開發(fā)各種系統(tǒng)功能,比如系統(tǒng)安全,與異構(gòu)系統(tǒng)通信協(xié)議、高并發(fā)下各種緩存、集群、分布式。架構(gòu)師應(yīng)該是在微觀上能解決各種系統(tǒng)異常的人,宏觀上能為公司的發(fā)展提供可匹配的架構(gòu)支持(架構(gòu)水平可擴(kuò)展)。
2、能夠制定技術(shù)規(guī)范,能夠?qū)﹂_發(fā)人員在技術(shù)上提供指導(dǎo)
所以架構(gòu)師必須在技術(shù)上有一定權(quán)威的人,必須是團(tuán)隊的技術(shù)核心人物,能夠根據(jù)最佳實踐制定技術(shù)規(guī)范,并要求技術(shù)人員按照規(guī)范實施。如果開發(fā)人員,尤其是新員工不能理解如何使用架構(gòu)進(jìn)行開發(fā)的時候,架構(gòu)師應(yīng)該組織對大家培訓(xùn),開發(fā)相應(yīng)的demo,交付大家使用,必要時,必須闡明架構(gòu)為什么這么設(shè)計的緣由。試想,如果在關(guān)鍵的技術(shù)決策的時候,沒人care,想想你真的具備架構(gòu)師的能力嗎。
3、組織大家完成技術(shù)攻關(guān),對核心的技術(shù)選型有自己見解,能識別系統(tǒng)風(fēng)險點,也能識別系統(tǒng)的優(yōu)化點
在關(guān)鍵的技術(shù)難點需要攻關(guān)的時候,架構(gòu)師應(yīng)該沖在前頭。有經(jīng)驗的架構(gòu)師,應(yīng)該在系統(tǒng)設(shè)計之初就應(yīng)該預(yù)想到可能的技術(shù)難題,并提前做技術(shù)研究。所以架構(gòu)師必須知識面比較廣,能夠?qū)Σ煌募夹g(shù)選型有自己的判斷,并能對不同的技術(shù)組合做出權(quán)衡,識別各種技術(shù)選型與組合的風(fēng)險,對已經(jīng)運行的系統(tǒng),應(yīng)該持續(xù)優(yōu)化,既能夠憑借自己的經(jīng)驗識別系統(tǒng)的優(yōu)化點,也善于運用各種工具,定量化分析系統(tǒng)的性能瓶頸,并組織技術(shù)小伙伴一塊解決。
4、業(yè)務(wù)理解能力與一定的項目管理能力
上面說的三點,想必立志成為架構(gòu)師的小伙伴都能明白。但是在技術(shù)上有追求的架構(gòu)師對業(yè)務(wù)、對項目管理天生有一定的排斥感,因為這兩樣都必須和人打交道,跟人打交道對架構(gòu)師來說效率低下(其實,很多架構(gòu)師都偏內(nèi)向,不喜歡也不善于和人打交道),不如敲代碼那么酣暢淋漓。所以,直覺上認(rèn)為,執(zhí)著于做一個架構(gòu)師是不需要以上兩方面的能力,把架構(gòu)做到極致、把技術(shù)做到極致就夠了。其實,技術(shù)是服務(wù)于業(yè)務(wù)的,你的用戶只有兩千人,你做個能應(yīng)對兩千萬的人架構(gòu)那只能是浪費資源。對業(yè)務(wù)的理解會有助于架構(gòu)師在更高層面上去理解架構(gòu),做出的架構(gòu)就比較適用,后期也能夠?qū)I(yè)務(wù)做到隨需應(yīng)變。
架構(gòu)師在工作中,往往會主動或者被動參與些開發(fā)管理工作,比如工作任務(wù)分配和預(yù)估項目進(jìn)度,因為往往理解技術(shù)人員專長的人是架構(gòu)師(或是技術(shù)經(jīng)理)、架構(gòu)師能把合適的技術(shù)任務(wù)分給合適的人。或者即使不是架構(gòu)師來分配任務(wù),一般項目經(jīng)理也會征求架構(gòu)師的意見。比如開發(fā)了新的架構(gòu),需要給大家培訓(xùn)。比如系統(tǒng)要和其他部門系統(tǒng)通信、集成,需要跨部門的協(xié)作。各種各樣的場景會將架構(gòu)師卷入一些項目管理中,從一定職業(yè)生涯規(guī)范考慮,學(xué)習(xí)或者參與一定的項目管理,能從更宏觀的層面去看一個項目的發(fā)展,而不單單將自己局限在技術(shù)上去看問題。
當(dāng)然,架構(gòu)師還要求有很強(qiáng)的自學(xué)能力、分析能力、發(fā)現(xiàn)問題、解決問題的能力。在互聯(lián)網(wǎng)時代,還需要寫作、溝通、培訓(xùn)的能力,所謂“教是最好的學(xué)”,將自己的架構(gòu)知識傳播出去,既能幫助別人,同時加深自己的理解,還能認(rèn)識到這個行業(yè)里志同道合的人(這些也是我為什么做“系統(tǒng)架構(gòu)師”這個公眾號的原因)。
二、公司說你是架構(gòu)師你就是架構(gòu)師嗎?
其實架構(gòu)師在不同的公司有不同的標(biāo)準(zhǔn),一個不知名的小公司的架構(gòu)師和bat的架構(gòu)師差距就很大。而且在互聯(lián)網(wǎng)泡沫的情況下,一些互聯(lián)網(wǎng)公司的title有明顯的水分,明明只具備初級工程師的能力,title就已經(jīng)高級工程師了,明明連基本的設(shè)計模式、UML都不了解,卻言必稱“架構(gòu)”了(明明是誰?)。這些架構(gòu)師往往在是公司的初期就加入的,從事著技術(shù)方面的工作,隨著公司業(yè)務(wù)的增長,享受到了公司發(fā)展的紅利,成為公司的元老,但是否真具備了架構(gòu)師的能力值得商榷。
在有的公司,招聘架構(gòu)要10年以上的工作經(jīng)驗,這又不是給手機(jī)充電,10個小時才能充滿,就具備了架構(gòu)師的能力。我平常負(fù)責(zé)項目組的技術(shù)面試,有些公司的人有個3、4年工作經(jīng)驗,但是能力卻不及畢業(yè)生,一些熱門的技術(shù)術(shù)語一概不知,仿佛安裝了技術(shù)敏感詞屏蔽器。也面試過幾個畢業(yè)生,有很好的技術(shù)深度和廣度,進(jìn)來之后表現(xiàn)非常不錯。所以第一份工作、個人資質(zhì)、成長速度都非常重要。往往這些對技術(shù)有獨到見解和熱情的人,在一個很好的平臺,有很好的人帶,不出幾年就有具備架構(gòu)師的能力,可能限于公司制度的原因,沒有架構(gòu)師的頭銜,卻已然挑起了架構(gòu)師的重?fù)?dān)。
也就是,你現(xiàn)在有架構(gòu)師的頭銜,也不定是個真正的架構(gòu)師;你現(xiàn)在工作不滿5-10年,沒有架構(gòu)師的頭銜,但實質(zhì)上也很可能是個貨真價實的架構(gòu)師。
三、有《系統(tǒng)架構(gòu)師》證書就是架構(gòu)師了嗎?
有人說我有國家軟考《系統(tǒng)架構(gòu)師》認(rèn)證,那我應(yīng)該是個架構(gòu)師了吧,這個問題就好像我有碩士文憑,我一定比本科優(yōu)秀一樣的問題!断到y(tǒng)架構(gòu)師》是個錦上添花的東西。絕不能期望通過一張證書讓你成為架構(gòu)師,IT行業(yè)是一個相對公平的行業(yè),一切靠能力說話,不看證書、不太重視學(xué)歷。一切以提高自己的能力為主,切勿本末倒置。
雖然我有《系統(tǒng)架構(gòu)師》、《信息系統(tǒng)項目管理師》兩個高級證書,但是然并卵,扔兩個大石頭也沒泛起一絲漣漪,只有在年底述職的時候,閃耀了那么幾秒。但是我還是建議想成為架構(gòu)師的技術(shù)人員,尤其在傳統(tǒng)行業(yè)的IT從業(yè)人員,可以抱著“以考促學(xué)”的心態(tài)去考一下這個證,報名費不到三百,所涉及的學(xué)科有10多門,可以開拓自己的視野。而且考試的強(qiáng)度很大,分為綜合知識、案例分析、論文。光論文就要求在1個半小時寫2500-3000字的論文,對于習(xí)慣敲鍵盤的技術(shù)人員來說,也是一個非常大的挑戰(zhàn)。
當(dāng)然,你要是做著架構(gòu)師的工作,有架構(gòu)師的能力,還拿了一個《系統(tǒng)架構(gòu)師》認(rèn)證,那就是兩個字:完美。
四、如何做才能越來越像一個架構(gòu)師?
1、關(guān)注架構(gòu)知識,比如關(guān)注“系統(tǒng)架構(gòu)師”這個公眾號(哈哈)
主動關(guān)注一些架構(gòu)的微信公眾號,或者相關(guān)技術(shù)牛人的微信、微博,了解一些架構(gòu)的技術(shù)動態(tài)。有個理論是說,你想成為什么樣的人,你終究會成為那樣的人,不管中間多么曲折。在互聯(lián)網(wǎng)時代,大家更容易達(dá)成自己的目標(biāo),因為獲取資訊更難容易,何況這些資訊都會根據(jù)你個人興趣進(jìn)行推送。當(dāng)然,碎片化的知識還不夠,需要深入學(xué)習(xí)書本知識,每個月至少看完一本技術(shù)書吧。
2、主動思考,主動實踐,關(guān)注互聯(lián)網(wǎng)公司架構(gòu)實踐
保持對架構(gòu)的好奇心,主動思考一些問題,比如微博的更新是推還是拉,雙11的秒殺是如何實現(xiàn)的,memcached的緩存服務(wù)集群如果有臺掛了怎么辦。抱著問題去看書,查資料會有更深的了解。平時應(yīng)該看一些一線互聯(lián)網(wǎng)公司的架構(gòu)實踐,如有必要,可構(gòu)建類似的業(yè)務(wù)場景,在本地試驗。一些大公司如阿里也開源了很多項目,有很多優(yōu)秀的中間件,可以或看看底層實現(xiàn)原理和代碼,這也是很好的途徑,雖然可能你沒有一線互聯(lián)網(wǎng)的工作經(jīng)驗,但這樣可以形成架構(gòu)師的思維。
3、學(xué)會擔(dān)當(dāng),培養(yǎng)抽象思維與總結(jié)能力
在一個項目里面,最有可能成為架構(gòu)師的技術(shù)人員,通常是那個最有擔(dān)當(dāng)?shù)娜。一個技術(shù)難題擺在大家面前的時候,誰都不會,但是這個人主動承擔(dān)下來,不僅讓領(lǐng)導(dǎo)認(rèn)可你的態(tài)度,一旦你經(jīng)常挑戰(zhàn)你不會的東西,并且挑戰(zhàn)成功,就會形成良性循環(huán),以后就會形成這樣的共識,再難的問題交給你也能搞定,因為你已經(jīng)具備了這樣的直覺和經(jīng)驗?纯瓷磉呌袥]有這樣的人,這個人其實已經(jīng)有架構(gòu)師的潛質(zhì)了,所以說,要做為架構(gòu)師一定要讓自己不舒服,要經(jīng)常挑戰(zhàn)對自己有難度的技術(shù)和知識,而不是固守著已經(jīng)熟悉的領(lǐng)域。
其次,要有抽象思維能力。比如,我問JVM、適配器模式、代理服務(wù)器、TCP/IP協(xié)議有什么共同點?感覺像是風(fēng)牛馬不相及的概念,其實,都有借助中間層的概念,計算機(jī)發(fā)展這么多年,本質(zhì)上的理念卻沒有質(zhì)的變化。要成為一名合格的架構(gòu)師,既能在微觀上解決具體的bug,也能宏觀上洞悉問題的本質(zhì),技術(shù)的原理。
最后,總結(jié)分享是非常必要的,還是那就話“教是最好的學(xué)”,把自己所知所想寫出來既是重新梳理思路的過程,也能讓別人收益,而且隨著自己經(jīng)驗的積累,可以形成自己的知識庫,面對類似的問題可以直接從知識庫找到答案(這點對年齡偏大的技術(shù)人員尤其適用),不用再重復(fù)造輪子。
4、多和行業(yè)大牛交流,參加行業(yè)聚會
如果有機(jī)會,多參加行業(yè)聚會,結(jié)交技術(shù)大牛,看看他們對架構(gòu)有什么獨到見解。做為技術(shù)人不僅要埋頭鉆研,還要抬頭看路。
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除