WEB架構(gòu)師成長之路之三:架構(gòu)師都要懂哪些知識
Web架構(gòu)師究竟都要學(xué)些什么?具備哪些能力呢?先網(wǎng)上查查架構(gòu)師的大概的定義,參見架構(gòu)師修煉之道這篇文章,寫的還不錯(cuò),再查查公司招聘Web架構(gòu)師的要求。 總結(jié)起來大概有下面幾點(diǎn)技能要求:
一、 架構(gòu)師有優(yōu)秀的編碼能力,解決開發(fā)人員無法解決的難題。
二、 架構(gòu)師對系統(tǒng)的大數(shù)據(jù)容量高性能高并發(fā)高容錯(cuò)的網(wǎng)站有架構(gòu)設(shè)計(jì)和開發(fā)經(jīng)驗(yàn)。
三、 架構(gòu)師對操作系統(tǒng)、數(shù)據(jù)庫、服務(wù)器各種軟件使用的配置比較了解,比如Linux、Web負(fù)載均衡、反向代理、數(shù)據(jù)庫集群、容災(zāi)等比較了解。
四、 架構(gòu)師對軟件開發(fā)過程有清晰明確的認(rèn)識,也就是對軟件工程有有明確的認(rèn)識,并能把需求進(jìn)行分析、建模。
五、 架構(gòu)師學(xué)習(xí)能力很強(qiáng)、接觸知識面要很寬廣、喜歡關(guān)注和接觸各種新的技術(shù)。
六、 架構(gòu)師溝通能力很強(qiáng)。
七、 架構(gòu)師對從事的行業(yè)的業(yè)務(wù)要有深刻的了解。
換個(gè)角度看看這些要求把:
第一條要求你是個(gè)優(yōu)秀的程序員。
第二、第三條要求你要懂DBA,運(yùn)維都需要懂的知識。
第四條要求你是個(gè)項(xiàng)目經(jīng)理。
第五條要求你是個(gè)技術(shù)全才,不僅學(xué)的要深,還要學(xué)的廣。
第六條、第七條要求你熟悉公司業(yè)務(wù)人員、產(chǎn)品人員要懂的知識。
這個(gè)要求太高了,架構(gòu)師就相當(dāng)于戰(zhàn)爭中的司令員的位置,是整個(gè)團(tuán)隊(duì)的核心和靈魂,這種技術(shù)要求甚至技術(shù)總監(jiān)和CEO都不具備,唯一要求少點(diǎn)的就是管理能力,如果再具備管理能力,那就甚至能超過技術(shù)總監(jiān)和CTO了,而中國不乏管理人才,怪不得有人總結(jié)說,中國沒有合格的架構(gòu)師呢,也難怪,大概算一算,這種要求相當(dāng)于一個(gè)人學(xué)6個(gè)人的知識,并且都能達(dá)到專業(yè)的水平,這就意味著你的領(lǐng)悟能力和學(xué)習(xí)能力,要高于常人幾倍!所以說,成為架構(gòu)師確實(shí)需要天分啊。
再具體到.NET架構(gòu)師,我歸納一下要學(xué)的知識:
成為優(yōu)秀程序員,需要學(xué)好的知識:
1、 面向?qū)ο缶幊?、UML畫圖、設(shè)計(jì)模式、代碼重構(gòu)
2、 常用ORM工具
3、 MVC,WCF,XMl, JQuery ,SQL以及性能優(yōu)化
4、 FrameWork一些深入的知識
5、 高性能代碼,比如靜態(tài)化,MemCached等手段。
6、 最好也了解一些其他語言,比如Java,PHP等。
成為DBA,需要學(xué)好的知識:
1、 常用數(shù)據(jù)庫,MSSQL、MySQL、Oracle,性能調(diào)優(yōu)熟練,備份、負(fù)載均衡、集群、容災(zāi)熟練
2、 大數(shù)據(jù)量處理熟練
3、 各種數(shù)據(jù)庫監(jiān)控軟件
成為運(yùn)維,需要學(xué)好的知識:
1、 各種Web負(fù)載均衡的硬件,比如F5,軟件,比如Nginx等原理和配置
2、 反向代理加速,比如SquID等
3、 操作系統(tǒng),Linux是必須懂的,各種好的工具都在Linux下。
4、 各種性能監(jiān)控軟件。
成為產(chǎn)品和業(yè)務(wù)以及項(xiàng)目經(jīng)理,需要學(xué)好的知識:
1、 溝通和理解能力。
2、 該行業(yè)和本公司的業(yè)務(wù)邏輯。
3、 軟件工程的知識。
4、 質(zhì)量控制、進(jìn)度控制、人員組織等。
看來想成為合格的Web架構(gòu)師,需要學(xué)太多東西了,只有一條路可走--持續(xù)不斷的修煉和學(xué)習(xí)。
另外學(xué)習(xí)中,采用先深后廣的策略是明智的選擇,一門學(xué)深了,其他知識可能都會融會貫通,那樣比較的學(xué)起來會很快。否則可能陷入知識的海洋里,沒準(zhǔn)淹死了。
總體的看來,Web架構(gòu),分為服務(wù)器架構(gòu)和程序架構(gòu)兩個(gè)方面的架構(gòu),一般的Web架構(gòu)師還是偏向程序架構(gòu),因此學(xué)好語言,程序架構(gòu)是基礎(chǔ),學(xué)好了這些,做一個(gè)合格的架構(gòu)師沒大問題,畢竟DBA,運(yùn)維的東西在公司都有專業(yè)的人在干。
所以深度還是要深入學(xué)習(xí)編程的知識、軟件架構(gòu)知識,有了這個(gè)基礎(chǔ)后,Web架構(gòu)師應(yīng)該在大數(shù)據(jù)量、高并發(fā)、高負(fù)載、以及高容錯(cuò)方向再有所了解和涉及,再返過來促進(jìn)我們對軟件架構(gòu)的思考,這種深-廣-深-廣的模式是我們學(xué)習(xí)的方法,只要堅(jiān)持不懈努力幾年,做真正合格的Web架構(gòu)師是沒大問題的。
另外由于學(xué)東西太多,在學(xué)習(xí)中也要和其他架構(gòu)師多交流、共同進(jìn)步,多參考其他架構(gòu)師的杰作,是很明智的選擇。
原文鏈接:http://www.cnblogs.com/vance/archive/2013/04/17/3025993.html