潛魚在淵

          Concentrating on Architectures.

          posts - 77, comments - 309, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          理解架構師

          Posted on 2005-12-17 16:40 非魚 閱讀(3179) 評論(16)  編輯  收藏 所屬分類: 面向對象設計
              今天被鄙視了一下。一個編碼比我好的朋友說:“非魚,說實在的,我挺鄙視你搞的架構師小組的。基本功不扎實,就搞什么架構師,是我一向鄙視的行為。”其實我自己也認為自己不是一個合格的架構師,或許勉強算是一個預備役的架構師吧。

              但這并不影響我對于架構師職業的理解和學習,而我也愿意把我的學習經驗和大家分享。目前國內真正的架構師還是極少的,我以“架構師”來稱呼自己,算是自 詡,但更是自勉。我建立“架構師之家”這樣一個團隊BLOG,更多是想加入的人(多半還不是架構師吧)一起學習進步,所謂每月至少一篇關于架構師的文章算 是一種督促吧。

              朋友的意思,如果我沒有理解錯的話,基本功是指的編碼。沒有寫過代碼的人來做架構師,是一個笑話。但如果只有Anders Hejlsberg這樣的人才能成為一個架構師的話,恐怕這個世界上的架構師就太少太少了。每個人都可以向Anders Hejlsberg學習,但不是每個人都要成為Anders Hejlsberg。我認為一個架構師應該對編碼很精通,能夠掌握各種數據結構和大部分算法,知道何時何地應用何種數據結構和算法。這樣應該足夠了。

              架構師應該精通分析和設計。架構師應該比常人容易理解事物的基本原理,具有正確的分析手段和良好的認識論、方法論基礎。掌握各種設計原則和模式是一個架構 師的職業要求。架構師應該具有一定的領導能力,帶領一個團隊。架構師應該具有良好的溝通能力,和客戶溝通以確保產品滿足其需求。

              架構師往往沒有一個他“自己”的產品,如Martin Fowler,這個牛人也沒有什么架構產品吧?架構是產品的基礎,但架構本身不是一個產品,架構師所做的都是幕后工作。架構師是編劇,重要而不如導演名氣 大,但Hollywood是編劇負責制,不是導演負責制。有激情的程序員不屑于架構師,因為架構師沒有一個產品。

              架構師需要考慮滿足多個風險承擔者的利益。站在不同風險承擔者的角度權衡利弊,盡可能滿足所有人的要求。他象一個走鋼絲的雜技藝人,最終會為自己的成功表 演而感受內心的愉悅。但架構師不是無原則的走中庸之道,他的原則就是所有風險承擔者的利益。

              成功的架構師會把殺手特性扼殺在搖籃之中。他不允許一個程序員過度考慮一個看上去非常吸引人但代價高昂的特性(中國稱“亮點”)或高性能的實現。因為這會對整個產品的發行造成負面影響,甚至于導致項目失敗。

              架構師對于產品質量的敏感是程序員做不到的。他從全局角度考慮質量,并把這些質量的屬性反映到產品中。

              “另外作為架構師還要考慮的問題很多,甚至比技術架構更重要如授權模式、部署模式及成本、維護方案、安裝及升級方案、商標及商標的相關元素、發布及發布管 理、安全因素、市場因素及技術市場架構(個人認為這個因素最難也最重要)” ——Donald

          評論

          # re: 理解架構師  回復  更多評論   

          2005-12-17 16:45 by petit
          非魚渴望成為張炭,然后找到陳大導演,拍一部

          # re: 理解架構師  回復  更多評論   

          2005-12-17 16:55 by 非魚
          沒有辦法,象你這樣已經拍過3部A片的大影星是不會理解我們這種小人物的苦處的~~~

          # re: 理解架構師  回復  更多評論   

          2005-12-17 17:55 by Donald
          Martin Fowler肯定也是架構過產品的
          基于J2EE這種中間件架構的產品也一樣是產品啊,不是windows才叫產品吧,呵呵
          Fowler還是很牛的,我想不比Anders差^_^

          原來我很想寫點關于這個的文章,名字都想好了,包括兩個系列
          《你是架構師-架構模式大系》系列
          -主要講各種中間件及系統平臺的各種‘架構’模式
          《你不是架構師-超越技術架構師》系列
          -主要講述光會技術是不行的,集中討論包括如授權模式、部署模式及成本、維護方案、安裝及升級方案、商標及商標的相關元素、發布及發布管理、安全因素、市場因素及技術市場架構等等方面的問題

          可惜...沒時間,好龐大的內容,我看還是有時間建個wiki大家一起搞比較好
          如果誰有興趣,我給個提綱,大家豐富一下也好

          # re: 理解架構師  回復  更多評論   

          2005-12-17 18:02 by 非魚
          好啊,Donald的建議很好。

          # re: 理解架構師  回復  更多評論   

          2005-12-17 18:14 by romza
          如果只是在心里稱為自己“架構師”,那可以算得上對自己的勉力,對著別人稱自己為“架構師”,那就有點其他的意思了,又如果你沒有達到那個實力,那么也許就會有人跳出來說了:你憑什么稱自己為XXX?

          當然,這個世界沒有絕對的真理,就算宣稱自己是上帝,只要你的理由夠唬人,也能讓不少人相信你。在別人認可你之前就先自我認可的前提是-能夠馬上應對來自其他人的責難,這之后就出現了兩種結果,你確實是XXX,或者你根本就是個XXX。

          # re: 理解架構師  回復  更多評論   

          2005-12-17 18:48 by wfeng007
          不錯不錯。

          軟件架構師注重整體把握,高級程序員負責細節精華。者這個觀點來說,兩者級別是一樣的,只是關注點不同。

          “另外作為架構師還要考慮的問題很多,甚至比技術架構更重要如授權模式、部署模式及成本、維護方案、安裝及升級方案、商標及商標的相關元素、發布及發布管理、安全因素、市場因素及技術市場架構(個人認為這個因素最難也最重要)“
          。。。。。。。。。這個好像已經上升到系統分析級別了。。。該角色關注范圍比構架師跟廣。

          # re: 理解架構師  回復  更多評論   

          2005-12-17 19:15 by 非魚
          @romza
          這個沒有一個標準。我自己認為還沒有達標(自己的標準),或許別人看來我達標了(別人的標準)。無所謂,你不妨認為“我根本就是個XXX。”另外,我搞個“架構師之家”其實也沒有自稱“架構師”。:)上次和朋友交換鏈接我都要他給個“預備YI架構師”的TITLE。這么看來我還有點自知之明吧。搞這個東西只是說明一件事:“我有錢就可以開公司,不懂管理無所謂,我可以請職業經理人。”

          @wfeng007
          最后一段是引用Donald的。

          # re: 理解架構師  回復  更多評論   

          2005-12-18 11:20 by luffy520
          如何培養才能達到架構師的程度呢?^_^

          # re: 理解架構師  回復  更多評論   

          2005-12-18 11:46 by Donald
          @wfeng007
          這說明你還不理解架構師的職業含義
          看看微軟的bill的工作就知道了
          類似的還有很多,很多公司的Chief Architect都同時兼著vice president或更高的職位,因為他們需要很高的視野
          如果Chief Architect只懂技術,這公司肯定發展不好

          # re: 理解架構師  回復  更多評論   

          2005-12-18 13:37 by <font color="orange">非魚</font&g
          @luffy520
          這個問題比較難說,有人說要11步呢,聽著就恐怖。

          不過我以為編碼-設計-領導-管理逐步提高,水到渠成吧。重要的是打好基礎,步步為營。

          # re: 理解架構師  回復  更多評論   

          2005-12-18 13:43 by <font color="orange">非魚</font&g
          @Donald
          架構師還是以技術為主。仔細看下Architecture Description的內容,會發現其中主要就是技術的東西。產品的市場因素,一般需要架構師和市場工作人員有良好的溝通,但我個人認為架構師不能就這方面下結論甚至替代其工作,架構師的工作內容復雜,并不說明其職責大而全。

          # re: 理解架構師  回復  更多評論   

          2005-12-18 15:01 by david.turing
          將Anders Hejlsberg和Martin相比是不合適的,前者的天才是后者無法相比,當然,Martin更專注于項目和架構的整體設計,后者對各種大小項目的經驗的積累是前者不得不佩服的。
          回到你的Point,是否需要有很好的代碼基礎才能成為架構師?
          我認為,架構師需要很多素質,這些素質可以通過寫代碼來培養,當然,寫代碼不是唯一的途徑,如果你從事設計,并在一個團隊里面不斷跟別人合作,并能知道自己的設計對編碼產生的影響(通過你的寫編碼的同事,開發經理,測試人員,客戶等等的反饋而不斷重新思考),你的架構師的素質會不斷提高。
          一句話,認同你的觀點,但不認同你解釋你自己的觀點的論據。

          # re: 理解架構師  回復  更多評論   

          2005-12-18 16:22 by 非魚
          @dove

          As you know, 關于Martin Fowler是朋友說的。

          Anders和Martin應該是殊途同歸:Technology makes life easier. 無論是Code Guru還是Architect,如果不能做到這一點就是失敗的。Anders和Martin都做到了這一點,無論他們誰高誰低。

          我的真正的觀點是,選擇什么都是可以的,但別忘了我們的最終目標。

          # re: 理解架構師  回復  更多評論   

          2007-05-15 20:46 by 金大為
          我還是認為架構師必須是優秀的程序員,不然,就容易紙上談兵,坑上難下。

          # re: 理解架構師  回復  更多評論   

          2007-06-10 13:33 by itkui
          架構師,我的夢想!

          # re: 理解架構師  回復  更多評論   

          2007-07-07 09:55 by itkui
          @金大為
          這話我比較同意。
          雖然我是Java初學者。
          主站蜘蛛池模板: 无极县| 左云县| 苍山县| 长泰县| 临漳县| 雅安市| 翁牛特旗| 美姑县| 东海县| 久治县| 明溪县| 社旗县| 荣成市| 都昌县| 南平市| 寿阳县| 西青区| 台南县| 眉山市| 武夷山市| 兴和县| 红原县| 通化县| 莱芜市| 图木舒克市| 黄平县| 民县| 乳源| 齐河县| 九寨沟县| 建德市| 黄平县| 天祝| 扎赉特旗| 靖西县| 林周县| 视频| 且末县| 乌兰浩特市| 内江市| 措美县|