架構(gòu)師要努力成為內(nèi)功深厚的高手
原創(chuàng)【51CTO獨(dú)家特稿】一聽到架構(gòu)師,首先便想到的是在一間寬敞的房間中間坐著一位衣著得體的中年男人,望著落地窗外的風(fēng)景凝思,萬千思緒在腦海里翻騰,頗有運(yùn)籌帷幄千里外的氣勢。程序員究竟是做架構(gòu)師還是項(xiàng)目經(jīng)理,最近看到微軟潘正磊女士的一篇博文,給出了一些啟示。
#T#
51CTO開發(fā)頻道年終巨獻(xiàn):架構(gòu)師最怕程序員知道的十件事
“當(dāng)時(shí)我們團(tuán)隊(duì)來了一位剛被提拔的開發(fā)經(jīng)理,每次當(dāng)我陳述完一個(gè)問題,他都會(huì)迫不及待地提出他的解決方案。在這之后很長的一段時(shí)間,他還是一直習(xí)慣性地建議我如何如何處理問題。通過平日的觀察,我也發(fā)現(xiàn)他更喜歡花時(shí)間對(duì)技術(shù)和產(chǎn)品進(jìn)行深度探討,而非團(tuán)隊(duì)管理。于是幾個(gè)月后,我找了一個(gè)機(jī)會(huì)跟他說,“我覺得你做軟件架構(gòu)師說不定會(huì)更有意思?!倍约阂灿X得這個(gè)建議不錯(cuò)。幾個(gè)星期后,他真的轉(zhuǎn)去做架構(gòu)師的工作,我們團(tuán)隊(duì)也迎來了一個(gè)新的開發(fā)經(jīng)理?!?/P>
這個(gè)例子中體現(xiàn)出來的正是架構(gòu)師深厚的技術(shù)底蘊(yùn),或許很多程序員更向往項(xiàng)目經(jīng)理的職位。從上面我們可以看出,程序員在平時(shí)的培養(yǎng)過程中還是過于看重技術(shù)處理細(xì)節(jié),而不喜歡管理。這樣看來,成為架構(gòu)師還是更多程序員的最終歸屬,盡管項(xiàng)目經(jīng)理的頭銜看起來是更吸引人,但是架構(gòu)師作為一個(gè)純技術(shù)性崗位,更適合廣大的程序員。
修煉內(nèi)功不等于死鉆開發(fā)技術(shù)
講到內(nèi)功深厚,大家心想“那我就往死里鉆研技術(shù),不就完了?”。確實(shí),很多人理解的內(nèi)力就是開發(fā)技術(shù),包括語言的掌握、對(duì)框架的掌握、數(shù)據(jù)庫管理能力、安全管理能力等等。但是我們看到,架構(gòu)更多的內(nèi)力體現(xiàn)在對(duì)技術(shù)的綜合運(yùn)用上,光會(huì)編程的程序員,最多就能做到高級(jí)程序員,也就是技術(shù)實(shí)現(xiàn)上的高手。
51CTO編輯在對(duì)高級(jí)架構(gòu)師王翔先生的采訪中,曾提到這樣一個(gè)問題“假設(shè)有三名優(yōu)秀的程序員,A尤其擅長溝通與團(tuán)隊(duì)管理;B的編程功底深厚,且對(duì)新技術(shù)能快速掌握;C在邏輯思維和抽象能力方面表現(xiàn)優(yōu)秀。您會(huì)重點(diǎn)培養(yǎng)哪位程序員成為架構(gòu)師?”
王翔的回答是這樣的“C,后面依次遞減是B、A。A更適合做項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理。而且根據(jù)個(gè)人的經(jīng)驗(yàn),雖然女性程序員開發(fā)階段顯得不如男性那么快深入和入手(Programmer),但能堅(jiān)持到Developer、S. Developer、 Designer、S. Desinger階段她們的思維能力優(yōu)勢就顯示出來。如果B是女性Desinger級(jí)別的人員,我寧愿選擇培養(yǎng)她,因?yàn)榧軜?gòu)師在創(chuàng)造性、知識(shí)匯總方面根據(jù)個(gè)人經(jīng)驗(yàn)似乎女性更適合。”這里我們看到,內(nèi)力更多的是一種思考能力,結(jié)合技術(shù)的思考能力。光有程序開發(fā)的能力,不會(huì)思考,那只能做個(gè)代碼狂人。只思考而沒有腳踏實(shí)地的技術(shù)開發(fā)能力,那就是忽悠人的表現(xiàn),更不招人喜歡。
內(nèi)功的修煉第一層,自然是開發(fā)技術(shù)的培養(yǎng)。從寫第一行代碼開始,就多想為什么,有沒有什么其他的路徑能實(shí)現(xiàn)同樣的功能。當(dāng)我們寫了很長時(shí)間代碼了,是不是就該考慮更多的問題,比如優(yōu)化、預(yù)期未來。其次是對(duì)架構(gòu)的熟悉,下面是大家比較熟悉的Struts 2架構(gòu)圖。要做一名優(yōu)秀的架構(gòu)師,就得對(duì)各種架構(gòu)做到了熟于心。
更高層次的修煉,就在于不同技術(shù)的學(xué)習(xí)。要懂得數(shù)據(jù)庫知識(shí),懂得安全監(jiān)控方面的知識(shí),還要懂得網(wǎng)絡(luò)構(gòu)建方面的知識(shí)。這是比較高層次的內(nèi)功修煉,很有可能與程序員目前所處的開發(fā)環(huán)境關(guān)系不大,對(duì)程序員來說并不是什么有用的東西。但一個(gè)優(yōu)秀的架構(gòu)師必須懂得這些,才能更好地抽象軟件的使用環(huán)境,選擇符合需要的架構(gòu)以及開發(fā)模式。
本文為《架構(gòu)師害怕程序員知道的十項(xiàng)技能》中的內(nèi)力篇