糯米文學吧

位置:首頁 > 職業 > 系統架構師

如何成為一名系統架構師

系統構架師是近幾年來在國內外迅速成長並發展良好的一個職位,它的重要性及給 IT業所帶來的影響是不言而喻的。那麼如何成為一名系統架構師呢?我們一起來學習學習網友的經驗!

如何成為一名系統架構師

  前言:

來這家公司從事資訊化工作已經也有三個年頭了,有必要對這三年的工作和成長以及不足之處做一個總結。在此之前,從2001年開始學習Java,那時候用Struts的開發的企業也不多,而我在的做專案的企業當時已經自己開發了Struts的快速開發平臺,專門做對日軟體外包的專案,在這家公司工作,培養了我JAVA基礎知識,軟體工程的認識以及專案管理的知識。隨後博士畢業後去了一家外企做了4年的IT系統整合研究,主要用Eclipse Plugin搭建研究專案的驗證的Prototype,期間研究了SOA,SSH,LDAP,Web服務發現等技術。

剛來這家公司的時候,領導決策要將系統做重建開發。專案的具體情況是:我們擁有了成熟的業務功能,只要將老的系統的功能照搬到新的系統中,因此,對於老的系統進行了一次整理和分析,分析了合理的地方,也分析了不合理的地方,不合理的地方,希望在新系統中進行改進,但原則上,資料庫表結構不做大的改動,以免將給將來系統遷移帶來重大困難。當然,由於隨著企業的業務的發展,會有新的需求,但大部分的需求都是沒有改變的。

  在專案的成員實力方面

沒有的是:

1.熟悉JAVA的開發人員。

2.J2EE專案的經驗。

有的.是:

專案的開發、測試和維護經驗。

2.資料庫系統開發經驗。(其實很重要的,資料庫系統對於企業應用來說,資料也是很關鍵的,擁有這樣面的經驗,為專案的後續開發提供了不少的經驗支援)

在專案的初期階段還碰到了技術選型的問題,根據應用的特點,最終選擇了C/S三層結構,並選用標準的EJB 3.0作為中間層,採用成熟的商用中介軟體伺服器,這樣就解決了ORM,資料持久化等問題,這樣便確定了技術方向,這對於沒有經驗的團隊來說,也是艱難的。

上述便是我團隊的情況的簡要概況。專案總是要做的,因為領導決策了啊。先看上述兩個問題我們是如何解決的。

1.針對開發團隊沒有JAVA的開發經驗,進行培訓,由我親自操刀。培訓為期15天,從開發環境熟悉,到JAVA基礎知識,上午半天講知識,下午上機練習。

2.針對沒有J2EE的專案經驗。

整個專案就我一個人有過J2EE的專案經驗,但是我以前沒有做過J2EE專案的架構師至少沒有做過如此大型專案的,我只是做過J2EE專案的開發(B/S的,而本次專案是客戶端)並瞭解軟體工程、面向物件的設計、設計模式等。怎麼辦?我們是這樣解決的,請老師。專門請了老師來講架構設計知識。這還不夠,我們花錢請人做架構設計。但只是做架構設計,生成一個架構說明書後,離架構的工作還很遠,還有很長的路要走,而在合作公司做好架構設計後,他們的工作也就基本結束了。後面的架構方面的工作,基本上是由我來做的。我說說我都做了什麼事情。

(1)按照架構說明書,將整個架構環境搭建起來。

(2)開發一套便於開發人員開發的開發框架。

(3)設計了Swing的MVC模式,並開發實現。

(4)開發了整個系統的基礎元件,為了實現架構中的複用的原則,這個很重要。

(5)負責整個系統的許可權的管理,這個很重要,跟各個模組都有關係。

(6)負責開發的編碼規範的制定,包括JAVA的編碼的規範,同時還有質量屬性方面的編碼的規範。

(7)整個系統的異常處理、日誌、錯誤驗證等機制的設計和開發;

(8)第三方系統和工具的整合,如報表系統,瀏覽工具的整合等;

上述,只有(1)是現成的。其它的都是具體的架構方面的工作。很多人,都以為,架構師嘛,不就是高高在上的,待在象牙塔裡給開發人員發號施令的人嗎?其實不然,架構師需要每天跟開發人員在一起,一起寫程式碼,一起工作,一起交流。

回顧起,在搭建快速開發框架的過程中,開發人員在開發的過程中,提出了很多有意義的改進的意見,直到今時今日,我們還在改進,只有開明的架構師,才能夠設計出好的系統,好的基礎元件。當然沒有意義的,也被篩選掉的,架構師必須要有這樣的決斷力。

Swing的MVC模式就不說了,可能每個團隊對於該項設計都會有所不同。

說說如何實現元件的複用,要實現元件的複用,必須要鼓勵開發人員複用已有的元件以統一介面風格以及減少工作量。那麼,就要告訴開發人員,目前我們的系統有哪些基礎元件,他們都是怎麼樣使用或呼叫的。有了這些,開發人員自然就肯用了。

關於編碼規範,可能很多人覺得這是專案開發中的小事情,其實不然,某位架構大師說過,架構無小事,編碼規範的執行不力,直接影響到整個專案的程式碼質量,甚至影響質量。例如,要求不要出現在迴圈,要釋放物件,儘量用StringBuffer等。在編碼規範的執行的難度是,不是說你有沒有規範,而是你的規範有沒有被執行。那麼如何使得你的規範被執行呢?

這就需要架構師的耐心和溝通能力了。在整個專案的開發過程中,架構師始終要保持與開發人員的溝通,苦口婆心地說,編碼規範的重要性。時間長了,開發人員養成了好的習慣,架構師也就省心了。

  根據上述經驗,做個總結。

1.經驗是可以複製的,當您沒有這方面的人員時,最好請求專業或外援,並培養自己的人員,同時有吸收的學習。

2.架構師是整個團隊的技術領導,需要具備領導能力。

3.架構師需要較強的溝通能力,需要與專案的各個方面的人員進行溝通,與專案經理溝通,幫助專案經理制定合理的開發計劃;與需求分析員溝通,瞭解系統的關鍵需求和非功能性需求;與開發人員溝通,使得架構設計能夠被真正執行;另外還有與專案經理、物理架構負責人溝通等等。

4.架構師需要編寫程式碼,這樣使自己積累更多的程式碼經驗,加深理解設計模式,可以幫助自己對於整個專案更加熟悉,同時能夠回答開發人員在開發過程中出現的所有的問題,樹立個人威信。

5.架構師需要有較強的IT知識和廣博的知識面。IT的知識更新非常快,現在雲端計算等的出現,必然要淘汰一部分架構師,因此,架構師要保持生命力,必須要不斷地學習。

6.架構師要懂業務知識。架構設計要滿足系統的需求。我雖然剛到公司不久,但由於之前積累了很多業務相關的知識,經過短期的學習,也掌握了業務知識。

7.不要怕做事情,我在整個系統的開發過程中,我的開發量是別人的三倍還多,但我收穫的,則也是三倍還多的經驗。

  自己的不足之處:

1.有時候會著急,當規範強調了10遍,還是沒有得到很好的執行時,就開始沒有耐心了。

2.需要加強溝通能力,將自己的想法能夠推銷出去。

3.需要在更多的業務領域知識方面得到快速的增長。

  下一步的目標

1.系統理論地學習架構知識,使得知識更加固化,以進一步使得架構設計更加科學和有調理;

2.通過廣泛地閱讀學習企業資訊化的各個方面的知識,包括ERP,SCM,營銷管理,企業戰略,企業管理等,每年看書或閱讀文章至少100本或篇;

3.熟悉企業的業務流程,與企業不同層次的人員多多地進行交流,多學習,多溝通;

4.多交朋友,多向朋友學習與交流。

標籤:架構師 系統