構架師(Architecture)是目前很多軟件企業(yè)最急需的人才,也是一個(gè)軟件企業(yè)中薪水最高的技術(shù)人才。換句話(huà)說(shuō),構架師是企業(yè)的人力資本,與人力資源相比其能夠通過(guò)構架、創(chuàng )新使企業(yè)獲得新的產(chǎn)品、新的市場(chǎng)和新的技術(shù)體系。那么什么是構架師、構架師的作用、如何定位一個(gè)構架師和如何成為一個(gè)構架師呢?這是許多企業(yè)、許多程序員朋友希望知道的或希望參與討論的話(huà)題內容。
我在此拋磚引玉,就上述幾個(gè)問(wèn)題把我的體會(huì )和理解做簡(jiǎn)單闡述。
所謂構架師通俗的說(shuō)就是設計師、畫(huà)圖員、結構設計者,這些定義范疇主要用在建筑學(xué)上很容易理解。小時(shí)候到河中玩耍,經(jīng)常干的事就是造橋,步驟如下:1、在沙灘上畫(huà)圖;2、選擇形狀好看、大小適合的石頭;3、搭建拱橋。其中我們挑出來(lái)畫(huà)圖的那位光PP小孩就是傳說(shuō)中的“構架師”了。
在軟件工程中,構架師的作用在于三方面:1、行業(yè)應用構架,行業(yè)構架師往往是行業(yè)專(zhuān)家,了解行業(yè)應用需求,其構架行為主要是將需求進(jìn)行合理分析布局到應用模型中去,偏向于應用功能布局;2、應用系統技術(shù)體系構架,技術(shù)構架師往往是技術(shù)高手中的高手,掌握各類(lèi)技術(shù)體系結構、掌握應用設計模式,其構架行為考慮軟件系統的高效性、復用性、安全性、可維護性、靈活性、跨平臺性等;3、規范構架師是通過(guò)多年磨礪或常年苦思頓悟后把某一類(lèi)構架抽象成一套構架規范,當然也有專(zhuān)門(mén)研究規范而培養的規范構架師。他們的產(chǎn)物往往也分為應用規范和技術(shù)規范兩類(lèi)。
與建筑學(xué)類(lèi)似,如果軟件系統沒(méi)有一個(gè)好的構架是不可能成為成功的軟件系統的。沒(méi)有圖紙的建筑工地、沒(méi)有設計的造橋工程都是不可以想象的混亂世界。建筑工程如是,軟件工程中亦然!
由于國內合格、勝任的軟件構架師極為少見(jiàn),直接導致了我國民族軟件產(chǎn)業(yè)水平的落后。在未來(lái)以信息產(chǎn)業(yè)為主導的社會(huì ),信息產(chǎn)業(yè)水平的低下將直接影響國家核心競爭力。究其原因,無(wú)企業(yè)非急功近利、個(gè)人缺乏引導。
企業(yè)的急功近利是有無(wú)法克服的原因的,那就是社會(huì )發(fā)展總體水平。“生存是第一位的,賺錢(qián)是第一位的”,多年來(lái)許多客戶(hù)抱怨國內的軟件公司無(wú)法信任、系統項目累做累敗、公司越換越差,但因國外不可能給中國做應用系統項目還不得不找國內軟件公司做。由于人月費用低、公司開(kāi)發(fā)成本高,軟件企業(yè)對于應用只能草草了事,拿錢(qián)走人(很多公司拿不到后期尾款)。這樣的環(huán)境下,企業(yè)幾乎無(wú)法投入更多資源培養自己的構架師,加上眼花繚亂的跳槽風(fēng)氣企業(yè)更是不愿投入……
那么要成為構架師的途徑似乎只有現在較為流行的軟件學(xué)院和個(gè)人自我培養了。關(guān)于軟件學(xué)院我接觸過(guò)不少,其宗旨絕大部分都是造就(or打造)企業(yè)需要的軟件構架師(or程序員or人才)。教師來(lái)源與企業(yè)、學(xué)員來(lái)源與企業(yè)、人才輸送到企業(yè)是他們辦學(xué)的手段。盡管各個(gè)如雨后春筍般出現的軟件口號差不多,但除了中科院、清華、北大等大院??梢韵嘈乓恍┲?,恐怕更多的就是為了圈錢(qián)賣(mài)學(xué)位了事……我有個(gè)朋友二十幾個(gè)人的小公司也想搞軟件學(xué)院:)
構架師不是通過(guò)理論學(xué)習可以搞出來(lái)的,不過(guò)不學(xué)習相關(guān)知識那肯定是不行的。參考軟件企業(yè)構架師需求、結合北京網(wǎng)暢公司構架師培養計劃以及目前構架師所需知識,我總結構架師自我培養過(guò)程大致如下僅供參考:
1、構架師胚胎(程序員)學(xué)習的知識是語(yǔ)言基礎、設計基礎、通信基礎等,應該在大學(xué)完成,內容包括
java、c、c++、uml、RUP、XML、socket通信(通信協(xié)議)——學(xué)習搭建應用系統所必須的原材料。
2、構架師萌芽(高級程序員)學(xué)習分布式系統、組建等內容,可以在大學(xué)或第一年工作時(shí)間接觸,包括
分布式系統原理、ejb、corba、com/com+、webservice(研究生可以研究網(wǎng)絡(luò )計算機、高性能并發(fā)處理等內容)
3、構架師幼苗(設計師)應該在掌握上述基礎之上,結合實(shí)際項目經(jīng)驗,透徹領(lǐng)會(huì )應用設計模式,內容包括
設計模式(c++版本、java版本)、ejb設計模式、J2EE構架、UDDI、軟件設計模式等。在此期間,最好能夠了解軟件工程在實(shí)際項目中的應用以及小組開(kāi)發(fā)、團隊管理。
4、軟件構架師的正是成型在于機遇、個(gè)人努力和天賦
軟件構架師其實(shí)是一種職位,但一個(gè)程序員在充分掌握軟構架師所需的基本技能后,如何得到這樣的機會(huì )、如何利用所掌握的技能進(jìn)行應用的合理構架、如何不斷的抽象和歸納自己的構架模式、如何深入行業(yè)成為能夠勝任分析、構架為一體的精英人才這可不是每個(gè)人都能夠遇上的餡餅……
然而學(xué)海無(wú)涯,精力有限,個(gè)人如何能夠很快將這些所謂的構架師知識掌握?這是秘密,每個(gè)人都有自己的獨門(mén)家傳秘笈就不敢一一暴露了。不過(guò)有一點(diǎn)就是廣泛學(xué)習的基礎之上一定要根據個(gè)人興趣、從事領(lǐng)域確定一條自己的主線(xiàn)來(lái)努力。
聯(lián)系客服