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