主頁 > 軟體設計 > 架構師的必備素質和成長途徑

架構師的必備素質和成長途徑

2022-10-13 09:53:27 軟體設計

 

2016年11月18-20日SDCC 2016中國軟體開發者大會,易寶支付CTO陳斌給我們帶來了“架構師的成長之路”的演講,主要談及了架構師的必備素質和成長途徑及給準架構師的建議,

它山之石可以攻玉,盡管每個架構師都有自己的成長路徑,但是了解其他架構師的成長之路,對未來想成為架構師的人有一定的借鑒價值,首先以我自己的成長程序為例,描述一下我的架構師之路,

 

 圖1 我的架構師之路

 

1989年研究生畢業后進入政府機構作業了三年,隨后加入新加坡國際航空公司,從事IBM主機系統的匯編語言研發,順應互聯網技術的發展,航空公司開始把訂票業務從傳統的主機終端轉向現代化的彩色PC客戶端,為此需要在IBM主機系統和UNIX/Oracle資料庫之間來回傳輸資料,所以我就開始研究Unix/Oracle,取得了Sun、HP和Oracle的認證,并由此進入了互聯網技術領域,2000年以前,很多系統都是采用兩位數字來標識年份,比如02代表1902,一個客戶的出生年份是1902,系統會把他的年齡當成是兩歲,這就是所謂的世紀之蟲,很多醫院、鐵路、銀行、政府機構都面臨著這個問題,采用新的基于Unix/Oracle和互聯網技術的新系統成為一個有效的解決方案,美國在這個方面有大量的需求,因此我就去了美國,專門做主機系統和Unix/Oracle以及互聯網上的資訊互動,這讓我有機會接觸大量不同的架構和系統,從而積累了豐富的經驗,為后期的架構師之路奠定了堅實的基礎,

日本工程師的特點是專、深、細,但是缺乏把所有的要素整合到一起解決一個問題的系統集成能力,所以我就成為負責系統集成的總體架構師,大量的系統集成業務為我提供了豐富的鍛煉機會,把業務需求轉換成技術解決方案,并進一步設計成各種系統,這些作業為我積累了豐富的架構經驗,2004年,加入Abacus任首席架構師,開始協調其他的架構師一起做航空訂票方面的互聯網技術架構作業,2008年開始在eBay和PayPal任移動應用的高級架構師,從互聯網時代進入移動互聯時代,

縱觀自己的架構師成長之路,我認為必須要踏踏實實地做好當下的事情,保持好奇心,不斷地學習新技術、積累新經驗和掌握新技能,緊跟時代的發展和技術的進步,不斷地擴大自己的業務和技術領域,那么成長成為架構師就是水到渠成的事情,

建筑設計與軟體架構

 圖2 古瑪雅金字塔建筑設計之美

 

要了解架構師的成長之路,就要先清楚什么是架構,架構一詞不是軟體行業的專有名詞,而是從古老的建筑行業借來的,在墨西哥有個很出名的古代瑪雅金字塔,叫ChiChen Itza,塔的四個面分別代表春夏秋冬四個季節,每個面上有91級臺階,代表每個季節91天,4X91=364,再加上塔頂共365,代表一年有三百六十五天,在每年的冬至和夏至,塔身因為陽光照射會出現神奇的蛇影,準確地預測季節變化,古瑪雅人的架構設計形神兼具,甚為奇妙,充分體現了架構之美,我們今天的軟體系統架構設計與之相比,相形見絀,

 

 圖3 建筑師如何做架構設計

 

在日常作業中,架構師在設計系統的時候會畫一張圖,HP的服務器,思科的路由器,Palo Alto的防火墻,Tomcat的應用容器,mySQL的資料庫等,把各種產品拼湊在一起叫架構設計,這是很棒的產品宣傳,如果這是一部電影,可以售賣植入式廣告,每個解決方案的供應商都肯定會對這個架構設計表示由衷的感激, 對建筑物,最好的建筑師從來不用供應商的名稱來描述桁架、梁和支撐,而是用這些部件的大小、負載能力和組成等,這是因為建筑師會基于價格、信譽和質量選擇不同供應商的解決方案,建筑師心里很清楚,用供應商的名字描述的是實施,而通過規范和要求來描述,這才是架構設計,

實施代表著你已經作出了選擇性的決策,這些決策包括成本的考慮、自建與外購、投資回報率、團隊的技能等等,用C++、Java或PHP作為編程語言并不代表你的架構;相反,這些只是為實施架構的組成部分而選擇的工具和材料,選擇微軟資料庫,還是Sybase、MySQL或者Oracle資料庫,這并不是架構,而是實施架構中的資料庫組件,選擇使用開源系統還是由供應商提供的解決方案是另一個實施決策的例子,這與使用微軟的作業系統還是Linux的某個版本同樣是實施決策,

假設現在某個業務需要一個解決方案,架構師負責把業務解決方案轉換成技術解決方案,如果把所有產品羅列起來或許可以解決問題,但是也肯定不會有什么創新的機會,相反,如果從事情的本源或本質出發,往往有機會創造新工具或新方法,這就是非技術設計的概念,例如,當我們要解決近實時的動態交易量統計的時候,可以利用傳統的資料庫來做累加,也可以寫一套類似Storm的工具,既輕松優雅地解決了問題,同時也帶來了創新,做為一個合格的架構師,就要有能力從事情的本源出發去獨立思考問題并做出各種分析和設計,最后拿出一個非常合適的解決方案,

架構師的必備素質

 

 圖4 架構師的八個素質

 

做為一個合格的架構師必須具備八個重要的素質,包括業務理解、技術廣度、技術深度、豐富經驗、美學素養、動手能力和溝通能力,架構師的業務素質就是指要懂業務,對業務有足夠的敏感度,能夠清楚地知道自己的設計能給公司帶來多大的業務影響,對技術素質最基本的要求是深度和廣度,美學素質是要求架構師有美感和藝術感,所以易寶經常安排技術人員聽音樂會,看藝術表演,因為藝術和設計是相通的,動手能力是指在適當的時候架構師能夠上手實際操作,需要寫代碼的時候動手寫代碼,尤其是底層的關鍵代碼,溝通能力也極為關鍵,因為架構師水平再高,如果溝通能力很差,花半天時間說不清楚自己的方案,那么再好的方案又有什么用途?在易寶每個周五的下午請架構師進行內部分享,講講最近都設計了什么有價值的系統,把自己做的解決方案用一句或幾句話清楚地表達出來,因為能簡潔地表達清楚意味著架構師已經深刻地思考和提煉了自己的設計思想,

在美國作業時,曾經有一位CTO跟我說:我不希望架構師有太多的協作,希望架構師都是孤單的鷹,你什么時候看見過鷹是一群一群飛的?真正的雄鷹都是飛得很高很孤獨的,架構師也是這樣,這里并不是說架構師不需要交流,而是在正常的情況下,架構師應該有足夠的智慧和獨立思考能力去做出最優的技術與業務判斷,架構師的位置越高這種孤獨性就越大,假如你是CTO,整個公司的技術問題都要你自己去規劃,并對結果負責,根本沒有人可以商量,要求有鷹飛的高度還有一個原因,就是只有飛到一定的高度才能夠看到全面和整體,另外,除了飛得高,還要求架構師要有鷹一樣敏銳的眼睛,能夠觀察到設計中不為人知而又很重要的細節,架構師還要具備有藝術的品位,設計出的系統足夠優雅,那么,應該怎么理解這個品位呢?每個系統研發人員,如果做研發的唯一目的是實作一些代碼,做出某些滿足業務需求的功能,那么就沒有什么藝術品位,所謂的品位是指有個人獨特的風格,做出的解決方案,具有不同于常人的地方,是經過架構師充分的獨立思考提出來的,我們非常看重有獨立思考和個人風格的藝術品味,

 

 

 圖5 架構師的三商

 

架構師要怎么做才能具備鷹飛的高度、鷹眼的敏銳和藝術的品味呢?首先架構師要有較高的智商,其次,架構師要有一定的的情商,做為一個高級的技術人員,擁有開放的心態、謙虛的態度、幽默的氣質會幫助他傳播自己的設計理念,形成自己的設計風格,贏得廣泛的影響力,再次,還有另外一個不常為人知的悟商亦至關重要,這是百悟科技的負責人張總從老子《道德經》里領悟出來的,我有幸為該書作序,所謂的悟商是指足夠快速感應并適應周邊環境變化的學習能力,做為一個架構師,要能跟隨技術發展的腳步,該做主機系統的時候學習主機系統,該做分步式計算的時候能適應分布式處理,該做移動應用時能設計移動服務,技術在不斷地演進,業務在不斷地變化,在這個世界上唯有變化是永恒的,特別是互聯網技術領域,架構師的悟商有多高,學習和適應能力有多強,基本上決定了這個人能在架構師之路上能夠走多遠,

架構師成長途徑

關于架構師的成長之路,還存在著一個誤區,就是把架構師默認為軟體架構師,因為今天我們所遇到的架構師,大多數都是圍繞著軟體研發,事實上這個認識有一定的片面性,誠然,現今我們所構建的系統都是軟體系統,但是在實際的作業程序中,隨著資訊技術在深度和廣度上的快速發展,除了軟體研發以外,測驗、網路、安全、配置、系統和資料都已經形成了具有自己獨特專業知識和經驗的領域,也都需要各個領域的架構師,比如資訊安全是一個非常專業的領域,要軟體架構師無法完全理解和駕馭資訊安全是勉為其難,網路架構師日常研究的各種網路問題,軟體架構師也難以置喙,因為這是完全不同的兩個領域,資料方面亦如此,能夠把整個公司業務資料之間的關聯性了然于胸的人,一個公司或許能有一兩個,這種人就是資料架構師,現實的情況是,軟體架構師占據主導地位,基本上掩蓋了其他領域架構師的光芒,當然出現今天這種情況的主要原因也是因為大部分的技術領導者也都是來源于研發領域,這種狀態要盡快改變,否則在運維、安全、資料、測驗等其他領域工程師很難有自己的成長空間,

 

圖6 架構師的種類與成長歷程

 

架構師的成長基本上可以分為初級、中級、高級、架構四個階段,初級階段是指大學畢業后的兩年時間,這兩年主要就是學習,目前大學的教材和講義往往比現在企業正在使用或者發展的技術有一個時間差,學校教授的東西可能是幾年前的技術,不是當下正需要的,所以畢業進入企業后要通過不斷的學習趕上新技術發展的步伐,中級階段是指兩年到四年這段時間,主要是積累知識和技能,比如,怎么思考業務問題、怎么解決問題的技能,在這一階段的人會在自己的作業小組內暫露頭角,小有影響力,高級階段是指四到七年這段時間,在這一階段主要是積累經驗,就是說以前類似的業務問題是怎樣轉換成技術解決方案的,這次應該怎么解決,方案的優點是什么,缺點在哪兒,未來怎么改進等等,這個階段的人會逐步在自己的部門內有一定的影響力,開始帶團隊,架構階段是指至少具備七年以上的經驗,在美國,其實架構師不少都是鬢染白發的技術領導者,我在eBay作業的時候屬于比較年輕的架構師,到了架構師這一階段,企業期望架構師具有能夠把各種經驗和知識綜合發揮的智慧,這里強調的是智慧,而不僅僅是經驗,而且要求他們具有跨部門的影響力,也就是架構師的設計方案能夠影響到公司副總裁一級的決策,

給準架構師的建議

總而言之,對普通技術人員成長為架構師,我有五個建議:第一要有高度,培養自己的思維高度,從而對技術和業務有整體的視野,第二要有深度,培養自己獨立思考問題,看清問題本質的能力,第三要有廣度,拓寬自己的技術和業務范圍,從而確保自己不成為井底之蛙,第四要有新度,培養自己的好奇心,對任何相關的東西都感興趣,并想去了解,不斷地學習新技術掌握新技能,第五要有溝通力,培養講清楚方案的能力,特別是用一句話把事情講清楚的能力,今天,互聯網技術飛速發展,已經成為社會和生產的重要推動力,架構師的作用由此變得愈來愈重要,成為很多技術人員的職業目標,從普通技術人員成長為架構師是一條艱苦漫長而且布滿荊棘的路,如何對準目標、設計路徑、培養素質、積累經驗是每個想成為架構師的技術人員都必須要認真思考的問題,

    作者丨從心所愿  

本文來自博客園,作者:古道輕風,轉載請注明原文鏈接:https://www.cnblogs.com/88223100/p/Essential-quality-and-growth-path-of-architect.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/514129.html

標籤:架構設計

上一篇:SpringserviceNullPointerExceptionjakartawebservice

下一篇:HTTPS涉及的加密演算法講解

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more