資深架構(gòu)師的養(yǎng)成計(jì)劃

架構(gòu)師是近幾年來(lái)在國(guó)內(nèi)外迅速成長(zhǎng)并發(fā)展良好的一個(gè)職業(yè),它對(duì)系統(tǒng)開(kāi)發(fā)和信息化建設(shè)的重要性及給IT業(yè)所帶來(lái)的影響是不言而喻的。在我國(guó),雖然系統(tǒng)架構(gòu)師的職業(yè)在工作內(nèi)容、工作職責(zé)以及工作邊界等方面還存在一定的模糊性和不確定性,但它確實(shí)是時(shí)代發(fā)展的需要,并正在實(shí)踐中不斷完善和成熟。

下面和大家聊一聊架構(gòu)師的幾個(gè)特點(diǎn)

架構(gòu)師,聽(tīng)起來(lái)是如此神秘的一個(gè)稱號(hào)。尤其是在開(kāi)發(fā)領(lǐng)域剛?cè)腴T(mén)不久的菜鳥(niǎo)級(jí)程序員眼中,架構(gòu)師都是高手,都是牛人,都是如此高高在上的存在。

不過(guò),在搞了四、五年編程之后,程序員們往往早已失去了當(dāng)年對(duì)這些“高級(jí)”職位的神秘感,甚至?xí)?duì)自己所在項(xiàng)目的架構(gòu)師抱怨不已,背后里稱他們是一群水王。所以有江南白衣曾撰文述說(shuō):“國(guó)內(nèi)的架構(gòu)師到了三十歲以后很多就往理論上跑,而國(guó)外的架構(gòu)師在往上發(fā)展的同時(shí)保持下面的編程體驗(yàn),所以國(guó)內(nèi)多水王,而國(guó)外則多大師?!?/p>

這就是我們今天這篇文章的論題:一個(gè)優(yōu)秀的軟件架構(gòu)師,首先一定是一個(gè)出色的程序員。

這句話按照Fred

George的話來(lái)說(shuō),那就是“不編程的架構(gòu)師的職業(yè)生涯是短暫的”。他說(shuō)這句話的背景主要是針對(duì)有些架構(gòu)師的設(shè)計(jì)與實(shí)現(xiàn)有斷層的問(wèn)題而言的,因?yàn)槿绻軜?gòu)師不去實(shí)踐,只是想當(dāng)然的認(rèn)為“沒(méi)問(wèn)題,這個(gè)想法能實(shí)現(xiàn)”,那么對(duì)于項(xiàng)目的落實(shí)而言是個(gè)很大的隱患。[支付寶架構(gòu)師馮大輝]也表示過(guò),架構(gòu)師是一個(gè)比較“虛”的崗位,主要的問(wèn)題都在“落地”的過(guò)程中。

而一個(gè)架構(gòu)師確認(rèn)一個(gè)想法究竟能不能落地的最直接的方法,就是自己編寫(xiě)代碼,嘗試“實(shí)現(xiàn)一個(gè)系統(tǒng)最難實(shí)現(xiàn)的一部分”(Fred

George)??纯碏red,他自己就是最好的示范:年紀(jì)一大把了,仍然每天都在編寫(xiě)代碼。事實(shí)上,我們可以列舉出一個(gè)長(zhǎng)長(zhǎng)的頂級(jí)架構(gòu)師的列表,你會(huì)發(fā)現(xiàn)他們沒(méi)有一個(gè)不是頂級(jí)的程序員。

我們可以列舉出一個(gè)長(zhǎng)長(zhǎng)的頂級(jí)架構(gòu)師的列表,你會(huì)發(fā)現(xiàn)他們沒(méi)有一個(gè)不是頂級(jí)的程序員

不過(guò)這在邏輯上或許沒(méi)有多少說(shuō)服力,因?yàn)樗坪踹@并不能證明一位資深架構(gòu)師憑自己的經(jīng)驗(yàn)感覺(jué)不能夠知道一個(gè)想法能不能落實(shí)。如果你覺(jué)得上面這些只是某些西方老頭兒對(duì)編程的古怪癖好,那么不妨看看eBay的架構(gòu)師[Randy

Shoup先生]是如何總結(jié)架構(gòu)師在項(xiàng)目中的職責(zé)的:

l 具備豐富的一線大中型開(kāi)發(fā)項(xiàng)目的整體規(guī)劃、方案設(shè)計(jì)及技術(shù)隊(duì)伍管理經(jīng)驗(yàn)。

l 具備軟件行業(yè)工作經(jīng)驗(yàn),熟悉業(yè)務(wù)領(lǐng)域的技術(shù)應(yīng)用和發(fā)展。

l 具有項(xiàng)目管理理論基礎(chǔ),并在應(yīng)用系統(tǒng)開(kāi)發(fā)平臺(tái)和項(xiàng)目管理上有實(shí)踐經(jīng)驗(yàn)。

l 對(duì)相關(guān)的技術(shù)標(biāo)準(zhǔn)有深刻的認(rèn)識(shí),對(duì)軟件工程標(biāo)準(zhǔn)規(guī)范有良好的把握。 具備C/S或B/S體系結(jié)構(gòu)或特定領(lǐng)域軟件產(chǎn)品開(kāi)發(fā)及架構(gòu)和設(shè)計(jì)的經(jīng)驗(yàn)。

l 具有面向?qū)ο蠓治觯∣bject-Oriented Analysis, OOA)、設(shè)計(jì)(OOD)、開(kāi)發(fā)(OOP)能力,精通UML和XML等,熟練使用Rational Rose、PowerDesigner等CASE工具進(jìn)行設(shè)計(jì)開(kāi)發(fā)。

l 對(duì)相關(guān)編程技術(shù)及整個(gè)解決方案有深刻的理解及熟練的應(yīng)用,并且精通架構(gòu)和設(shè)計(jì)模式,并在此基礎(chǔ)上設(shè)計(jì)產(chǎn)品框架。

l 精通大型數(shù)據(jù)庫(kù)如Oracle、Sql Server、MySQL等的開(kāi)發(fā)。l 對(duì)計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)和安全、應(yīng)用系統(tǒng)架構(gòu)等有全面的認(rèn)識(shí)。

l 良好的團(tuán)隊(duì)意識(shí)和寫(xiě)作精神,有較強(qiáng)的內(nèi)外溝通能力。

在這個(gè)過(guò)程中,一個(gè)架構(gòu)師至少有一半以上的工作是需要與開(kāi)發(fā)團(tuán)隊(duì)一起進(jìn)行的。按照Randy的描述,這是“一個(gè)架構(gòu)師不能將實(shí)施細(xì)節(jié)拋之腦后”的體現(xiàn)。而且與開(kāi)發(fā)團(tuán)隊(duì)一起工作,命令式的領(lǐng)導(dǎo)方式并不被推崇,一個(gè)架構(gòu)師必須通過(guò)自己的個(gè)人影響力來(lái)對(duì)開(kāi)發(fā)團(tuán)隊(duì)進(jìn)行指導(dǎo)工作。而什么是影響力?說(shuō)的直白一些,就是通過(guò)自己寫(xiě)代碼以及和其他成員一起寫(xiě)代碼,來(lái)指導(dǎo)團(tuán)隊(duì)成員實(shí)現(xiàn)每個(gè)架構(gòu)細(xì)節(jié)的思路。

只要稍微思考一下,就會(huì)明白此舉的重要性。如果一個(gè)架構(gòu)師靠命令管理開(kāi)發(fā)團(tuán)隊(duì),告訴他們“要實(shí)現(xiàn)這個(gè)模塊”,“要實(shí)現(xiàn)那個(gè)功能”,而團(tuán)隊(duì)也嘗試照辦??墒腔蛟S是架構(gòu)師的要求太高了,或許是團(tuán)隊(duì)的開(kāi)發(fā)實(shí)力不夠,團(tuán)隊(duì)成員便會(huì)向架構(gòu)師求助:您看這個(gè)我們不知道如何實(shí)現(xiàn),您能否指導(dǎo)一下?架構(gòu)師可能知道怎么處理,也可能沒(méi)有仔細(xì)思考過(guò)這個(gè)問(wèn)題,但又覺(jué)得自己做大事者不拘泥于小節(jié)也,于是一皺眉頭扔下一句:這是你們的事,你們自己解決!

然后就是矛盾的開(kāi)始了。架構(gòu)師只覺(jué)得團(tuán)隊(duì)技術(shù)不夠,而團(tuán)隊(duì)則對(duì)架構(gòu)師愈發(fā)不滿。項(xiàng)目黃了不說(shuō),開(kāi)發(fā)團(tuán)隊(duì)中也會(huì)傳出各種說(shuō)法,比如說(shuō)“此君其實(shí)是個(gè)一行代碼也不會(huì)寫(xiě)的大忽悠!”

做為系統(tǒng)架構(gòu)師,必須成為所在開(kāi)發(fā)團(tuán)隊(duì)的技術(shù)路線引導(dǎo)者;具有很強(qiáng)的系統(tǒng)思維的能力;需要從大量互相沖突的系統(tǒng)方法和工具中區(qū)分出哪些是有效的,哪些是無(wú)效的。架構(gòu)師應(yīng)當(dāng)是一個(gè)成熟的、豐富的、有經(jīng)驗(yàn)的、有良好教育的、學(xué)習(xí)快捷、善溝通和決策能力強(qiáng)的人。豐富是指他必須具有業(yè)務(wù)領(lǐng)域方面的工作知識(shí),知識(shí)來(lái)源于經(jīng)驗(yàn)或者教育。他必須廣泛了解各種技術(shù)并精通一種特定技術(shù),至少了解計(jì)算機(jī)通用技術(shù)以便確定哪種技術(shù)最優(yōu),或組織團(tuán)隊(duì)開(kāi)展技術(shù)評(píng)估。優(yōu)秀的架構(gòu)師能考慮并評(píng)估所有可能用來(lái)解決問(wèn)題的總體技術(shù)方案。需要良好的書(shū)面和口頭溝通技巧,一般通過(guò)可視化模型和小組討論來(lái)溝通指導(dǎo)團(tuán)隊(duì)確保開(kāi)發(fā)人員按照架構(gòu)建造系統(tǒng)。

因此,系統(tǒng)架構(gòu)師知識(shí)維度可以總結(jié)為“多層次+多方面”。所謂多層次,意味著系統(tǒng)架構(gòu)師必須在體系結(jié)構(gòu)、計(jì)算機(jī)軟硬件與網(wǎng)絡(luò)基礎(chǔ)知識(shí)、信息化基礎(chǔ)知識(shí)、信息安全與可靠性基礎(chǔ)知識(shí)等基本功的層面上受過(guò)良好的教育和快捷的學(xué)習(xí)能力;還須在系統(tǒng)架構(gòu)設(shè)計(jì)方法、設(shè)計(jì)模式、設(shè)計(jì)流程以及各種模型等方面有豐富的經(jīng)驗(yàn),廣泛了解各種構(gòu)件產(chǎn)品和技術(shù)并精通一種特定領(lǐng)域的架構(gòu)設(shè)計(jì);進(jìn)一步,還須在系統(tǒng)架構(gòu)設(shè)計(jì)實(shí)踐層面,有自己的認(rèn)識(shí)和理解,同時(shí)具有很強(qiáng)的表述能力;所謂多方面,意味著系統(tǒng)架構(gòu)師在每個(gè)知識(shí)層面上必須具有即使、管理、心理和藝術(shù)等多方面的知識(shí)和能力。這和系統(tǒng)架構(gòu)師的多角色特點(diǎn)是相關(guān)的。

在此我向大家推薦一個(gè)架構(gòu)學(xué)習(xí)交流群。交流學(xué)習(xí)群號(hào):

744642380,

里面會(huì)分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發(fā)、高性能、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化、分布式架構(gòu)等這些成為架構(gòu)師必備的知識(shí)體系。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源,目前受益良

工程化專題

(團(tuán)隊(duì)大于3個(gè)人之后,你需要去考慮團(tuán)隊(duì)合作,科學(xué)管理)

源碼分析專題

(好的程序員,一行代碼一個(gè)設(shè)計(jì)就能看出來(lái),源碼分析帶你品味代碼,感受架構(gòu))

3.高性能及分布式專題

(跟上技術(shù)節(jié)奏,擴(kuò)寬技術(shù)視野,程序員要往上提升,要有自己的技術(shù)工具箱和技術(shù)認(rèn)知。)

4.技術(shù)架構(gòu)專題

(真實(shí)案例分享,帶你領(lǐng)略大型項(xiàng)目風(fēng)采)

5.性能調(diào)優(yōu)

(追求高效、科學(xué)調(diào)優(yōu),不靠碰運(yùn)氣)

在此我向大家推薦一個(gè)架構(gòu)學(xué)習(xí)交流群。交流學(xué)習(xí)群號(hào):

744642380,

里面會(huì)分享一些資深架構(gòu)師錄制的視頻錄像:有Spring,MyBatis,Netty源碼分析,高并發(fā)、高性能、分布式、微服務(wù)架構(gòu)的原理,JVM性能優(yōu)化、分布式架構(gòu)等這些成為架構(gòu)師必備的知識(shí)體系。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源,目前受益良

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容