軟體架構師之路

來源:互聯網
上載者:User

  什麼是軟體架構師?

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

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

  如果說架構師是在模型圖紙上工作的,那麼模型元素必須是實實在在的,正如我們不可能期望抽象派畫家來設計高樓大廈,沒有實際意義的模型元素,是 不可能構築出軟體系統的。迄今為止,絕大部分軟體架構師是依賴軟體程式員來實現他們的架構意圖的,這二者直接的鴻溝是顯而易見的。設計模式的出現是為縮短 二者之間的鴻溝所做的努力,目的是讓架構師和程式員之間有更多的共同語言和規範。儘管設計模式讓軟體開發效率和品質有一定程度的提升,但是它始終面臨一個 很明顯的局限,那就是人的因素。人雖然在創造性方面有絕對優勢,但是在精確性、持久性、效率、品質上是無法比擬機器的。所以我們希望在軟體系統構建過程 中,人和機器發揮各自的長處,也就是說,讓人來扮演架構師的角色,而讓機器來扮演程式施工者的角色。事實上,目前已經有了成功的模式了,那就是KCOM 商業工程(http://www.kcomsoft.com)公司專屬應用程式平台所採用的基於設計的全自動化軟體工廠模式,採用這種模式,架構師在工具平台所提 供的模型圖設計環境裡做軟體系統的設計,設計結果由工具平台自身所帶的“軟體工廠”自動加工成最終公司專屬應用程式軟體系統。這樣的開發模式,能使公司專屬應用程式軟體系 統的開發在效率、品質上有了質的提升,從根本上區別於傳統的設計模式,因為這裡的設計模式已經包含在軟體工廠編譯器之中了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.