(五)第五年

2018-02-24 15:48 更新

2011-12-18 [ 原文鏈接 ]

  第五年:

  有人擔(dān)心,寫到后面會不會變太監(jiān)了。其實(shí)越往后面就真的越難寫,一方面是那些人就在你旁邊,你要顧及他們的感受;而那些事,也才剛剛過去或者正在進(jìn)行中,身在其中很難有個(gè)客觀的描述。不過既然都寫了這么多,那就繼續(xù)寫下去吧,后面的事情比較近,也不太有名,估計(jì)感興趣的人不多了。

  我曾經(jīng)寫過一篇博文,是對于“小黑屋”的描述,淘寶有個(gè)傳統(tǒng),牛叉的項(xiàng)目都要在小黑屋中進(jìn)行,當(dāng)年我們做[我的淘寶]和[招財(cái)進(jìn)寶]的時(shí)候,有人羨慕我被關(guān)在一個(gè)小黑屋里面。到了08年的時(shí)候,我開始羨慕別的關(guān)在小黑屋里面的人了。這樣的人有兩撥,一撥人做了傳說中的[淘寶商城],一撥人做了傳說中的[淘寶系統(tǒng)3.0]。做淘寶商城的那撥人暫且不說,淘寶主站系統(tǒng)在那個(gè)時(shí)候經(jīng)歷了一次翻天覆地的變化。

?  因?yàn)榘l(fā)展實(shí)在太快,淘寶的系統(tǒng)一直處于變化之中,但大的版本變遷,大概有兩次,一次是把最初那個(gè)LAMP架構(gòu)的系統(tǒng)遷移到Java平臺上,一次是把集中的Java系統(tǒng)拆分成多層的分布式系統(tǒng)。從PHP到Java在04年就遷移完畢了,我去的時(shí)候正趕上遷移完成后那幫Sun的工程師開始做支付寶,所以我錯(cuò)過了。從集中的Java平臺拆分成多層的分布式系統(tǒng)的時(shí)候,我在做[淘寶旅行],又錯(cuò)過了。

  我一直相信像[淘寶旅行]這樣的垂直市場才是最好的業(yè)務(wù)模式,不可能所有的商品用同一種展示方式,也不可能所有的交易用同一個(gè)流程。但在主站拆分之前,要做垂直市場只能重新做一個(gè)系統(tǒng),拆分之后,只需要在業(yè)務(wù)邏輯層重組一下就可以了。所以這次網(wǎng)站的拆分,不僅撐住了不斷上漲的流量,也支持了后續(xù)幾年新的業(yè)務(wù)的發(fā)展。在拆分的過程中有很多技術(shù)的創(chuàng)新,我們從使用技術(shù)到了創(chuàng)造技術(shù)的階段。記得有一次我們跟騰訊的工程師交流,大家提起了那個(gè)時(shí)候各自做了一個(gè)文件存儲系統(tǒng),仿照GFS,淘寶做了一個(gè)TFS(taobao file system),騰訊做了一個(gè)TFS(tencent file system),在GFS的理論基礎(chǔ)上各自有不同的創(chuàng)新。除此之外還有Key-value的緩存系統(tǒng)、消息中間件、Java中間件、海量數(shù)據(jù)的存儲和計(jì)算等等。一個(gè)系統(tǒng)發(fā)展到10億流量的級別,你不得不做技術(shù)創(chuàng)新。

  這些我都錯(cuò)過了。

  但[淘寶旅行]最初兩年的發(fā)展非常緩慢,商城在做業(yè)務(wù)的創(chuàng)新,主站在做技術(shù)的創(chuàng)新,我們這個(gè)團(tuán)隊(duì)游離于商城和淘寶主站之外。這個(gè)時(shí)候,有人來挖我了。

  我總是容易被女人說動(dòng),尤其是漂亮的女人,而郭芙就是這樣的女人。她問我淘寶主站拆分之后,對測試有什么挑戰(zhàn)?我說系統(tǒng)分層多了,出錯(cuò)的幾率大了,但功能測試無法探測到下層。她問有沒有辦法深入到代碼級別來測試?我說有但很難做。她說難才找你的嘛,有什么辦法來作?我說做單元測試,但單元測試最好讓工程師自己做,我們做再往上一層接口的測試。然后她說英雄所見略同,我已經(jīng)有幾個(gè)人在做了,你愿不愿意一起把這事做大?這時(shí)候發(fā)現(xiàn)她挖了一個(gè)坑給我跳。(^_^) ?不過這是淘寶項(xiàng)目開發(fā)中的一項(xiàng)很大的變化,做好的話將對系統(tǒng)的穩(wěn)定性有很大保障,而我也覺得每天在那里賣機(jī)票有點(diǎn)乏味了,那就搞點(diǎn)沒人搞過的事情吧。

  我做過開發(fā),做過PM,兼職做過PD,還像SQA一樣搞過幾個(gè)流程,在08年底,我又開始了測試工程師的生涯。進(jìn)到測試團(tuán)隊(duì)之后我發(fā)現(xiàn)以前對測試的認(rèn)識都太膚淺了,尤其是淘寶的測試團(tuán)隊(duì),其測試技能和測試方法是業(yè)內(nèi)頂尖的,我要做的就是招募一個(gè)能寫Java代碼的有測試思路的團(tuán)隊(duì),但后來發(fā)現(xiàn)沒有這樣的人。于是招募能寫代碼的,然后給他們培訓(xùn)測試方法,另外也吸收能做測試的,給他們培訓(xùn)寫代碼的技能。在2009年的上半年,我大半的精力都放在了招人和培養(yǎng)人上面,團(tuán)隊(duì)從4個(gè)人增加到19個(gè)。我記得跟鐵花一起做接口測試工程師的培訓(xùn),有個(gè)外號叫老鴇的,給我們?nèi)×藗€(gè)名字——“花柳組合”。

  接口測試的思路很簡單,就是用測試代碼來驗(yàn)證系統(tǒng)代碼的邏輯是否正確。但做起來很困難,最大的困難就是被測代碼太“擁抱變化”了,三天兩頭的變,測試代碼經(jīng)常會失效;另外一個(gè)問題就是要驗(yàn)證一個(gè)業(yè)務(wù)邏輯,也許要用10倍的測試代碼才能覆蓋,所以這事兒也是一個(gè)體力活。我們發(fā)現(xiàn)系統(tǒng)里面越往下層,變動(dòng)越小,邏輯越簡單,于是我們就從最底層的IC/TC/UIC這些開始測試。測試代碼寫完之后放入持續(xù)集成的環(huán)境中,一旦被測代碼提交SVN,測試代碼就回歸一遍,把錯(cuò)誤信息發(fā)布出來。09年是這個(gè)團(tuán)隊(duì)異常艱難的一年,我們把最底下一層的代碼都做了接口測試,有些還有性能的測試。我記得做UIC接口測試的時(shí)候,模擬了10億以上的請求量,結(jié)果發(fā)現(xiàn)了JDK里面的bug,后來提交給了Sun。做這些事情的過程中我們也對常用的測試方法做了一個(gè)抽象,弄了一個(gè)測試的框架,寫了一本《接口測試白皮書》。

  我跟郭芙說既然我們做了這么多事情,有這樣的實(shí)力,就可以高調(diào)一點(diǎn),向外傳播我們的影響力,于是我們提出了一個(gè)愿景:“做測試的行業(yè)標(biāo)準(zhǔn)”。她任命我們“花柳組合”一方面去維護(hù)qa.taobao.com這個(gè)博客,一方面對內(nèi)開展大量的學(xué)習(xí)和培訓(xùn),我們叫它“3T交流會”(taobao test technology 或者 taobao test team 或者 taobao test training 都行)。

  在測試團(tuán)隊(duì)做的很開心,也有機(jī)會跟更多可愛的女孩子共事。但從很多人的眼光來看,一個(gè)開發(fā)的人員去做測試好像有點(diǎn)奇怪,我也常常思索自己這么跳來跳去到底好不好。直到前面一段時(shí)間,網(wǎng)上流行3種青年,我也把工程師大致分了一下類別:普通工程師跟著業(yè)務(wù)跑,來啥需求做啥事;文藝工程師專注于自己的領(lǐng)域,研究的非常精深;2B工程師跳來跳去,啥都干,啥都淺嘗輒止;還有一種工程師叫牛B工程師,啥都能干,啥都精通(這種人在工程師心中叫“神”)。而我應(yīng)該屬于第三種,不過我幸運(yùn)的是,淘寶里面機(jī)會太多了,我做的都是自己喜歡的事情。?

  08年的年底,我被提升到了M1。沒有看錯(cuò),當(dāng)時(shí)從P6到M1是升級了,悲劇的是過了一年之后,公司更加重視專業(yè)能力,M1==P6 了。

  也許是看我在測試團(tuán)隊(duì)把培訓(xùn)做的風(fēng)生水起,09年底的時(shí)候,又有人來找我了。

  

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號