Posted on 2005-12-17 16:40
非魚 閱讀(3176)
評論(16) 編輯 收藏 所屬分類:
面向對象設計
今天被鄙視了一下。一個編碼比我好的朋友說:“非魚,說實在的,我挺鄙視你搞的架構師小組的。基本功不扎實,就搞什么架構師,是我一向鄙視的行為。”其實我自己也認為自己不是一個合格的架構師,或許勉強算是一個預備役的架構師吧。
但這并不影響我對于架構師職業的理解和學習,而我也愿意把我的學習經驗和大家分享。目前國內真正的架構師還是極少的,我以“架構師”來稱呼自己,算是自
詡,但更是自勉。我建立“架構師之家”這樣一個團隊BLOG,更多是想加入的人(多半還不是架構師吧)一起學習進步,所謂每月至少一篇關于架構師的文章算
是一種督促吧。
朋友的意思,如果我沒有理解錯的話,基本功是指的編碼。沒有寫過代碼的人來做架構師,是一個笑話。但如果只有Anders
Hejlsberg這樣的人才能成為一個架構師的話,恐怕這個世界上的架構師就太少太少了。每個人都可以向Anders
Hejlsberg學習,但不是每個人都要成為Anders
Hejlsberg。我認為一個架構師應該對編碼很精通,能夠掌握各種數據結構和大部分算法,知道何時何地應用何種數據結構和算法。這樣應該足夠了。
架構師應該精通分析和設計。架構師應該比常人容易理解事物的基本原理,具有正確的分析手段和良好的認識論、方法論基礎。掌握各種設計原則和模式是一個架構
師的職業要求。架構師應該具有一定的領導能力,帶領一個團隊。架構師應該具有良好的溝通能力,和客戶溝通以確保產品滿足其需求。
架構師往往沒有一個他“自己”的產品,如Martin
Fowler,這個牛人也沒有什么架構產品吧?架構是產品的基礎,但架構本身不是一個產品,架構師所做的都是幕后工作。架構師是編劇,重要而不如導演名氣
大,但Hollywood是編劇負責制,不是導演負責制。有激情的程序員不屑于架構師,因為架構師沒有一個產品。
架構師需要考慮滿足多個風險承擔者的利益。站在不同風險承擔者的角度權衡利弊,盡可能滿足所有人的要求。他象一個走鋼絲的雜技藝人,最終會為自己的成功表
演而感受內心的愉悅。但架構師不是無原則的走中庸之道,他的原則就是所有風險承擔者的利益。
成功的架構師會把殺手特性扼殺在搖籃之中。他不允許一個程序員過度考慮一個看上去非常吸引人但代價高昂的特性(中國稱“亮點”)或高性能的實現。因為這會對整個產品的發行造成負面影響,甚至于導致項目失敗。
架構師對于產品質量的敏感是程序員做不到的。他從全局角度考慮質量,并把這些質量的屬性反映到產品中。
“另外作為架構師還要考慮的問題很多,甚至比技術架構更重要如授權模式、部署模式及成本、維護方案、安裝及升級方案、商標及商標的相關元素、發布及發布管
理、安全因素、市場因素及技術市場架構(個人認為這個因素最難也最重要)” ——
Donald