一個系統架構師的成長之路
成爲架構設計師是廣大開發者職業發展道路之一,架構師究竟是個什麼樣的職業?需要具備什麼基本能力?如何才能成爲一個優秀的架構設計師?一起來看看下面這位網友的成長之路!
來這家公司從事信息化工作已經有三個年頭了,有必要對這三年的工作和成長以及不足之處做一個總結。
剛來公司的時候,領導決策要將系統重新開發。有的是成熟的業務邏輯,老的搬過來就可以了。當然,由於隨着企業業務的發展,會有新的需求,但大部分的需求是不變的。
在項目的開發方面
沒有的是:
1.沒有熟悉JAVA的開發人員。
2.沒有J2EE項目的經驗。
有的是:
項目的開發、測試和維護經驗。
2.數據庫系統開發經驗。
上述便是我的團隊情況的簡要概況。項目總是要做的,因爲領導決策了啊。
先看上述兩個問題我們是如何解決的。
1.針對開發團隊沒有JAVA的開發經驗,進行培訓,由我親自操刀。培訓爲期15天,從開發環境熟悉,到JAVA基礎知識,上午半天講知識,下午上機練習。
2.針對沒有J2EE的項目經驗。
整個項目就我一個人有過J2EE的項目經驗,但是我以前沒有做過J2EE項目的架構師或管理人員,我只是做過開發,熟悉裏面的技術和開發技巧。怎麼辦?我們是這樣解決的,請老師。專門請了老師來講架構設計知識。這還不夠,我們花錢請人做架構設計。
但只是做架構設計,生成一個架構說明書後,離架構的工作還很遠,還有很長的路要走,而在合作公司做好架構設計後,他們的工作也就基本結束了。後面的架構的工作,基本上是由我來做的。
我說說我都做了什麼事情。
(1)按照架構說明書,將整個架構環境搭建起來。
(2)開發一套便於開發人員開發的開發框架。
(3)設計了Swing的MVC模式,並開發實現。
(4)開發了整個系統的基礎組件,爲了實現架構中的複用的原則,這個很重要。
(5)負責整個系統的權限的管理,這個很重要,跟各個模塊都有關係。
(6)負責開發的編碼規範的制定,包括JAVA的編碼的規範,同時還有質量屬性方面的編碼的規範。
上述,只有(1)是現成的,其它的都是具體的架構方面的工作。
很多人,都以爲,架構師嘛,不就是高高在上的,待在象牙塔裏給開發人員發號施令的人嗎?其實不然,架構師需要每天跟開發人員在一起,一起寫代碼,一起工作,一起交流。
回顧起,在搭建快速開發框架的過程中,開發人員在開發的過程中,提出了很多有意義的改進的意見,直到今時今日,我們還在改進。只有開明的架構師,才能夠設計出好的系統,好的基礎組件。當然沒有意義的,也被篩選掉的,架構師必須要有這樣的決斷力。
Swing的MVC模式就不說了,可能每個團隊對於該項設計都會有所不同。
說說如何實現組件的複用,要實現組件的複用,必須要鼓勵開發人員複用已有的組件以統一界面風格以及減少工作量。那麼,就要告訴開發人員,目前我們的系統有哪些基礎組件,他們都是怎麼樣使用或調用的。有了這些,開發人員自然就肯用了。
關於編碼規範,可能很多人覺得這是項目開發中的小事情,其實不然,某位架構大師說過,架構無小事,編碼規範的`執行不力,直接影響到整個項目的代碼質量,甚至影響質量。例如,要求不要出現在循環,要釋放對象,儘量用StringBuffer等。編碼規範的執行的難度是,不是說你有沒有規範,而是你的規範有沒有被執行。那麼如何使得你的規範被執行呢?
這就需要架構師的耐心和溝通能力了。在整個項目的開發過程中,架構師始終要保持與開發人員的溝通,苦口婆心地說,編碼規範的重要性。時間長了,開發人員養成了好的習慣,架構師也就省心了。
根據上述經驗,我做個總結。
1.架構師是整個團隊的技術領導,需要具備領導能力。
2.架構師需要較強的溝通能力,需要與項目的各個方面的人員進行溝通。
與項目經理溝通,幫助項目經理制定合理的開發計劃;
與需求分析員溝通,瞭解系統的關鍵需求和非功能性需求;
與開發人員溝通,使得架構設計能夠被真正執行;
另外還有與物理架構負責任溝通等等。
3.架構師需要編寫代碼,這樣使自己積累更多的代碼經驗,加深理解設計模式,可以幫助自己對於整個項目更加熟悉,同時能夠回答開發人員在開發過程中出現的所有的問題,樹立個人威信。
4.架構師需要有較強的IT知識和廣博的知識面。IT的知識更新非常快,現在雲計算等的出現,必然要淘汰一部分架構師,因此,架構師要保持生命力,必須要不斷地學習。
5.架構師要懂業務知識。架構設計要滿足系統的需求。我雖然剛到公司不久,但由於之前積累了很多業務相關的知識,經過短期的學習,也掌握了業務知識。
6.不要怕做事情,我在整個系統的開發過程中,我的開發量是別人的三倍還多,但我收穫的,則也是三倍還多的經驗。
自己的不足之處:
1.有時候會着急,當規範強調了10遍,還是沒有得到很好的執行時,就開始沒有耐心了。
2.需要加強溝通能力,將自己的想法能夠推銷出去。
3.需要在更多的業務領域知識方面得到快速的增長。
下一步的目標
1.系統理論地學習架構知識,使得知識更加固化,以進一步使得架構設計更加科學和有調理;
2.通過廣泛地閱讀學習企業信息化的各個方面的知識,包括ERP,SCM,營銷管理,企業戰略,企業管理等,每年看書或閱讀文章至少100本或篇;
3.熟悉企業的業務流程,與企業不同層次的人員多多地進行交流,多學習,多溝通;
4.多交朋友,多向朋友學習與交流。
相關文章
-
什麼是系統架構師-如何成爲系統架構師
系統架構師是在某一個技術領域有深刻專研的技術達人?還是在技術面上涉獵廣泛的通才?抑或有個五六年的工作經驗之後就自動變成了架構師?相信下面的文章對你的疑惑有所幫助!新入門或沒有架構設計經驗的程序員剛開始的時 -
系統架構設計師考試之路
爲什麼要報考系統架構設計師考試,這個考試有什麼用?對自己的職業會帶來什麼好處?我想有以下幾個方面:一、強迫自己,去系統學習軟件架構設計的理論,追蹤業界架構設計的發展動態。去學習新知識的動力有很多,可以說是爲了工作 -
架構師的成長之路
從程序員、高級程序員,再到架構師,這是所有架構師的必經之路,下面爲大家分享一位架構師的成長之路,希望對大家有所幫助!如何更高效地學習?很多新人程序員一開始在學習上找不到方向,但我想在渡過了一段時間的新手期之後這類 -
如何成爲一名系統架構師
系統構架師是近幾年來在國內外迅速成長並發展良好的一個職位,它的重要性及給 IT業所帶來的影響是不言而喻的。那麼如何成爲一名系統架構師呢?我們一起來學習學習網友的經驗! 前言:來這家公司從事信息化工作已經也有 -
如何成爲優秀的系統架構師
系統架構師的工作是複雜設計總體解決方案以及領域對象的邏輯和物理佈局,這是一項在複雜環境中高風險、高影響力的活動。那麼如何才能成爲一名優秀的系統架構師呢,一起來學習學習吧! 1、軟件架構的定義:軟件架構(Soft -
系統架構師、系統分析師和項目管理師的區別
系統架構師、系統分析師和項目管理師,也許我們都知道,但是他們之間有什麼區別和聯繫呢?我們一起來看看! 系統構架師與項目經理的關係及區別軟件項目經理是指對項目控制/管理,關注項目本身的進度、質量、分配、調動、 -
系統架構師知識:高可用系統設計
高可用系統設計,常見於大中型互聯繫統架構設計。下面爲大家整理了一些關於高可用系統設計的知識,一起來了解一下! 1、系統可用性系統可用性定義:MTTF/(MTTF+MTTR) * 100%MTTF: mean time to failure,平均失效前時間,也就 -
SOA體系架構下的企業系統集成
SOA不同於現有的分佈式技術之處在於大多數軟件商接受它並有可以實現SOA的平臺或應用程序。它伴隨着無處不在的標準,爲企業的現有資產或投資帶來了更好的重用性。它以藉助現有的應用來組合產生新服務的敏捷方式,提供給企 -
《系統架構設計師》第一章考點
不經意間,一個星期已經結束了,我們會積累一些相應的經驗,是時候仔細地寫一篇週記了。可是怎樣寫週記才能出彩呢?下面是小編爲大家收集的九年級週記9篇,僅供參考,歡迎大家閱讀。九年級週記 篇1“動力”這一詞,字典中說“比喻推動 -
基於安卓系統的移動辦公系統架構設計
將辦公應用程序安裝到使用Android平臺的智能手機中,這樣不但可以實現讓智能手機發揮同企業計算機基本相同的辦公功能,而且系統用戶的辦公,也不再拘泥於固定的辦公場所和計算機設備前即可以最終完成各項具體的工作和任務,