專訪 | 阿里前輩李智慧:聊聊我這20年的架構經!

引言程序員

就程序員而言,往後的職業發展能夠走3個方向:專攻技術深度、轉團隊管理、晉升架構師。面試

 

我相信成爲一名優秀的架構師,是大多數技術人的追求。但資深架構師的出現概率僅約爲0.3%,若是想在3-5年後穩坐金字塔尖,除了紮實的代碼功底和項目積累,如何有意識地培養技術廣度和架構思惟能力,是你當下應該付出更多精力的。習慣了架構思惟,你能夠從更高的層次、更高的角度去思考你如今作的事情,作出更正確的決定。數據庫

 

北城碼農邀請到前阿里技術專家李智慧老師聊聊他的架構師成長經歷和思考。編程

 

若是你有如下三個疑問,建議花5分鐘通讀。架構

1.什麼樣的人適合作架構師?轉行的人有戲嗎?框架

2.架構思惟在工做中有什麼做用?懂架構是否是就萬事大吉了?分佈式

3.架構的核心思想都有哪些?工具

 

嘉賓介紹oop

李智慧,曾任阿里巴巴技術專家,Intel大數據架構師,擁有20多年編程與架構經驗;設計開發過阿里巴巴的分佈式存儲系統Doris、阿里巴巴印度站、基於Hadoop的大數據倉庫Panthera等;參與過Apache Spark的開源開發,對Spark架構代碼進行過多處優化。有5項分佈式系統發明專利;是暢銷技術書《大型網站技術架構:核心原理與案例分析》的做者,該書被若干高校選爲計算機類專業教材;更是各大技術峯會的常邀嘉賓。學習

 

如下爲專訪內容整理

IT君:您是如何走上技術這條路的呢?還記得拿到第一個Offer的場景嗎?

 

李老師:我大學不是學計算機,可是在學校裏第一次學軟件編程的時候,我就有一種似曾相識的感受,感受和編程有某種緣分,這種感受時隔多年,我依然可以回憶起來,我以爲,對於編程,我多是有一點天分的。可是當時懵懵懂懂,也並無太多的思考和規劃,第一份工做是在一家國營企業作電工。

 

工做兩年之後,有一次陪一個朋友去當地人才市場,看到有家公司展臺前面冷冷清清,過去聊了兩句,原來在招程序員,對20年前一個內蒙古小城而言,程序員絕對是一個新鮮事物,難怪冷清。我試着和麪試官聊了兩句,可能他們實在是找不到人,雖然我既沒有編程經驗,又不是學計算機,可是他們仍是對我表示了極大的興趣。對我而言,最有興趣的是,他們開出的薪水條件要比我當時的薪水高好幾倍。

 

可能他們實在是拿不許要不要錄用一個電工作程序員,最後給我提了一個要求,讓我在一週以內,用Delphi寫一個倉庫管理軟件。之前我在學校學過彙編語言,後來自學過C語言,Delphi語言仍是第一次據說。離開人才市場就去書店買了一本Delphi編程的書,用一天時間把書看完,又借朋友的電腦用兩三天的時間把軟件寫出來,就這樣從一個電工走上了軟件技術之路。

 

如今回想這段經歷,最大的感覺是不少機會都是你毫無準備的時候來臨,而且不會給你過久的時間去證實本身。若是你故步自封,或者被惰性牽制沒有去突破,那機會就會離你遠去了,你又進入了另外一個軌道重複的等待機會。

 

IT君:後來您的職場是如何發展的?給你們介紹一下您的成長里程碑。

 

李老師:在前面這家公司工做了近兩年,開發企業管理軟件,主要邏輯就是對數據庫增刪改查。時間一長,就以爲沒有挑戰,枯燥無聊,比在國營企業還無聊。可是怎麼脫離這種困境?

 

當時想去北京試試機會,可是瞭解了一些狀況之後,以爲去北京也是作同樣的事情,只是換了個地點,工做自己並無什麼改變。因而最後決定報考計算機專業的研究生,提升本身的知識水平,再去尋找更好的工做機會。

 

我當時報考的是北京工業大學人工智能專業,複試的時候卻通知我被調劑到汽車專業了。因而就讀了三年汽車專業碩士,畢業的時候才發現,汽車行業就業狀況很不樂觀,薪水還不如我三年前在內蒙古作程序員的水平,(這裏給你們提個醒,選對行業相當重要)就試着投了幾個軟件開發的職位,很快收到幾個offer,薪水也很是滿意,因而繼續去作程序員。

 

當時是在方正作一個對日外包項目,這是一個10億日元的合同,方正專門成立了一個部門作這個項目,因爲項目比較重要,部門裏幾個高手都被派往日本客戶現場,國內則是包括我在內幾個新招來的人,你們都對這個項目只知其一;不知其二。

 

當客戶對系統總體架構提出了一些要求,我仔細研究了這些要求後,就很主動去找項目總監問:這些架構須要一些框架和工具支撐,業界彷佛沒有知足要求的技術方案,咱們打算怎麼作?項目總監看了我一眼說,那就你來作吧。

 

因而我就在沒有任何準備和經驗的狀況下,成了這個項目的架構師,帶領其餘幾個新同事開發了一套符合客戶要求的技術框架。後來部門的高手從日本回來,部門也擴大到近兩百人,雖然這個技術框架並不完美,有各類問題,可是你們沒得選擇,只能基於這個框架開發整個系統。開發過程當中遇到重要的技術問題,都要過來找我討論,遇到跨層次,跨模塊的技術決策,則必需要我拍板後才能統一執行。

 

此次主動研究和「臨危受命」的經歷,讓我第一次體驗到作架構的樂趣,經過技術手段影響項目和團隊,使本身的技術審美體如今系統的各個方面,將本身的技術傾向和技術理念滲透到團隊全部工程師的意識當中,並由此而引導項目走向成功。

 

如今看來,當時本身的技術水平比較侷限,開發的框架也有很多問題。可是就是在那個時候,我頓悟了關於架構的自我意識,關於技術的做用力,關於技術管理的思想。雖而後來我得到了更多關於技術能力的提高,可是在架構的思想上,我並無太多超越十幾年前的本身。後來看了一些架構方面的書,遇到一些優秀的架構師,恕我愚鈍,至少在架構的本質思想上,彷佛也沒有超越這個高度。

 

IT君:您如今做爲CTO或者首席架構師的角色,站在這個高度,最大的挑戰是什麼,對本身還有什麼要求?

 

李老師:我面臨的最大的挑戰是如何創新,如何超越本身。

 

我有一個悲觀的理論:任何奮鬥的人,都將以失敗結束他的奮鬥史。這句話聽起來很主觀,事實上是能夠證實的:一我的若是經過努力得到成功,他必將繼續努力以期得到更大的成功。可是人必然有自身的侷限,而歷史又有他自身的進程,隨着成功難度的不斷提升,普通人將會觸及他我的能力的天花板,而最傑出的人將會觸及歷史進程的天花板,最終全部努力奮鬥的人都將遭遇到最終的失敗,越是不甘心,越是失敗到懷疑人生。

 

大概在五六年前我意識這一點後,我就再也不單純的追求成功,再也不追求更高的職位,更高的薪水,甚至再也不追求事業的成功,由於我自身的能力水平若是就是這樣一個高度,那麼我越快的獲得這些成功,我就越是接近最終的失敗。我更關注的是,在當下的事情中,我如何得到更高的能力提高,如何提高我能力的天花板,以推遲我最終失敗的到來。

 

而提高本身惟一的手段就是不斷地創新,創新彷佛是一件高風險的事,很容易失敗。可是這些失敗都不是最終的失敗,對於創新者而言,無論是否失敗,都將對世界和自我得到新的認知,將自身的天花板擡高了一點點。

 

可是無論如何,人的體力、精力、意志力都有盡頭,終會有一天連創新也創不動了,我將會坦然面對那一天,而在此以前,我將樂此不疲地和本身玩一個猜謎遊戲:下一個提高我天花板的事情在哪裏?

 

IT君:您曾在阿里任技術專家,帶過的項目很是多,能夠給你們分享一次印象最深或收穫最大的項目嗎?

 

李老師:在加入阿里巴巴第二年的時候,由於前面工做比較出色,我被安排參與另外一個部門的一個重要項目,擔任這個項目的架構師。

 

我在阿里巴巴以前並無互聯網的經驗,加入阿里巴巴第一年作的也是通用的技術框架,和互聯網應用關係不大。剛加入項目組的時候,項目成員對我報以極高的指望,我本身也感受良好,作了一個龐大而浮誇的規劃,在項目啓動會上慷慨陳詞,博得一片掌聲。

 

可是很快,因爲對互聯網產品業務和技術方案都缺少足夠的經驗,我發現本身根本沒法駕馭系統的技術方向。不過當時我已經騎虎難下,爲了解決問題,我引入了更加複雜的技術方案,卻使整個局面更加失控。這時候公司也看出我能力不足,安排了另外一個架構師進入項目,他加入項目組後,很快就扭轉了局面,項目步入正軌,而我則黯然退場。

 

此後大半年的時間我都夾着尾巴作人,低調的作一些具體的開發工做,同時大量學習互聯網相關的技術和業務,特別是公司內的項目代碼和文檔。後來又成功作了幾個項目,從新贏得了同事的尊重。

 

此次項目經歷讓我深入的意識到:架構師是技術團隊的研發核心,掌控着項目技術發展的方向。後來在其餘一些地方我也看到一些陷入泥潭的項目,緣由和現象多種多樣,可是有一個就是:架構師失去了對項目的技術掌控,架構師本身也迷失在項目之中。

 

IT君:您認爲架構設計的核心思想都有哪些?實踐中須要注意什麼?

 

李老師:所謂架構就是總體與部分的關係、以及關鍵細節的設計。架構的核心思想便是如何把握總體與部分的關係,如何設計關鍵的細節。可是架構是無必定之規的,即便是一樣的需求,在不一樣的場景之中,都會有不一樣的難點、重點、關鍵點。不一樣的架構師會有不一樣的理解,甚至同一個架構師在不一樣的時間也會有不一樣的理解,進而產生出千差萬別的架構設計。

 

實踐中,架構師必定要把握住問題的關鍵,必定要找到一個能夠牽一髮而動全身的關鍵點,在軟件設計和開發過程當中,只要把握住這個關鍵點,就能夠驅動項目和團隊向既定的目標前進。相反,若是架構師找不到關鍵點,眉毛鬍子一把抓,早晚會迷失在各類問題和複雜的關係之中。

 

聽說喬布斯有一種能力叫作「扭曲現實力場」,表面上看這是一種現場表現能力,其實背後的本質是從新定義問題的能力。任何問題都有多個方面,大多數人只能看到一面,喬布斯能夠看到問題的其餘面,甚至是它的反面。無論是問題的那一面,其實都是問題本質的呈現,反映了問題的本質特徵。

 

當喬布斯用人們歷來沒想到過的視角,向他們展示問題的反面的時候,他們會以爲事物彷佛變得跟之前不同了,一切都有點光怪陸離,現實被扭曲了。從問題的反面解決問題,解決方法和路徑也會徹底不一樣,全部參與的人也都會所以而受益。

 

架構師在技術領域也須要擁有這種扭曲現實力場,看到其餘人看不到的問題的另外一面,從一個不一樣的視角把握住問題的關鍵,帶領項目走向成功。

 

IT君:謝謝李老師的分享!

 

李老師在專訪的最後建議:每位軟件工程師都應有本身的職業規劃。對技術人來講,軟件架構師就是一個很不錯的職業方向。你可能會問:那麼應該如何成爲軟件架構師?須要鞏固強化哪些知識點呢?建議你先從瞭解架構開始,多嘗試用架構思惟考慮和解決問題,在實踐中練習作架構,最終成爲架構師。

 

由拉勾教育和李智慧老師共同研發的《阿里前輩的架構經》首發!詳情點此查看

相關文章
相關標籤/搜索