架構(gòu)師是近幾年來在國內(nèi)外迅速成長并發(fā)展良好的一個職業(yè)义郑,它對系統(tǒng)開發(fā)和信息化建設(shè)的重要性及給IT業(yè)所帶來的影響是不言而喻的。在我國,雖然系統(tǒng)架構(gòu)師的職業(yè)在工作內(nèi)容、工作職責(zé)以及工作邊界等方面還存在一定的模糊性和不確定性衷敌,但它確實是時代發(fā)展的需要,并正在實踐中不斷完善和成熟拓瞪。
下面和大家聊一聊架構(gòu)師的幾個特點
架構(gòu)師缴罗,聽起來是如此神秘的一個稱號。尤其是在開發(fā)領(lǐng)域剛?cè)腴T不久的菜鳥級程序員眼中祭埂,架構(gòu)師都是高手面氓,都是牛人,都是如此高高在上的存在。
不過舌界,在搞了四掘譬、五年編程之后,程序員們往往早已失去了當年對這些“高級”職位的神秘感禀横,甚至?xí)ψ约核陧椖康募軜?gòu)師抱怨不已屁药,背后里稱他們是一群水王粥血。所以有江南白衣曾撰文述說:“國內(nèi)的架構(gòu)師到了三十歲以后很多就往理論上跑柏锄,而國外的架構(gòu)師在往上發(fā)展的同時保持下面的編程體驗,所以國內(nèi)多水王复亏,而國外則多大師趾娃。”
這就是我們今天這篇文章的論題:一個優(yōu)秀的軟件架構(gòu)師缔御,首先一定是一個出色的程序員抬闷。
這句話按照Fred
George的話來說,那就是“不編程的架構(gòu)師的職業(yè)生涯是短暫的”耕突。他說這句話的背景主要是針對有些架構(gòu)師的設(shè)計與實現(xiàn)有斷層的問題而言的笤成,因為如果架構(gòu)師不去實踐,只是想當然的認為“沒問題眷茁,這個想法能實現(xiàn)”炕泳,那么對于項目的落實而言是個很大的隱患。[支付寶架構(gòu)師馮大輝]也表示過上祈,架構(gòu)師是一個比較“虛”的崗位培遵,主要的問題都在“落地”的過程中。
而一個架構(gòu)師確認一個想法究竟能不能落地的最直接的方法登刺,就是自己編寫代碼籽腕,嘗試“實現(xiàn)一個系統(tǒng)最難實現(xiàn)的一部分”(Fred
George)≈郊螅看看Fred皇耗,他自己就是最好的示范:年紀一大把了,仍然每天都在編寫代碼揍很。事實上郎楼,我們可以列舉出一個長長的頂級架構(gòu)師的列表,你會發(fā)現(xiàn)他們沒有一個不是頂級的程序員女轿。
我們可以列舉出一個長長的頂級架構(gòu)師的列表箭启,你會發(fā)現(xiàn)他們沒有一個不是頂級的程序員
不過這在邏輯上或許沒有多少說服力,因為似乎這并不能證明一位資深架構(gòu)師憑自己的經(jīng)驗感覺不能夠知道一個想法能不能落實蛉迹。如果你覺得上面這些只是某些西方老頭兒對編程的古怪癖好傅寡,那么不妨看看eBay的架構(gòu)師[Randy
Shoup先生]是如何總結(jié)架構(gòu)師在項目中的職責(zé)的:
l 具備豐富的一線大中型開發(fā)項目的整體規(guī)劃、方案設(shè)計及技術(shù)隊伍管理經(jīng)驗。
l 具備軟件行業(yè)工作經(jīng)驗荐操,熟悉業(yè)務(wù)領(lǐng)域的技術(shù)應(yīng)用和發(fā)展芜抒。
l 具有項目管理理論基礎(chǔ),并在應(yīng)用系統(tǒng)開發(fā)平臺和項目管理上有實踐經(jīng)驗托启。
l 對相關(guān)的技術(shù)標準有深刻的認識宅倒,對軟件工程標準規(guī)范有良好的把握。 具備C/S或B/S體系結(jié)構(gòu)或特定領(lǐng)域軟件產(chǎn)品開發(fā)及架構(gòu)和設(shè)計的經(jīng)驗屯耸。
l 具有面向?qū)ο蠓治觯∣bject-Oriented Analysis, OOA)拐迁、設(shè)計(OOD)、開發(fā)(OOP)能力疗绣,精通UML和XML等线召,熟練使用Rational Rose、PowerDesigner等CASE工具進行設(shè)計開發(fā)多矮。
l 對相關(guān)編程技術(shù)及整個解決方案有深刻的理解及熟練的應(yīng)用缓淹,并且精通架構(gòu)和設(shè)計模式,并在此基礎(chǔ)上設(shè)計產(chǎn)品框架塔逃。
l 精通大型數(shù)據(jù)庫如Oracle讯壶、Sql Server、MySQL等的開發(fā)湾盗。l 對計算機系統(tǒng)伏蚊、網(wǎng)絡(luò)和安全、應(yīng)用系統(tǒng)架構(gòu)等有全面的認識淹仑。
l 良好的團隊意識和寫作精神丙挽,有較強的內(nèi)外溝通能力。
在這個過程中匀借,一個架構(gòu)師至少有一半以上的工作是需要與開發(fā)團隊一起進行的颜阐。按照Randy的描述,這是“一個架構(gòu)師不能將實施細節(jié)拋之腦后”的體現(xiàn)吓肋。而且與開發(fā)團隊一起工作凳怨,命令式的領(lǐng)導(dǎo)方式并不被推崇,一個架構(gòu)師必須通過自己的個人影響力來對開發(fā)團隊進行指導(dǎo)工作是鬼。而什么是影響力肤舞?說的直白一些,就是通過自己寫代碼以及和其他成員一起寫代碼均蜜,來指導(dǎo)團隊成員實現(xiàn)每個架構(gòu)細節(jié)的思路思灌。
只要稍微思考一下链韭,就會明白此舉的重要性。如果一個架構(gòu)師靠命令管理開發(fā)團隊,告訴他們“要實現(xiàn)這個模塊”晋南,“要實現(xiàn)那個功能”,而團隊也嘗試照辦。可是或許是架構(gòu)師的要求太高了匪蟀,或許是團隊的開發(fā)實力不夠,團隊成員便會向架構(gòu)師求助:您看這個我們不知道如何實現(xiàn)宰僧,您能否指導(dǎo)一下材彪?架構(gòu)師可能知道怎么處理,也可能沒有仔細思考過這個問題琴儿,但又覺得自己做大事者不拘泥于小節(jié)也段化,于是一皺眉頭扔下一句:這是你們的事,你們自己解決凤类!
然后就是矛盾的開始了穗泵。架構(gòu)師只覺得團隊技術(shù)不夠普气,而團隊則對架構(gòu)師愈發(fā)不滿谜疤。項目黃了不說,開發(fā)團隊中也會傳出各種說法现诀,比如說“此君其實是個一行代碼也不會寫的大忽悠夷磕!”
做為系統(tǒng)架構(gòu)師,必須成為所在開發(fā)團隊的技術(shù)路線引導(dǎo)者仔沿;具有很強的系統(tǒng)思維的能力坐桩;需要從大量互相沖突的系統(tǒng)方法和工具中區(qū)分出哪些是有效的,哪些是無效的封锉。架構(gòu)師應(yīng)當是一個成熟的绵跷、豐富的、有經(jīng)驗的成福、有良好教育的碾局、學(xué)習(xí)快捷、善溝通和決策能力強的人奴艾。豐富是指他必須具有業(yè)務(wù)領(lǐng)域方面的工作知識净当,知識來源于經(jīng)驗或者教育。他必須廣泛了解各種技術(shù)并精通一種特定技術(shù)蕴潦,至少了解計算機通用技術(shù)以便確定哪種技術(shù)最優(yōu)像啼,或組織團隊開展技術(shù)評估。優(yōu)秀的架構(gòu)師能考慮并評估所有可能用來解決問題的總體技術(shù)方案潭苞。需要良好的書面和口頭溝通技巧忽冻,一般通過可視化模型和小組討論來溝通指導(dǎo)團隊確保開發(fā)人員按照架構(gòu)建造系統(tǒng)。
因此此疹,系統(tǒng)架構(gòu)師知識維度可以總結(jié)為“多層次+多方面”僧诚。所謂多層次蜜猾,意味著系統(tǒng)架構(gòu)師必須在體系結(jié)構(gòu)、計算機軟硬件與網(wǎng)絡(luò)基礎(chǔ)知識振诬、信息化基礎(chǔ)知識蹭睡、信息安全與可靠性基礎(chǔ)知識等基本功的層面上受過良好的教育和快捷的學(xué)習(xí)能力;還須在系統(tǒng)架構(gòu)設(shè)計方法赶么、設(shè)計模式肩豁、設(shè)計流程以及各種模型等方面有豐富的經(jīng)驗,廣泛了解各種構(gòu)件產(chǎn)品和技術(shù)并精通一種特定領(lǐng)域的架構(gòu)設(shè)計辫呻;進一步清钥,還須在系統(tǒng)架構(gòu)設(shè)計實踐層面,有自己的認識和理解放闺,同時具有很強的表述能力祟昭;所謂多方面,意味著系統(tǒng)架構(gòu)師在每個知識層面上必須具有即使怖侦、管理篡悟、心理和藝術(shù)等多方面的知識和能力。這和系統(tǒng)架構(gòu)師的多角色特點是相關(guān)的匾寝。
在此我向大家推薦一個架構(gòu)學(xué)習(xí)交流群搬葬。交流學(xué)習(xí)群號:
744642380,
里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring艳悔,MyBatis急凰,Netty源碼分析,高并發(fā)猜年、高性能抡锈、分布式、微服務(wù)架構(gòu)的原理乔外,JVM性能優(yōu)化床三、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費的學(xué)習(xí)資源袁稽,目前受益良
工程化專題
(團隊大于3個人之后勿璃,你需要去考慮團隊合作,科學(xué)管理)
源碼分析專題
(好的程序員推汽,一行代碼一個設(shè)計就能看出來,源碼分析帶你品味代碼补疑,感受架構(gòu))
3.高性能及分布式專題
(跟上技術(shù)節(jié)奏,擴寬技術(shù)視野,程序員要往上提升歹撒,要有自己的技術(shù)工具箱和技術(shù)認知莲组。)
4.技術(shù)架構(gòu)專題
(真實案例分享,帶你領(lǐng)略大型項目風(fēng)采)
5.性能調(diào)優(yōu)
(追求高效暖夭、科學(xué)調(diào)優(yōu)锹杈,不靠碰運氣)
在此我向大家推薦一個架構(gòu)學(xué)習(xí)交流群撵孤。交流學(xué)習(xí)群號:
744642380,
里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring竭望,MyBatis邪码,Netty源碼分析,高并發(fā)咬清、高性能闭专、分布式、微服務(wù)架構(gòu)的原理旧烧,JVM性能優(yōu)化影钉、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系。還能領(lǐng)取免費的學(xué)習(xí)資源掘剪,目前受益良