架构师之我见
???????????????????????????????????
??????????????????????????????????????????????? 2009-08-06
架構師是一個項目組的靈魂人物,他決定著整個系統(tǒng)的技術選型、整體架構以及模塊劃分,同時還可能擔當與領導層的溝通角色,從某種意義上來說,架構師在很大程度上決定著項目的成敗與否,正所謂火車跑得快,全靠車頭帶。
?
很多優(yōu)秀的架構師都是從一個優(yōu)秀的開發(fā)人員轉變過來的,但優(yōu)秀的開發(fā)人員未見得都能成為合格的架構師。與架構師相比,開發(fā)人員所需擔當?shù)娜蝿障鄬ΚM隘的多,其最大的目標就是編寫出精良的代碼、做好充分的測試以及撰寫高質量的文檔等;而架構師所要面對的則相對寬泛得多,除了過硬的技術之外,還需要有良好的表達能力,同時還要有宏觀的駕馭整個系統(tǒng)的能力。
?
有人曾說過,20幾歲的編程天才好找,但30多歲的優(yōu)秀架構師難尋。架構師何其難?除了敏銳的洞察力之外,我認為一個好的架構師必須具備如下幾方面的素質:
?
A. 過硬的技術能力。有人說架構師就不需要編寫代碼,只需設計整體架構就行了。但我認為這是很片面的,試想一個人如果長時間不寫代碼,他還能具備持續(xù)的技術敏感度么?當然了,這里所說的寫代碼并非一般開發(fā)人員的行為,而是讓自己保持住對代碼的感覺。還有人說架構師不一定是技術高手,這一點我很同意,但他一定是個優(yōu)秀的開發(fā)者。
B. 良好的溝通能力。這一點尤為重要,因為架構師需要與項目組的開發(fā)人員以及領導層不斷交換意見,向對方傳遞自己的設計意圖與思想,沒有良好的表達與溝通能力是很容易出現(xiàn)問題的。這一點在溝通方式并非母語的企業(yè)中尤為明顯。
C. 良好的軟件工程素質。雖說架構師不是項目經(jīng)理,但我認為他需要對軟件開發(fā)過程有清晰明確的認識,這里的開發(fā)過程是個泛指,也許是RUP,也許是XP,是什么無所謂,但這種工程素質是每個優(yōu)秀架構師必備的品格之一。
D. 寬廣的知識領域。架構師的眼界一定要開闊,絕對不能局限于眼前的小范圍事務,否則極易出現(xiàn)“鼠目寸光”的后果。這就需要架構師不斷學習,這里的學習既包括技術上的,同時也包括業(yè)務上的以及溝通上的。
E.? 領域知識。架構師務必對自己所從事的業(yè)務領域有深刻的認識,他未必要成為業(yè)務專家,但他一定要對業(yè)務知識有深刻的理解。很難想象經(jīng)常從事金融領域項目的架構師能輕松設計好電信領域的項目架構。知識需要積累,業(yè)務也是這樣的。
F.? 處理系統(tǒng)非功能性需求的本領。架構師尤其需要對系統(tǒng)的性能、容錯、并發(fā)等非功能性需求方面有獨到的認識與解決辦法。一個項目到了后期,往往都是這些問題成為整個項目的瓶頸,這時架構師就要發(fā)揮其優(yōu)勢了。
?
架構師之路是崎嶇的,充滿了荊棘與挑戰(zhàn),但這卻是無數(shù)開發(fā)者的夢想。架構師是多項技能與素質的綜合體,每一位以此為目標的開發(fā)者都需要在平日的工作中不斷提升自己,在這里我衷心的祝愿架構師這個夢想能照進每一位有心人的現(xiàn)實。
總結
- 上一篇: LM算法+推导+C++代码实践
- 下一篇: 日本酒店寄送行李至机场的攻略