架構師 如何從夢想變成現實?
這個題目,不是標題黨,也不是為了給出答案,而是自問,寫出來一些看法,和自己對未來幾個月的規劃,當然更加希望同僚能多提意見或建議。
很久之前,從大學畢業開始,自己就一直做著“成為一個架構師”的夢,并且也在磕磕碰碰中前進和提升。但到現在已經工作了5年,卻也還是不如人意。
從最開始做技術支持,到碼工,到高級碼工啥的,角色好像變了,但總是覺得有非常非常多的東西要學,要不斷地歷練。到現在再換了一個環境之后,心里真是更加清楚自己到底有幾斤幾兩。不能全面否定自己的進取,應該說來,自己對架構師的角色越來越清晰吧。
首先說說自己到底想成為哪個方面的架構師。因為一直從事跟web相關的工作,什么前端,后端的開發都做過,所以,自己就想成為一個web開發的軟件架構師。當然因為主要用java,也毫無疑問要跟java有關的工程。
從哪些方面出發呢?在這5年的工作中,有兩到三年實際上跟開發有點脫鉤,我沒有好好開發,總是丟三落四的承擔一點點開發工作(因為要帶團隊,有些身不由己)。總是會在靜坐時清醒一些,想想自己應該干什么。終于在去年離開老公司,進入新環境,也更加清晰地認識到自己應該再從哪些領域著手提高:
1.針對業務或者是產品,以及工程或產品的生命周期選擇開發語言和開發框架。
必須強調的是,任何架構,都不能脫離產品或工程需要而存在。盡管很多成熟框架可以在很多地方使用,那也是要針對特定的情況而言。而需求永遠都是我們首先要考慮的,否則就會影響我們的判斷。就像孫子定的是36計,而不是僅有一計,道理相同。只要你符合具體需求,哪怕是自己寫的框架也是最成功的(DDD強調業務領域的重要性)。
用了幾年java,說實話,沒有java實現不了的,但是對一些實現,成本是很高的。就目前來看,java之于web開發,還是相當強勁的,因為有很多第三方軟件的支持。從這個角度講,可以給公司節約很多成本,但是java世界的開源環境是一個大而雜的生態狀況,正如當今社會的魚龍現狀。于是,個人覺得應該再學習一至兩門其他語言,用于針對不同的問題,實施不同的解決方案,而不是手里拿著錘子,看啥都像釘子。
因為接觸的項目90%以上是java開發,所以,要對java相關的技術了如指掌,包括:jvm(尤其是6,7兩版)、java api、web容器、設計模式、開源框架(如spring,guice等),重構技術等。
了解jvm,是要清楚java的底層實現,避免寫出易于出錯,或效率過低的代碼。Java原產地的人總是很注重對基礎信息的把握,但是我們卻總是急于求成。
熟練掌握好api,是使用一門語言最開始就要達到的要求。因為java的底層實現是很優秀的,除非有特殊的效率等方面的需求,java中給我們的任何操作都提供了大量唾手可得的類和方法。尤其要熟練掌握的有:集合、io&nio、多線程等幾個常用包。
web容器重要性盡人(開發同僚)皆知。至少要了解一到兩個容器吧。(還是太少,開源的就得兩三個,企業版的如weblogic,websphere直流的也應該會搭建,會部署,了解一些調優知識)
設計模式,應該在學習框架之前,最好是學過之后,再去看框架,因為很多框架中用了大量的經典模式,spring就是其中一個極為牛X的牛叉框架。我忍不住再說一次,這是個牛叉框架,在用spring之前,最好把Johnson的那邊expert one on one弄來看看,我是看電子書,書有些老,挑其中關鍵點讀,很受用。
重構,對java來說,尤其是可持續發展的java工程來說,是永遠都不可避免的一種開發行為,有必要把Fowler的那本書好好啃啃。
2.深入了解存儲。
要掌握關于緩存,數據庫相關的知識。這點不想多談,就是想讓自己在數據庫調優及數據庫建模方面有所建樹。涉及的數據庫也不多,oracle和mysql。而緩存方面,因為本身這個世界就是百家爭鳴百花齊放,所以,應該多了解如ttserver,memcache之類的文件或內存緩存實現。
知道存儲,就要將其融于架構。讓最大的讀取壓力集中到緩存,而把僅有的寫操作施加于數據庫,這種決策不是說了這么一兩句就能搞定的。甚至這些是java架構調優的重中之重。
3.了解網絡傳輸。
在分布式系統如此風靡的今天,要是不了解分布式,那我們的軟件就固步自封了,同時也會給我們的硬件帶來很大的壓力,增加公司成本。在這個方面,很希望能從各位同仁處,得到些許建議。
4.熟悉操作系統。
Linux。
越寫心里越是驚嘆不已。因為真的有很多東西要掌握,而無法突出重點。
回看過去的5年,心里也很惆悵,曾經壯志凌云,今朝卻有迷茫。不管怎么樣,一個步子一個步子地邁出去。既然需要學,那就學。第一個5年已經過去,盡管不想俺們黨說的第一個五年計劃成果那么顯著,至少也看到了自己的成長。
希望在此駐步觀望的同仁,能留下些許箴言,兄弟拜謝。
原文鏈接:http://www.cnblogs.com/ericchen/archive/2011/06/29/2093784.html
【編輯推薦】