【51CTO專稿】對于大部分的程序員來說,,架構(gòu)師都是一個令人向往的角色??梢哉f除了少部分對程序開發(fā)有著極度的熱愛并愿意為之奮斗終身的程序員,,而大部分的程序員都只是把寫代碼作為一個獲得職業(yè)提升的一個必要的累積階段。在不斷的開發(fā)和學(xué)習(xí)各種知識,,經(jīng)驗,,在自我培養(yǎng)和技能強(qiáng)化中不斷的提升,為他們的未來中成為一名合格的架構(gòu)師打下牢固的基礎(chǔ),。 一名優(yōu)秀的架構(gòu)師,他們都是帶著極度的熱情,,踏上正確的路上,,不斷的堅持!這就是一名優(yōu)秀架構(gòu)師的態(tài)度,。下面小編有幸采訪到了51CTO云計算架構(gòu)師峰會的邀約講師,,前任金蝶總體架構(gòu)部SOA架構(gòu)師,現(xiàn)淘寶網(wǎng)高級專家彭淵(花名:千峰)老師,,跟我們一起聊聊關(guān)于他的架構(gòu)師歷程,。 前任金蝶總體架構(gòu)部SOA架構(gòu)師,現(xiàn)淘寶網(wǎng)高級專家 千峰 千峰簡介:從業(yè)Java技術(shù)領(lǐng)域十多年,,撰寫過多款開源軟件,,擁有軟件著作權(quán)的代表作有:BS系列軟件(包括財務(wù)進(jìn)銷存、OA產(chǎn)品,、CRM等),、FMS視頻會議、Flash網(wǎng)站生成軟件,。其中BS系列軟件獲得過風(fēng)險投資,, FMS視頻會議獲得金山舉辦的首屆中國優(yōu)秀軟件創(chuàng)新大賽優(yōu)秀獎。其中《BS財務(wù)進(jìn)銷存》,、《FLASH網(wǎng)站生成軟件》在華軍,、天空可免費(fèi)下載?!短詫毞植际讲⑿杏嬎闼暮弦豢蚣蹻ourinone》是云計算方面作品,,目前已經(jīng)通過壓測并用于淘寶業(yè)務(wù)場景, wordcount和排序等經(jīng)典指標(biāo)均優(yōu)于hadoop。 詳見技術(shù)博客 (可下載開發(fā)包和demo):http://3503265.blog.51cto.com/ 專長與研究領(lǐng)域:千峰踏入IT行業(yè)至今差不多12年了,一直做Java技術(shù)領(lǐng)域,,幾乎Java SE, Java EE,Java ME都涉及過,。除此外,他還比較熟悉FLASH音視頻技術(shù)和少量的C技術(shù),,主要是因為Java在音視頻和操作系統(tǒng)層面控制比較弱的原因,。而在應(yīng)用方面,B/S結(jié)構(gòu)的企業(yè)軟件架構(gòu)更是他的專長,,并擁有一系列軟件著作權(quán),。在淘寶先后在交易中心、中間件,、核心系統(tǒng)部門,,主要研究非法軟件防范(秒殺器,炒信用,,代拍,爬蟲等),、大數(shù)據(jù)處理,、語義分析、分布式計算,、機(jī)器資源利用等領(lǐng)域,。 從對IT熱愛到程序員生涯 我在高中時買了臺中英文小霸王游戲機(jī)(那時有電腦的家庭很少),可以接在電視上玩,,里面有個Basic編程的,,我第一次學(xué)會了goto語句。大學(xué)時喜歡打電腦游戲,,后來又覺的游戲打的好不算什么,,當(dāng)時流行做個人主頁,有個漂亮的個人主頁很有面子,,于是我就買了本FrontPage的書,,暑假關(guān)著門學(xué)做網(wǎng)頁,穿插一些js動態(tài)效果和applet動畫,,看見流行flash動畫,我又學(xué)習(xí)flash腳本,。后來去找實(shí)習(xí)工作,,別人說我搞的這些沒用,,他們不需要網(wǎng)頁制作,他們要用PB+SQL Server,,然后我又繼續(xù)學(xué)習(xí)數(shù)據(jù)庫應(yīng)用,,一直到畢業(yè),我自學(xué)了很多VC++/MFC/ODBC等東西,,也學(xué)習(xí)了Java。我大部分的編程都是靠自學(xué),計算機(jī)課程和老師教的幫助比較小.我的第一份工作是基于Java編程的,,還專門到bea公司進(jìn)行了J2EE培訓(xùn),,后來就一直做了下來。 有朋友問過我,,為什么只做Java編程,,不去做C編程。實(shí)際上,,如果僅僅是編程語法語句,,任何一種語言我都可以很快學(xué)會。關(guān)鍵Java技術(shù)已經(jīng)是一個從無線到桌面到Web到ic卡的完整的技術(shù)體系和規(guī)范,,并生長出各種技術(shù)生態(tài)系統(tǒng),,如果要考慮快速落地實(shí)現(xiàn)一個系統(tǒng),,很多處理經(jīng)驗是要積累起來的。 從程序員到架構(gòu)師的經(jīng)歷 “從感興趣,、學(xué)習(xí),、懷抱當(dāng)比爾蓋茨理想”到“走入這個行業(yè)靠編程謀生并成長為一個架構(gòu)師”是一個曲折蛻變的過程,我記的好像是在2004年左右,架構(gòu)師這個崗位從國外傳入,,很多公司出現(xiàn)了招聘架構(gòu)師,,以前比較多出現(xiàn)系統(tǒng)分析員。什么是架構(gòu)師,,各公司的標(biāo)準(zhǔn)也不一樣,,架構(gòu)師更多是個崗位,你只要聘上了就是架構(gòu)師,。我自己的經(jīng)歷大概是這樣的: 1)架構(gòu)師要能hold的住一個軟件或者系統(tǒng)的設(shè)計和開發(fā) 2002年我到廣東發(fā)展沒有經(jīng)驗,,被兩個老板騙到南海軟件園包吃住干過一段時間,當(dāng)時去投標(biāo)一個南海民政的項目,,公司是打著北方一個分公司名義的皮包公司,,找了幾個畢業(yè)不久的學(xué)生當(dāng)工程師,又找了一個頭銜多的海龜說是他們的技術(shù)總監(jiān),,湊成一只廉價成本的團(tuán)隊去忽悠上百萬的項目,,老板說這個項目副市長親口告訴他已經(jīng)交給我們做了,只需要招標(biāo)走走形式。 由于公司主要靠兩個老板的關(guān)系,,沒有自己的技術(shù)產(chǎn)品,,當(dāng)時老板從其他公司找來一套民政系統(tǒng)軟件,Web化的,,老板說是其他公司一個資深點(diǎn)小伙子寫的,,說其實(shí)1-2個人就可以寫了,沒什么難的,,叫我改成公司的產(chǎn)品去投標(biāo),。當(dāng)時接到這套完整的Web系統(tǒng)軟件時,雖然是Java的,,但是沒有用到多少j2ee里面花哨的東西,,都是jsp+Javabean這種簡化的技術(shù),也有控制器等角色,,都是jsp實(shí)現(xiàn)的,,里面復(fù)雜的頁面流和大量Javascript腳本顯示出開發(fā)者嫻熟的Web編程功底,數(shù)據(jù)表可以自由搭建,,里面有些簡化的生成管理模塊的工具,。當(dāng)時有種hold不住的感覺,感覺自己Web程序還寫的太少,,還未積累大量Web編程的處理經(jīng)驗和將業(yè)務(wù)系統(tǒng)通過構(gòu)思設(shè)計轉(zhuǎn)換成軟件的能力,。雖然急功近利的老板認(rèn)為我可以,一再給我畫餅,,主要原因是因為我們便宜,。當(dāng)時感覺技術(shù)不用花哨,簡單的技術(shù)只要用的多用的精,,一樣可以設(shè)計完整高效的系統(tǒng),。 說白了,架構(gòu)師能hold的住一個軟件或者系統(tǒng)的設(shè)計和開發(fā),,能將業(yè)務(wù)需求變成可實(shí)施的工程,。后來看,那個能hold住民政系統(tǒng)的小伙子算是架構(gòu)師吧,。 老板缺乏對項目技術(shù)難度的認(rèn)識,,認(rèn)為隨便找?guī)讉€工程師就能做,也許他之前也這樣忽悠到過項目,,但是這個項目最后沒中,記的是東軟通過重重關(guān)系中標(biāo)了,。 2)有一天你發(fā)現(xiàn)自己的能力可以去當(dāng)架構(gòu)師了 從那以后幾年內(nèi),我都處處留意Web系統(tǒng)整個的架構(gòu)設(shè)計,,從登陸,、用戶,、權(quán)限、菜單,、session,、日志等基礎(chǔ)管理到從界面到動作處理到業(yè)務(wù)邏輯層到數(shù)據(jù)庫設(shè)計的整個過程,模塊的銜接和各種頁面流的轉(zhuǎn)發(fā)傳送,,每種實(shí)現(xiàn)技術(shù)我都嘗試出最好的,,并積累下來,我又從一個香港人那里學(xué)到一套更好客戶體驗的Web管理界面和交互方式,,并轉(zhuǎn)換成自己的東西用進(jìn)去, 我注重強(qiáng)化自己各方面的開發(fā)技能, 連簡單的美工也嘗試自己處理,。 我能自己實(shí)現(xiàn)一個完整的Web系統(tǒng)后就自己開個工作室,接一些小項目做,,直到后來為一個小公司的老板做外包,,我演示了自己的Web架構(gòu)給他看,他說我覺的你挺適合來我們公司做架構(gòu)師,,那是第一次有人說我是架構(gòu)師,,有點(diǎn)躊躇滿志。他們公司的主打產(chǎn)品是套domino的oa軟件,,老板出身ibm,,對domino/lotus熟悉,但是由于市場和客戶需求,,想改成Java版的,,但是又一直猶豫不決,我說我試試看吧,。oa的主要核心技術(shù)是工作流引擎,,他說他們已經(jīng)做了很多年,Java沒那么容易實(shí)現(xiàn)的,。那段時間我反復(fù)研究工作流的原理,簡化成工作流定義,,工作流引擎,,工作流實(shí)例幾個模塊融入進(jìn)已有架構(gòu)中,并做了他們沒有的Web界面編輯流程,,工作流可以搭建并生成流程代碼,,我順便把oa的常用辦公流程業(yè)務(wù)模塊也生成了出來,配合權(quán)限體系能完成一個基本oa系統(tǒng)審批功能了,。隨著系統(tǒng)功能越來越完善,,本以為他會高興的,誰知道他的臉色越來越難看,,有天居然以莫須有的罪名把我炒掉了,。 我也許有問題不善于揣摩老板的心思,,但是他的心胸也絕對是有問題的,所以最好不要到小企業(yè)當(dāng)架構(gòu)師, 大企業(yè)就像海,容得下各種魚,小企業(yè)就象灘水,只容的下蝦米.后來我繼續(xù)寫oa系統(tǒng)并包裝成完整的產(chǎn)品,,又找來小投資公司一起在社會上銷售和做軟件服務(wù)折騰了4-5年,。 總結(jié):如果你能冒著被k掉的危險設(shè)計出一個企業(yè)的核心產(chǎn)品了,那你可以去當(dāng)架構(gòu)師了,。 3)聘大公司的架構(gòu)師 我覺的自己相比經(jīng)營公司更適合做技術(shù).于是去大公司發(fā)展技術(shù), 我應(yīng)聘的第一家大公司是家金融軟件企業(yè), 2007年在美國紐交所剛上市,號稱金融外包全國第一,,當(dāng)時紅極一時.面試官看上去像老總(其實(shí)只是經(jīng)理,他們公司經(jīng)理看上去都像老總),,我說我要聘架構(gòu)師, 他臉一沉,,說不能都當(dāng)領(lǐng)導(dǎo),得有人干活,,先從高級工程師做起吧,。我不同意,他說那好吧,,有三道算法題你上機(jī)做一下,,不能上網(wǎng)。其實(shí)那三道算法題是有一定難度的,,要在規(guī)定的時間做出來,,并且要能運(yùn)行出正確結(jié)果,當(dāng)時有點(diǎn)緊張,,因為知道他是在壓制我的自信,,如果不能正確做出,肯定羞愧的不好意思再提聘架構(gòu)師了,。其中最難的一道是一個程序試探路徑的算法,,遍歷出所有可行的路徑,好在我的編程功底還不錯,,平時也喜歡寫寫這方面的算法,,最后順利做出了。他讓一個研發(fā)工程師過來檢查,,沒問題,,然后似笑非笑的說,既然你堅持要當(dāng)架構(gòu)師,,那就成全你吧,,看你還算是個人才,給你加多1000塊錢,,但是你兩年之內(nèi)不要跟我提加工資,,我們兩人定個君子協(xié)定。我只能接受并謝主龍恩,。 進(jìn)公司后我發(fā)現(xiàn),,其實(shí)他們公司其他的架構(gòu)師都是不用寫程序的,,而且架構(gòu)師在他們眼里也就是一個干活的,比工程師好一點(diǎn),,但并沒有多少尊重,。架構(gòu)師的上面是項目經(jīng)理,再上面是經(jīng)理,,總監(jiān),,總監(jiān)上面還有很多領(lǐng)導(dǎo),架構(gòu)師向項目經(jīng)理匯報,,由項目經(jīng)理指揮派活,。應(yīng)聘項目經(jīng)理的是不需要上機(jī)編程的,技術(shù)弱點(diǎn)也可以,,只要溝通好,,領(lǐng)導(dǎo)認(rèn)可就行,而且待遇更高,。 這個公司雖然有很多架構(gòu)師,,但只是另一種小主管意義的頭銜,當(dāng)時在那個環(huán)境下也很迷惘,,想往管理上轉(zhuǎn)型,,但是他們不同意,認(rèn)為我干活更合適,。后來這家7000人的企業(yè)因為非?;靵y的政治斗爭和在美國股市上做假賬,在2011年被退市,,然后就迅速崩潰了,,讓人感慨不已,這就是it行業(yè),,市場總在無情的洗牌,。 說到這里,也許才踏入行業(yè)的程序員們有點(diǎn)失望,,現(xiàn)實(shí)中的架構(gòu)師沒有想像中的那么令人向往,,國內(nèi)技術(shù)路線發(fā)展也注定坎坷。但是每個企業(yè)對架構(gòu)師的定位標(biāo)準(zhǔn)和尊重程度都不一樣,,不能說天下烏鴉一般黑,互聯(lián)網(wǎng)企業(yè)比傳統(tǒng)軟件外包企業(yè)要好很多,。而且上面說的也只是我個人的經(jīng)歷和觀點(diǎn),,不代表所有的現(xiàn)實(shí)環(huán)境。 架構(gòu)師的成長曲線 從如何加強(qiáng)技能到自我培養(yǎng) 1)加強(qiáng)技能修養(yǎng) 有句俗話說的:不怕賊偷,就怕賊惦記,。只要惦記上要掌握某項核心技術(shù),,不掌握誓不罷休,,總會不知不覺在提高的。 但是很多程序員加強(qiáng)技能修養(yǎng)是希望得到公司的升遷回報乃至市場的利益回報的,,如果他發(fā)現(xiàn)技能提升并不一定得到認(rèn)可和回報,,那么也沒有多少人真正愿意往這條路上走了。因此,,搞技術(shù)需要一點(diǎn)興趣的,就象平時喜歡搞點(diǎn)吹拉彈唱的那些人一樣,我平時也喜歡搞點(diǎn)編程什么的,,所以一直還做著,。 另外: 每個公司對架構(gòu)師都有自己的定義,不一定是強(qiáng)調(diào)技術(shù)方面的技能,,你會發(fā)現(xiàn): 有擅長金融業(yè)務(wù),、ERP業(yè)務(wù)、電商業(yè)務(wù)的架構(gòu)師 有擅長產(chǎn)品規(guī)劃的架構(gòu)師 有擅長售前和解決方案的架構(gòu)師 有擅長咨詢顧問的架構(gòu)師 有擅長硬件網(wǎng)絡(luò)的架構(gòu)師 有擅長RUP/軟件工程/CMM5/敏捷的架構(gòu)師 有擅長管理協(xié)調(diào)的架構(gòu)師 等等... 我在社會上各個公司里見到太多太多 所以不能簡單的認(rèn)為提高了軟件編程的技能修養(yǎng),,就能達(dá)到所在企業(yè)架構(gòu)師的標(biāo)準(zhǔn)了,。要學(xué)會尊重不同類型的架構(gòu)師,在大企業(yè)里往往這些崗位的存在都有他的現(xiàn)實(shí)意義和對公司的價值,,沒有眾多架構(gòu)師和領(lǐng)導(dǎo)的支持,,很難推動起來辦成事。 2)如何自我培養(yǎng) 我個人從實(shí)踐中的成長更多一些,,因為我大學(xué)畢業(yè)就投身這個行業(yè)去努力了,,沒有繼續(xù)讀書深造。 但是實(shí)踐和理論都是重要的,,有的人實(shí)踐中碰到障礙后,,干脆從此就只做一個理論專家,或者是自身缺乏理論學(xué)習(xí),,到處散布理論無用論,,兩種極端都不可取的。 從我的感受來說,,我寫bs財務(wù)進(jìn)銷存軟件時,,苦于不懂財務(wù)理論知識,花了很多時間去學(xué)習(xí)會計憑證,、資產(chǎn)負(fù)載,、折舊算法這套東西,也包括當(dāng)時為了做其他軟件去學(xué)習(xí)股票行情趨勢理論,、博彩概率和分成理論等等,。學(xué)這些都不為考試,就為軟件寫出來能賣出去,。同樣的技術(shù),,如果做業(yè)務(wù)簡單不需要專業(yè)理論知識的產(chǎn)品,,比如企業(yè)網(wǎng)站、圖書管理這些,,太多公司都可以做,,很難形成核心競爭力。現(xiàn)在做fourinone也參考了很多行業(yè)分布式論文理論,。 我自己從程序員到架構(gòu)師的成長上面經(jīng)歷已經(jīng)描述了,,但是如上面說的各公司定義這個過程的成長標(biāo)準(zhǔn)是不一樣。 比如: 有的企業(yè),,為公司完成一定數(shù)量和規(guī)模的項目,,就可以從程序員提拔為架構(gòu)師了 有的企業(yè),為公司解決一系列重大的問題,,就可以提拔為架構(gòu)師了 有的企業(yè),,前一任架構(gòu)師走了,就可以提拔上去了 有的企業(yè),,經(jīng)驗到一定程度,,就升上去了 ... 關(guān)于架構(gòu)師的培養(yǎng),有的國外牛人會認(rèn)為不是每個程序員都能成為架構(gòu)師, 一定要有比較強(qiáng)的抽象建模能力和邏輯思維能力才可以,就像不是每個司機(jī)都能成為賽車手,。這個話如果拿到國內(nèi)講估計會得罪很多人了,,因為大家都會強(qiáng)調(diào)架構(gòu)師的多樣性,都會按照自己的優(yōu)勢去定位架構(gòu)師的標(biāo)準(zhǔn),。 架構(gòu)師成長模型 團(tuán)隊中如何開展架構(gòu)師相關(guān)工作 通俗的比喻,,跟裁縫做衣服也差不多,首先要量體裁衣(收集需求),,然后選擇布料(技術(shù)選型),,設(shè)計草圖(建模)把腦海里的設(shè)計畫出來,做好一件衣服是要針線活功底和經(jīng)驗的(技術(shù)積累),,同時要利用現(xiàn)有的拉鏈,、鈕扣等半成品(組件重用),最后把樣品做出來(架構(gòu)開發(fā)),,最后交給工人按照樣品重復(fù)性生產(chǎn)(基于架構(gòu)實(shí)現(xiàn)重復(fù)性開發(fā)工作量),。 除了需求分析、技術(shù)選型,、設(shè)計開發(fā)外,,還有些其他的工作需要架構(gòu)師做。 很多時候公司或者老板并不喜歡你把核心的東西提取出來,一個人單槍匹馬掌握了就完了,更希望你把團(tuán)隊培養(yǎng)起來,把人才挖掘出來,所以架構(gòu)師還肩負(fù)著帶徒弟做設(shè)計的職責(zé),。 另外還包括 技術(shù)培訓(xùn),、協(xié)助軟件產(chǎn)品規(guī)劃、協(xié)助市場前景分析等方面工作。 堅持是最大的挑戰(zhàn) 這次參加infoq架構(gòu)師峰會,,看到有朋友討論到架構(gòu)師應(yīng)該獨(dú)立做,但是沒有團(tuán)隊,,沒有業(yè)務(wù)owner權(quán),,架構(gòu)師設(shè)計出來的東西如何得到別人的支持呢,我以fourinone為例說明碰到的挑戰(zhàn)和如何去克服,。 fourinone發(fā)布1年多以來,,以無依賴100k大小實(shí)現(xiàn)眾多分布式核心技術(shù),淘寶內(nèi)壓測多項指標(biāo)都o(jì)k,,雖然遭受其他框架愛好者和信任者質(zhì)疑,,但是至今為止,也未見到挑出一些真正的明確的毛病,。一項好的產(chǎn)品,,如何讓大家能充分認(rèn)識到他的優(yōu)勢,并梳理清楚大家贊成或反對的技術(shù)或非技術(shù)原因,,這是對架構(gòu)師一項大的挑戰(zhàn),。 對人的攻關(guān)遠(yuǎn)比對技術(shù)的攻關(guān)復(fù)雜,有時候就算產(chǎn)品做的好也是有人反對的,,所以要盡可能去定位成一個協(xié)助者,,而不是一個取代者,就象jdk可以實(shí)現(xiàn)hadoop所有功能,,但是沒人覺的它是hadoop的取代者,。fourinone更多的是定位在框架和api,為各種的分布式問題提供簡化而強(qiáng)大的支持,,可以用它改進(jìn)完善已有系統(tǒng),,也可以用它建設(shè)新系統(tǒng)。它是一臺縫紉機(jī)和一條拉鏈,,而不是一件完整的衣服,,不會對另一件衣服夠成沖突。 當(dāng)然,,最大的挑戰(zhàn)還是堅持往架構(gòu)師這條路上走,,朋友們?nèi)绻龅揭粫r困難也不要著急,行到水窮處,,坐看云起時,,忽悠忽悠也就過去了。 最后感謝你們的真誠采訪,,算不上成功權(quán)威,,胡亂說了一通,希望大家有所借鑒和收獲。 【編輯推薦】 【責(zé)任編輯:小林 TEL:(010)68476606】
|
|