1. 程式人生 > >系統架構設計師-軟體水平考試(高階)-理論-架構風格

系統架構設計師-軟體水平考試(高階)-理論-架構風格

系統架構設計師-架構風格

 

 

前言:

看來非技術向的架構XMIND真的真的受歡迎啊。上一篇非技術類的閱讀量明顯高出平均水準好多。。。

但是,這次真的是系統架構師這個考試最有價值的技術類XMIND了。

如果感覺圖片模糊,請將圖片下載,或放大圖片。(圖片絕對清晰)

 

 

一,XMIND:

 

 

二,補充:

  日常補充一下。這個XMID真的不夠詳細,這個XMIND真的學習起來,夠人學習許久。每個分類都可以寫一本書,比如主要中介軟體又分RPC,RMI等等。表示,額,自己努力吧。

  系統架構風格,可以說是架構師考試的最閃耀的一塊兒了(想想這個資格叫什麼,架構師!!!)。架構的重要性不言而喻,記得曾經在那裡看到這樣一句話,不是架構師的程式設計師終將被淘汰。其所要表達的是,只有走到了架構師這個層次,你才可以把握技術的發展思想與脈搏,躋身於IT技術的一線。

  其實,這句話也沒說錯。因為絕大部分程式設計師大多分兩種情況。一者,身處中小公司,處理的系統往往陳舊(由於公司資金不足,技術被不重視等原因),不健全,乃至畸形。這樣的系統無法為維護它的程式設計師帶來主流技術的認識等,使得這些程式設計師缺乏成長的土壤。二者,身處大公司,往往能接觸到大系統,主流技術(當然也不絕對,也有部分公司的部分系統還是採用陳舊,乃至淘汰的技術。至於原因,以後有機會再談),但是往往自己負責的一個非常小的塊,難以管中窺豹,瞭解系統架構。當然,也不是沒有出頭之路的(否則那來的架構師)。前者,需要的是多詢問自己,如果系統遇到各種情況,如何解決(效能瓶頸,部署問題,可靠性等質量屬性問題或非功能需求問題)。這個時候,我就可以安利一波書籍了。推薦《盡在雙11:阿里巴巴技術演進與超越》,《大型網站系統與JAVA中介軟體實踐》,《大型網站技術架構演進與效能優化》(就是該系列第一篇部落格裡推薦的書籍),這些書籍大多從系統演進(從單機伺服器到分散式叢集伺服器等)與發展主題(效能,可靠性,安全性等)兩個維度解讀了現有系統與架構。後者,需要的則是按圖索驥,多看,多問,多學習。後者相對前者,已經有了一個很好的模板放在眼前(雖然自己不一定能拿到太多程式碼),但是你可以問啊。不同於中小公司程式設計師多是野路子(不是野路子,也會漸漸變成野路子)。後者的上司大多有著更為廣闊的視野(也許在某些具體領域不如你,但請不要輕視他,耐心多相處相處,你就會發現他的好),更為專精的領域,更為友好的管理等,這些都值得後者去問,去學習。

  當然,這些都是日常,還有一個方式和一個機遇告訴大家。程式設計師怎樣怎樣快速提升自我價值和收入(別說我俗,不考慮這個,你哪來的錢去買書,報班,買伺服器.etc),那就是跳槽。沒錯,就是跳槽。可能有些人會很抵觸這種行為,認為跳槽是一種背叛老東家的行為。其實,剛畢業的時候,我也是這樣想的(而且我是一個很懶,很不想動的人)。直到我連續被東家賣了幾次,我才得出一個寶貴經驗。你把老東家當兄弟,老東家只是把你當作機器或者商品(當然這只是大部分情況,我也遇到可以談感情的東家,然後他的公司倒閉了,倒閉了。。。)。我表哥就是清晰地認識到這點。他是在卡內基梅隆大學讀的研究生,研究生畢業就拋棄了他的實習東家,進了甲骨文。緊接著不到一年,又跳槽進了谷歌。他給了我一句話,程式設計師,不跳槽怎麼漲工資,怎麼提升工作環境(當時不懂,唉)。所以,不要有心理包袱。想要和別人談感情,先想想,別人怎麼看待你的。至於機遇嘛,就是公司系統實在撐不下去了,必須要更新換代了。這個情況是肯定有的,雖然比較難遇到。。。這個時候,你要做的就是兩點:第一,平時多表現一點自己的能力和對新知識的認識(尤其,當你提到要做新系統了,新系統要使用memcache技術,立馬去看,去學。如果不用,就當多學了點);第二,一定要充分,堅決,不要臉地擠進開發組(該爭取的時候,還是要爭取的)。說實話,新系統的開發一定是很辛苦的(常常是數月,乃至一年多的加班時間),但是學到的東西,是平時完全學不到的。另外,切記要總結,總結,總結。如果這個時候,你還依舊只是站在以往的視野,機械地擼程式碼。我只能說,還是放棄吧。因為新系統開發的時候,你所接受的知識衝擊還是有的,去總結,去適應。另外,這個時候,你也可以多問問你的上司(專門的問題,問專門的人,不過別忘了本職工作)。要說的太多,有機會,以後再說吧。

  話題拉回來,還是從考試和實踐兩個角度來談。考試方面,架構風格屬於考試核心,分值最高,多達25分左右,並且每次案例與論文都有這方面主題。實踐方面,前面那句話我就不提了。只想說,學會這個,起碼以後你看系統的眼光變了。懂得從大局分析問題了,能夠明白一些原本你認為不合理的地方為什麼那樣做了。再深點說,你提高了你的抽象能力,提高了你在程式設計方面的學習能力(我一直認為,從上而下,從下而上,兩路進發,都是學習的好路子,效果嘛,看情況的)。學習能力才是最重要的,因為技能是可能隨著時代發展而被拋棄,而學習能力,專業學習能力的提升才是長久的(思想不提)。

  這次說得有點多,有點亂。算是一不小心,有感而發?希望對大家有所幫助。