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