論架構師的自我修養

jopen 9年前發布 | 23K 次閱讀 架構師

 

架構師,當然是腦力勞動者,但是,同樣是腦力勞動也存在重大的差別。有一類腦力勞動的成果,是比較容易被評價的。或者能夠判斷其對錯:比如考試的 分數;或者能夠比較其高下:比如兩個人下棋分出輸贏;或者能夠交由市場來判斷:比如某種UI/UE設計,我們可以通過數據統計,了解其受用戶歡迎的程度。

但是,架構設計只是軟件開發過程中的一個環節,而在這個多人協作的場景中,我們很難單獨評價架構的優劣。由于硬件、軟件、部署、人員、測試、用 戶、市場等眾多的差別,即使是非常相近的兩個系統,我們也很難判斷兩個架構孰優孰劣。比如:eBay的架構與Taobao的架構哪個更加優秀?在交付拖延 的時候,我們可以將問題歸咎于開發團隊的效率低下。在出現質量問題的時候,我們可以將問題歸咎于測試團隊的疏忽大意。在負載撐不住的時候,我們可以將問題 歸咎于運維團隊不夠專業,甚至是競爭對手的DDoS攻擊。那么,在出現什么樣的問題的時候,我們可以將責任歸咎于架構呢?

所以,現狀就是:架構師是一個很難做好的職業。但是,從某種意義上來說,又是一個非常容易混的職業。(當然,混是另一種需要持續修煉的高端技能。)因此,架構師也是特別需要強調自我修養與職業道德的職業。

什么是架構?什么是架構師?

對于架構的定義,有很多種,我比較同意的一種定義是:“架構是一組關鍵決策”。這樣的決策包括但不限于:使用什么操作系統、語言、框架與類庫;是 否在架構中使用某種全新的技術方案;優先考慮或滿足哪一方面的需求以及如何在技術上實現這一點;更進一步的,面對一個不斷發展的系統,哪些部分需要優先重 構or優化、哪些決策需要重新考慮甚至修改;再進一步,某些前瞻性的考慮,也是架構決策的一部分,等到問題發生再來解決,同樣是架構方面考慮不周。

能夠做出這些決策的,就是架構師。或者說,在一個團隊中,實際的最終決策者,就是事實上的架構師。無論他被賦予什么樣的頭銜。在一個團隊中,我們總能找到這樣的角色(無論他做得是不是稱職),而一個優秀的架構師,就是通常能夠做出“較多”正確決策的人。

架構師的工作是什么?

僅僅做出決策是不夠的,我們可以從時間線上來觀察:在做出決策之前,架構師需要足夠了解自己的“可選項”,無論是用戶的實際需求,還是最新出現的技術和框架,并且都得要有足夠深入的理解(否則就是在拍腦袋做決策)。這時,架構師的角色,是一個“研究者”。

在綜合各項因素,甚至是相互矛盾的各種需求之后,在考慮到團隊的實際能力與交付壓力之后,在平衡了先進性與可靠性、擴展性與穩定性、重要性與緊迫性之后,架構師做出了一組決策。這時,架構師的角色,是一個“設計師”。

為了確保自己架構設計能夠被正確地實施和貫徹,架構師需要與研發團隊密切配合,或者說服、或者引導、或者輔導、或者鼓動、甚至需要某種“強有力的推進手段”,這對于架構師的「硬實力」與「軟實力」都提出了很高的要求。這時,架構師的角色,是一個“Top Coder”。

在某些大公司,架構師還需做很多的文檔工作,這些文檔并不是交付給開發團隊的說明性文檔。而是某種向上級證明某某方案可行,某某架構有效的證明性文檔。這時,架構師的角色,是一個“說服者”。

從上面的描述,我們也可以發現,架構師像是一個千面人:需要與上下前后左右的不同角色打交道;多面手:需要了解甚至掌握諸多不同的知識和技能。要想做好這個工作,提升自我修養是根本之道!

什么是架構師的自我修養?

1. 以理解用戶為榮,以想當然爾為恥

架構師不是產品經理,不是市場人員,不是客服人員。但是,如果只懂技術,只考慮技術,不能深入的理解用戶的需求(強調一下,用戶的真實需求!),就會做出“純粹追求技術先進性”的想當然爾的架構出來。

2. 以腳踏實地為榮,以夸夸其談為恥

架構師當然需要很強的表達能力,甚至還需要有忽悠能力。但是,無論是表達還是忽悠,都必須以“實力為基礎”。如果不能腳踏實地,積累實力,只會夸夸其談。那就相當可恥了。

3. 以身先士卒為榮,以指手畫腳為恥

還是那個經典的臺詞“兄弟們跟我上”與“弟兄們給我上”的區別。如果對于一些困難的問題,架構師自己都搞不定,卻擺出一副胸有成竹的表情:“這不是很簡單的嗎?你到網上搜一下嘛,資料大把大把的。”這種做派,就很令人不齒。

4. 以實踐檢驗為榮,以道聽途說為恥

如果某種技術,架構師自己都沒有做過評測,沒有看過框架代碼,沒有在過去的實踐中應用過。卻因為一篇文章,一個講座,甚至某個大公司曾經用過這樣的證據,就將一種技術引入到項目之中。這樣的決策,很少有不失敗的。

5. 以先見之明為榮,以后知后覺為恥

“過度設計”當然是一個貶義詞,但是架構師一定要有前瞻能力。不能等到火燒起來了,再去救火。雖然在企業里,的確存在“救火英雄升遷快”的現象。但是,一個優秀的架構師,應該以“消除隱患于無形”為榮。

6. 以兼容并包為榮,以獨斷專行為恥

在架構領域,很少有唯一解、最優解。大多數時候,我們只能在多個各有優劣的方案中,反復權衡,考慮取舍。這時,開闊的視野、開放的心胸,就顯得尤為重要。如果一味的獨斷專行,聽不進團隊里其他同事的意見(尤其是那些學習了喬布斯的架構師),就會非常危險。

7. 以主動學習為榮,以固步自封為恥

技術的進步實在太快,曾經有一種夸張的說法:“平均每天誕生一種革命性的、顛覆性的技術”。雖然有很多新技術,都在如此宣稱,作為架構師,卻必須 不斷地主動學習,了解,甚至在某些領域做一些初步的嘗試。這樣的過程,在架構師的整個職業生涯中,都無法停止。一旦產生了“固步自封”的念頭,這個架構師 也就“不過爾爾”了。

8. 以勇猛精進為榮,以疏忽懈怠為恥

架構師是一份困難的工作,更加重要的是:隨著架構設計的完成,架構師的工作,才剛剛開始。接下來的任務,會非常瑣碎,也許會更加困難。這份工作的 主題是:“架構看護”盡可能保護架構,不會隨著時間的推移,隨著特性的增加,漸漸變得腐化。很多最初設計得相當優秀的架構,到最后變得不堪入目。說到底, 還是要怪架構師沒有能夠堅持自己當初的決策。

如何提升架構師的自我修養?

在《中庸》里,子曰:“好學近乎知,力行近乎仁,知恥近乎勇。知斯三者,則知所以修身;知所以修身,則知所以治人;知所以治人,則知所以治天下國家矣。”

簡單的翻譯解釋下:好學就能顯得有智慧(至少能有知識),力行就能不脫離群眾(因不忘本而能具備仁慈之心),知恥就能守底線(有所為有所不為之 勇)。能做到這三點,就算是懂得如何提升自己的修養了。懂得如何提升修養,才能懂得如何駕馭團隊。懂得如何駕馭團隊,才能創作出真正偉大的,甚至風行全球 的軟件產品來。

這就是我理解的架構師的中庸之道,與諸位共勉吧。

(責編/錢曙光,關注架構和算法領域,qianshg@csdn.net)

作者簡介: 華為開源專家,目前主要的工作是華為的內源社區平臺建設。

1997年畢業于華東師范大學,曾任盛大創新院的高級研究員、印客網的技術總監。多年來一直在編程的第一線,并以Coding為最大的樂趣。

(責編/錢曙光,關注架構和算法領域,qianshg@csdn.net)

論架構師的自我修養 作者簡介: 從事近十年的 JavaEE 應用開發工作,曾任阿里巴巴公司系統架構師,現任特贊(tezign.com)公司 CTO。對分布式服務架構與大數據技術有深入研究,具有豐富的 B/S 架構開發經驗與項目實戰經驗,擅長敏捷開發模式。國內開源軟件推動者之一,活躍于“開源中國”社區網站,Smart Framework 開源框架創始人。熱愛技術交流,樂于分享自己的工作經驗。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!