NO IMAGE

 作者:江南白衣,原文出處: http://blog.csdn.net/calvinxiu/archive/2007/02/18/1511545.aspx,轉載請保留。–last update 2007.3.25

引子:
    “這個專案的架構是什麼?”
   對方爽快的回答:”Spring Struts Hibernate。”
   嗯,這位很可能不是架構師……

一、核心競爭力

架構設計的原理、模式與技術
   
未經培訓的架構師們從試驗與挫折中獲得架構設計的技能,但其中大量的原理、知識、模式和技巧,都經歷了一個重複發現的過程。
    其實,各路神仙在這個領域雖則沒有搗鼓出大熱的暢銷書來,但前篇的架構師書單,也足夠為我們作一個系統的知識整理。
    悲哀的發現,自己的再發現式積累還是太慢、太片面,大多侷限於GOF23、Java EE架構模式、RUP 等方面。

滿足架構質量屬性所需的軟硬體知識 
    如何滿足效能,伸縮性,擴充套件性、可靠性,容災,可恢復性,可管理性這些架構質量屬性,是架構師的飯碗級知識。

有序的以方法為驅動源的任務執行 
    匠級的架構師多有一套自己的方法論、過程論,每回設計都是熟練而有序的執行。
    架構師在軟體開發中的過程,以RUP為基礎的剪裁被描述得最為詳細,可執行度最高的。
    而核心的架構過程,直覺與模式,有序與混沌的平衡,就只有反覆試驗,獨家祕製。
  

領域知識與業務分析能力
 
   技術人員一般抗拒學習軟體開發以外的東西,但架構師卻非如此不可。
    BTW.G9寫過一篇很有意思的〈商業軟體程式設計很無聊?〉

大型專案的經驗 
    中國有多少架構師,不在於有多少人通過了什麼考試培訓,而在於中國大型專案的數量。
    問:你這個專案的架構是什麼?一口回答:Spring Struts Hibernate。這位很可能就不是架構師了,因為這僅僅是技術Stack,專案規模不大時Spring Struts Hibernate才會成為架構的重點。

    除了親自擔任這些專案的架構師,如果明瞭別人架構設計與決策的思路也是一樣能拿經驗。所以,儘量多讀一下公司專案的設計文件,也愉快的接受其他專案組架構評審會的邀請。

二、基本能力

完整的軟體開發生命週期經驗

    這個不用說了,幸好中國的架構師什麼髒活累活都做過,甚至跟著市場人員跑去做演示這些國外架構師不一定有的經驗我們都有了,差別只在於基本開發生命週期理論–RUP 、CMMI3、 敏捷原則的細節掌握。

精通一兩種主流開發語言、保持當下架構的開發體驗

    國內的架構師到了三十歲以後很多就往理論上跑,而國外的架構師在往上發展的同時保持下面的程式設計體驗,所以國內多水王,而國外則多大師。水王的設計多與實現有很大斷層。而且人過三十學習能力下降,手藝放下了就別想撿起來了:(
    但是,保持一個體驗就好了,也不必要苦行僧似的要求自己每日編碼若干行,很可能因為你的時間安排不來反而拖了大家的進度。

巨集觀瞭解當前的技術與產品,追逐最新的技術潮流 

     架構師的知識結構必須是亙古真理 最新技術的結合,盲目追逐最in技術的不是架構師,但倚老賣老,張口就說你們年輕人就知道追逐新技術的同樣也討人嫌。
     架構師對各大公司的完整產品線和著名的開源專案應該都有個巨集觀上的瞭解。
     但也要抵制成為某項技術專家,如Oracle啟動引數優化專家的誘惑,技術細節掌握到業務職責需要的程度就剛好了。除非如Spring Framework進一步瞭解能有天大好處。

與業務域開發域人員溝通的能力、決策能力和權威和其他的領導能力 
 
   IT 架構師處在客戶和開發人員之間,必須能夠使用各種媒體(程式碼、模型、文件、PowerPoint以及談話和講座),與技術和非技術的干係人進行溝通。
   另外,架構師必須注意培養自己的技術決策能力和決策權威。
   最後,架構師好歹也是個半大不小的官,其他領導必要的能力就不列了。

   
   參考了IBM DW中國上的兩篇文章:

   

三、鏡子做好了,自己先照一下

  • 要把書單啃完;
  • 要熟悉電信的業務知識;
  • 要重點學習滿足架構質量屬性的軟硬體知識; 
  • 要把公司幾百個專案的設計文件挑好的看一遍;
  • 要跟隨公司最新一波RUP CMMI3行情;
  • 要重修C ;
  • 要完整了解一遍IBM、BEA們的產品線。