系統架構設計師要素

架構師(Architecture)是目前很多軟件企業最急需的人才,也是一個軟件企業中薪水最高的技術人才。換句話說,架構師是企業的人力資本,與人力資源相比其能夠通過架構、創新使企業獲得新的產品、新的市場和新的技術體系。那麼什麼是架構師、架構師的作用、如何定位一個架構師和如何成爲一個架構師呢?這是許多企業、許多程序員朋友希望知道的或希望參與討論的話題內容。

系統架構設計師要素

所謂架構師通俗的說就是設計師、畫圖員、結構設計者,這些定義範疇主要用在建築學上很容易理解。小時候到河中玩耍,經常乾的事就是造橋,步驟如下:1、在沙灘上畫圖;2、選擇形狀好看、大小適合的石頭;3、搭建拱橋。其中我們挑出來畫圖的那位光PP小孩就是傳說中的“架構師”了。

在軟件工程中,架構師的作用在於三方面:1、行業應用架構,行業架構師往往是行業專家,瞭解行業應用需求,其架構行爲主要是將需求進行合理分析佈局到應用模型中去,偏向於應用功能佈局;2、應用系統技術體系架構,技術架構師往往是技術高手中的高手,掌握各類技術體系結構、掌握應用設計模式,其架構行爲考慮軟件系統的高效性、複用性、安全性、可維護性、靈活性、跨平臺性等;3、規範架構師是通過多年磨礪或常年苦思頓悟後把某一類架構抽象成一套架構規範,當然也有專門研究規範而培養的規範架構師。他們的產物往往也分爲應用規範和技術規範兩類。

與建築學類似,如果軟件系統沒有一個好的架構是不可能成爲成功的軟件系統的。沒有圖紙的建築工地、沒有設計的造橋工程都是不可以想象的混亂世界。建築工程如是,軟件工程中亦然!

由於國內合格、勝任的`軟件架構師極爲少見,直接導致了我國民族軟件產業水平的落後。在未來以信息產業爲主導的社會,信息產業水平的低下將直接影響國家核心競爭力。究其原因,無企業非急功近利、個人缺乏引導。

企業的急功近利是有無法克服的原因的,那就是社會發展總體水平。“生存是第一位的,賺錢是第一位的”,多年來許多客戶抱怨國內的軟件公司無法信任、系統項目累做累敗、公司越換越差,但因國外不可能給中國做應用系統項目還不得不找國內軟件公司做。由於人月費用低、公司開發成本高,軟件企業對於應用只能草草了事,拿錢走人(很多公司拿不到後期尾款)。這樣的環境下,企業幾乎無法投入更多資源培養自己的架構師,加上眼花繚亂的跳槽風氣企業更是不願投入。

那麼要成爲架構師的途徑似乎只有現在較爲流行的軟件學院和個人自我培養了。關於軟件學院我接觸過不少,其宗旨絕大部分都是造就(or打造)企業需要的軟件架構師(or程序員or人才)。教師來源與企業、學員來源與企業、人才輸送到企業是他們辦學的手段。儘管各個如雨後春筍般出現的軟件學院口號差不多,但恐怕大多隻是爲了圈錢賣學位了事。

架構師不是通過理論學習可以搞出來的,不過不學習相關知識那肯定是不行的。參考軟件企業架構師需求、結合目前架構師所需知識,總結架構師自我培養過程大致如下僅供參考:

1、架構師胚胎(程序員)學習的知識是語言基礎、設計基礎、通信基礎等,應該在大學完成,內容包括java、c、c++、uml、RUP、XML、socket通信(通信協議)——學習搭建應用系統所必須的原材料

2、架構師萌芽(高級程序員)學習分佈式系統、組建等內容,可以在大學或第一年工作時間接觸,包括分佈式系統原理、ejb、corba、com/com+、webservice(研究生可以研究網絡計算機、高性能併發處理等內容)

3、架構師幼苗(設計師)應該在掌握上述基礎之上,結合實際項目經驗,透徹領會應用設計模式,內容包括設計模式(c++版本、java版本)、ejb設計模式、J2EE架構、UDDI、軟件設計模式等。在此期間,最好能夠了解軟件工程在實際項目中的應用以及小組開發、團隊管理。

4、系統架構師的正式成型在於機遇、個人努力和天賦,軟件架構師其實是一種職位,但一個程序員在充分掌握軟架構師所需的基本技能後,如何得到這樣的機會、如何利用所掌握的技能進行應用的合理架構、如何不斷的抽象和歸納自己的架構模式、如何深入行業成爲能夠勝任分析、架構爲一體的精英人才這可不是每個人都能夠遇上的餡餅……

然而學海無涯,精力有限,個人如何能夠很快將這些所謂的架構師知識掌握?這是祕密,每個人都有自己的獨門家傳祕笈就不敢一一暴露了。不過有一點就是廣泛學習的基礎之上一定要根據個人興趣、從事領域確定一條自己的主線來努力。