系統架構師應該掌握什麼

我要成爲一個軟件架構師。對一個年輕的工程師來說,這是一個很好的目標。那麼要成爲系統架構師,應該掌握什麼呢?

系統架構師應該掌握什麼

  架構師首先必須要了解需求和業務,架構師必須接地氣。

不瞭解需求的架構師,就去設計架構,指揮大家幹活,純粹是耍流氓。架構雖然不是產品經理,但是產品最終都是服務客戶的。如果架構師只懂技術,不考慮需求,做出的系統可能是高大上,但是用戶不一定買賬,那就是一個失敗的產品了。

  其次,架構師需要定義架構。

搞清楚需求後,下一步就是思考,如何解決這些需求並定義它的架構。架構定義過程讓你想清楚你打算怎麼在兼顧需求和限制的情況下把問題解決好。架構定義是將結構,方針,原則和領導力引入軟件項目的技術層面。

  第三,架構師還需要進行技術選型,選擇哪種技術來支持業務的實現。

這裏注意的是,不一定要選擇那些潮流技術,選擇什麼技術,要看自己的場景。有時候,選擇一些最原始的技術,沒準更適合自己的業務場景。技術選型是很重要的,選擇正確的技術,就能事半功倍。如果選擇不好,那麼就會欠技術債務,不僅影響產品的開發週期,還會影響產品的穩定性。

  第四,架構師需要進行架構協作。

這裏的架構協作,不僅僅指技術方面了。一個好的產品,牽涉到很多人即“項目干係人”,要想讓一個軟件項目成功,需要所有的系統干係人緊密協作來保證架構和所在的環境很好的集成。

  第五,架構師還可以參與一些設計,開發,測試的工作。

還是那句話,架構師要接地氣。真正去使用自己的產品,不僅能對產品進度很好地把握,還能在使用中發現產品架構存在的問題,及時修補和調整。另外,這樣做的另外一個好處,就是架構師能夠真正融入團隊,並不是高高在上的。這不僅不會削弱你的權威,相反,能夠讓下屬更尊重你,這也是領導力養成的一個重要途徑。

最後在招聘網站摘錄了一些對架構師的要求,供大家參考,希望有這個目標的小夥伴,不斷努力,早日實現。

熟悉分佈式、高性能架構和開發技術,如分佈式應用開發、數據分佈式管理和同步等;

精通J2EE系統架構,深刻理解J2EE架構的優缺點,具有大型基於J2EE體系結構的項目規劃、系統架構設計、開發經驗,精通j2ee設計模式;

深刻理解軟件系統架構,精通面向對象分析設計方法,邏輯能力佳,具有豐富的OOA、OOD、OOP、UML及SOA經驗,精通RationalRose、PowerDesigner等設計工具;

技術視野廣闊,具有良好的前瞻性,思路清晰、邏輯性強,對移動支付和互聯網支付的相關技術具有優秀的'領悟力和前瞻性,有較強的業務分析能力;

良好的溝通能力、團隊合作精神和服務意識;認真負責、具有高度責任感和敬業精神;

對於性能瓶頸可以給出最優的切片,集羣和分佈式服務器搭建解決方案

理解面向對象分析和設計的基本原則,熟悉常用的設計模式,熟悉UML;

熟悉Java的多線程,線程與線程,進程與進程的通信機制;

精通系統優化,對系統優化原理有深入的理解。對系統端到端性能優化有豐富的實踐經驗,熟悉各種遠程本地Cache組件(尤其是Memcached,Redis),對Cache服務器集羣架構有豐富的經驗;