我在淘寶做前端的這三年 — 第一年

於江水發表於2019-02-26

轉眼已經離職半年多了,早就想寫一篇工作總結,但由於一直在準備英語考試,又需要處理結婚和房子裝修,沒想到一拖拖了半年。在淘寶做前端是我第一份簽了勞動合同的工作,在這個人才濟濟的大公司裡,接觸了非常多的人和事物,也學到了非常多的東西、開闊了眼界。所以還是有必要做一個回顧和總結,一是自己備忘,二是或許對一些前端新人有所幫助,因為這篇文章會涉及到一些入職、職業規劃、招聘、晉升、離職等方面的資訊。

由於篇幅過長,三年總結將會分三篇釋出:

第一篇(第一年)主要總結如何進入淘寶要用什麼樣的策略,如何站在老闆視角看問題,我眼中的阿里文化等(已釋出:juejin.im/post/5c74d4…)。

第二篇(第二年)主要總結如何評審需求和推進專案,如何理解業務,飛冰專案的起源等(已釋出:juejin.im/post/5c7daf…)。

第三篇(第三年)主要總結如何管理開源專案、推廣專案,對招聘面試的思考,以及技術危機,我離職的原因,技術移民的考慮和未來規劃等(已釋出:juejin.im/post/5c811e…)。


來淘寶之前

時間先回到 2011 年下半年大一的一個晚自習,在思考自己未來想要從事計算機哪一個領域,當時找了張紙用座標軸畫了 市場前景個人興趣 兩個軸,羅列技術領域和個人特點,篩選出了 安卓開發 和 網頁製作 這兩個方向。鑑於個人特性偏視覺和感覺而非邏輯而且高中一直在折騰各種原始碼搭網站,不太擅長底層的開發,最終選了網頁製作,後來發現這個行業叫做前端開發。

從那之後開始專注的學習,上課和自習都是看自己的技術書,在宿舍就是藉助開發 WordPress 主題進行實踐,並寫很多文章(最早在 潛行者m 部落格上寫)。當時看過一本很俗氣的職業規劃書,有個理論是挺認同的,專注一個領域三年可以成為高手,五年成為專家,十年成為高階專家。由於我的大學一般,分析下來能競爭的就是開發經驗了,如果專注開發三年,畢業時的開發經驗或許可以提升競爭力跟名校競爭一下。所以之後能逃課就逃課,絕大部分時間用來學習前端,再後來進入兩個外包團隊做專案,切了幾十個整站專案,鍛鍊了各種前端基礎技能同時還實現了經濟獨立。

當時各種技術團隊都有部落格,淘寶 UED 部落格算是最大最棒的一個,自然也成了我的夢想團隊。大二下學期就開始關注秋季校招並線上做了下題看了看流程為大三做準備(其實有能力的同學大二到大三的假期也是可以去淘寶實習的)。大三繼續瘋狂寫部落格來提升一些名氣,功夫不負有心人,終於引來了前輩的邀請:

我在淘寶做前端的這三年 — 第一年

“希望我能考慮下。” 還需要考慮啥??我做夢都能笑醒了,馬上聯絡過去告訴了目前的一些情況,並在後續知道春季實習生招聘計劃後讓他幫忙進行了內推,之後兩個技術電面就通過了可以去實習了,可以算是相當順利了。當時也有投一批二線網際網路公司做兜底,本來覺得囊中取物,沒想到裡面有些公司很多簡歷關居然都掛了。感覺面試和找工作,運氣成分其實挺大的。

在這段經歷中,我深刻的感受到了“機會總是留給有準備的人”這句話,雖然看起來挺俗的。運氣固然重要但如果沒有提前思考規劃和學習也是很難抓住的。計算機行業有個好處就是技術水平高於一切,對於學校不好或者專業不符的同學也是有機會的,關鍵還是看興趣持久不持久。

正式入職淘寶

在淘寶的第一年並不是從 2015 年 7 月畢業開始的,由於我覺得周圍同事都會很厲害,為了早早熟悉工作情況,15 年 3 月多過完年我就趕緊申請離校來淘寶繼續實習,只在快畢業那段時間,請假幾天返校處理畢設和合影等。其實普通學校也有一些優勢,比較容易好說話,跟老師申請後經過老師反覆確認淘寶不是一個詐騙公司後,就放行了。

一回去實習,發現之前實習的團隊居然拆了(第一次體會到“變化“),自己從基礎架構挪到淘寶交易團隊了,跟著師兄做購物車,後來還沒正式簽約就開始獨立負責淘寶購物車業務,這時候要是出了什麼事情背鍋,是真的臨時工。

得益於“笨鳥先飛”,早在勞動合同簽約之前就開始獨立負責業務線,很多同屆同學畢業才開始由師兄帶領熟悉業務,所以在簽約三個月左右的轉正面試上,我有很多內容可以彙報。也正是因為這樣,事後 HR 姐姐說我的分享在團隊裡算是比較好的,後面組織了一期新同學分享會,讓我又做了一次“轉正面試”分享。大力是可以出奇跡的,笨鳥真的要想辦法先起飛。

淘寶購物車業務

這個階段基本上就是跟著 PD 走,來需求就評審,評完了就儘快做,做好了就測試,沒問題就上線,基本上像阿甘一樣。畢竟這種核心系統挺穩定的,需求迭代節奏也比較緩慢。

直到 15 年雙十一的一個需求,自己才第一次感覺到自己的工作價值。那是 15 年 10 月國慶後,雙十一需求都基本做完了,而且快要進行全鏈路壓測和封網了。這時候一個推薦演算法團隊的人找過來希望新增一個需求,演算法介面都已經開發完成了需要前端做介面對接上去。由於早已經過了需求視窗期,完全可以直接拒掉,由於只涉及到前端部分,PD 將這個需求轉給我自己評估,並給出建議如果不影響其他需求和穩定性並且來得及就做,來不及就不做。

這個需求是當購物車某個商品由於庫存或者狀態失效後,出現一個“查詢相似商品”的按鈕,點選可以推薦相似商品快速加購。我看了下這個需求非常合理而且必要,因為雙十一當天庫存消耗非常快,很多來不及下單的商品可能迅速庫存為零失效,但自己又很需要這個商品,直接有個入口迅速加購相比重新搜尋的確方便太多。所以接下了這個任務,並加班加點對接開發,最終在封網前三天完成測試併發布。

雙十一覆盤之後,收到了推薦演算法團隊同事發來的感謝郵件,加了這個功能雙十一當天購物車的推薦量居然是平時購物車的幾十或者幾百倍(具體數字記不清了,但是很大),因為購物車原本只有最下面一個小推薦坑位平時推薦量不是很大。我按照比例簡單計算了下,加的這個功能可能在雙十一當天幫了幾百萬人快速加購,想想還是挺有成就感的。這個功能後來保留下來了,hover 就可以在右邊出現:

我在淘寶做前端的這三年 — 第一年

交易業務並不好做,因為是淘寶核心平臺,很多業務線都有需求定製,程式碼裡業務邏輯十分複雜,而且還要小心維護避免改壞了,特別害怕出現問題,因為一旦出問題可能就是 P1 級別故障,年終獎和晉升機會肯定是沒了的。整個雙十一或者大促期間都需要 on call,一接到電話需要馬上起床開始處理。

這一年大促關於圖示有一些小故事,一開始設計將雙十一標放在了商品圖片上面,但被評審調整到文字前面去了。原來有些商家會比較鬼,自己在商品圖片上 P 一個雙十一標,以假亂真。然後雙十一零點一過逍遙子突然發下通知,要求淘寶全鏈路換掉雙十一的標。原來淘寶標跟雙十一標有點像,但雙十一屬於天貓,淘寶並不能使用,於是設計師馬上做出一套新的淘寶嘉年華 Icon,全鏈路各種釋出換標。由於交易鏈路太重要,所以先改好程式碼,到了六點下單低峰才釋出修正。原來一個小圖片背後關係到了大量商家的利益,因為天貓商家參加雙十一需要各種備貨和稽核,而且使用者也根據這個圖示判斷哪些是參加雙十一活動的商品,這時候兩個一樣的商品,有標和沒標,銷量可能差距巨大。開始覺得業務還是挺有意思的。

做基礎業務,壓力還是很大的,害怕風險和線上問題,還不能延期。因為你延期了,很可能下面業務的促銷活動就延期了,這可是非常大的問題。還好做完雙十二就開始交接業務(第二次變化),淘寶交易前端交接給其他前端團隊了。

購物車和交易這塊業務,我學習到了很多:

  1. 規範的開發流程:淘寶交易是淘寶最老的業務,也是平臺方地位最高,所以交易線制定了很規範的排期會制度和釋出制度,如果一個需求沒趕上排期或者釋出點,不管你多麼重要,一律延期到下個釋出點。因為交易系統本身的穩定性是最關鍵的。
  2. 線上問題無小事:交易由於使用者量大、涉及關鍵鏈路,一旦出現線上問題,影響使用者非常廣,很可能產生重大故障。所以做交易的同學,都會特別小心謹慎,關注線上情況,發現小問題也要儘快修復。而後來接觸了很多其他業務,線上的小 Bug,如果不影響使用就暫時先不管了。這個時期也搞了一些釋出安全相關的事情,比如一個 Checklist https://github.com/yujiangshui/front-end-code-checklist (不過後來沒有更新過了,有些點已經過時了,找時間我再更新下)。
  3. Debug 和閱讀程式碼能力:由於系統比較複雜,程式碼很多業務邏輯,想要繞開陷阱就需要仔細閱讀程式碼和 Debug。有時雖然一個小需求,但是要前後 Debug 很多邏輯,確定這裡沒問題才能改。

得益於這段時期學到的東西,我在知乎上回答了一些關於 Debug 的問題:

無線交易業務

購物車是主線業務,支線業務當時是由師兄帶領做無線交易的幾個頁面。當時是用 React 來開發這個專案,用了 reflux 等。當時應該算是淘寶最初用 React 的幾個業務,主要是為了調研這個技術。

其實大公司相比小公司更願意也更容易嘗試和應用新技術。因為一旦有了開發效率或者效能提升,給業務會帶來巨大提升,也有足夠的人力來研究,也有非常多的新業務可以來嘗試。

我們團隊後來研發開源了 React Web( https://github.com/taobaofed/react-web ) 專案,這個業務算是一個踩坑落地專案,用來發現一些問題。比較可惜的是,沒過幾個月,手機淘寶去掉了 React Native 並換成了 Weex,所以這一套對公司就沒什麼意義了,所以就停止了維護。不過一些經驗積累,及時調頭,老闆又帶人開發開源出來了 rax ( https://github.com/alibaba/rax )。

所以看一個大公司的開源專案是否會長期維護,看看他們內部的使用情況就可以了。像 Weex 這種,再怎麼說也是會長期維護下去,因為它已經十分融入在手機淘寶裡面。無數的頁面和應用,都是基於 Weex 開發的。

淘寶海外業務

時間到了 2016 年初,交接完淘寶交易業務之後,我開始接手淘寶海外業務。淘寶海外業務是面向海外非大陸淘寶使用者的業務,其實主要面向香港、臺灣、東南亞等地區使用者。

由於面向國外,淘寶需要做很多改造,比如很多商品(生鮮、法禁品)等不能運輸需要過濾、繁簡體等國際化語言處理還有下單配送地址支援海外集運等。因此在建立業務時期,基本上就是把淘寶核心業務 fork 了一遍,拿來改造了下自己維護。

淘寶海外首頁是自己利用 TMS (運營平臺)搭建、統一吊頂也是自己特殊定製的(增加國際化選項)、商品詳情頁是 Node 應用做的前後端分離、交易鏈路也自定義了一些樣式和元件(比如海外集運)。相當於原本整個淘寶的核心鏈路,搞了一個微縮版本。

做這段工作算是比較爽的,一個人負責一個微縮版本的淘寶的前端,有利於瞭解整個淘寶的業務鏈路和很多淘寶業務的程式碼。然後為了溝通方便,我把工位搬到業務方辦公區,整片包括運營、產品、設計、技術等都在一起。當然也沒有交易那種排期規則,如果有什麼需求和會議,隨時溝通開始做效率挺高,感覺像是創業公司,我很喜歡這種工作氛圍。此外還有三個外包同學參與這個專案,由我分配工作,這讓我有了一點“小老闆”視角並得出結論:原來你的老闆可能真的比你更瞭解你

由於這三位同學協助我工作,他們的工作能力和程式碼質量直接關係了我的工作量,所以我每週拿出一個小時做 Code Review and Share,在會議室讓大家各自找一段本週寫的比較好的程式碼出來分享,然後我也會找一段分析下好的地方和不好的地方。並且鼓勵他們在阿里內部 ATA 平臺寫文章做分享,因為技術好的外包是可能轉正的,這或許是個加分項。緊密工作一段時間後,很容易就看出這幾位同學的能力和學習積極性的區別,再加上工作完成情況,可以說是對他們的能力看的比較清楚。

但仔細回顧一下,我跟平級的同事之間,其實是很難有所比較的。因為我們各自做的事情不同,而且也不會在意別人的優點或者缺點,更不會去“教育”或者“指點”平級同事應該怎麼做。但是老闆視角就非常清晰了,他需要對手下人的結果負責,所以會關注進度和進展,同時也十分容易做橫向對比,可以說是可以十分清晰的看出一個人的水平。 老闆為了自己晉升,也會關注手下的晉升,所以也會去指出一些問題。這個體驗給我了很多思考:

  1. 跟對老闆比做對事情重要:好的老闆願意去培養下屬,指出問題。有能力的老闆才能給下屬更高的成長空間。很幸運的是我有這樣一個老闆(元彥)。
  2. 不用試圖耍心機或者邀功、搶功:這些伎倆只能欺騙你自己,老闆視角看的一清二楚。
  3. 認真記下老闆的建議,多多反思:幾乎所有人接受到批評,第一反應都是去反駁。但在職場上,老闆一般是不會害你的(因為有晉升等利益相關)。這可能就是老闆比你更懂你的地方,他能從一個更有經驗的外部視角來看你的方案你做的事情。
  4. 遇到“不公”先想想自己:機會是有限的,為什麼老闆會把晉升機會、好的工作機會給某個人而不是你?先不要抱怨不公,想想為什麼。
  5. 抓住機會多跟老闆交流:基本上每週週會上,我都會提出來一些手頭上一些比較棘手的問題或者對團隊未來新動向的疑問,來學習下老闆是什麼樣的解決思路。

有些人可能會覺得老闆比自己笨,但其實老闆的老闆並不是傻子,老闆之所以成為你老闆,肯定是有很多原因的,學習到了你老闆的長處,有一天你才可能登上這個位置。

所以說做事情要多站在老闆的視角去思考,聽取老闆的建議並時常反思。如果的確有問題,為什麼有這個問題?怎麼解決?如果沒有這個問題,為什麼會被老闆誤以為有這個問題?

戲劇性的淘寶海外業務交接

有一天開了個需求評審會,結束之後一群運營就去了一個會議室。我以為還要繼續開就跟進去了。進去之後才發現他們在通過一個商家錄屏看 Lazada 的後臺操作和有什麼功能,算是一種競品調研。我覺得這跟前端功能也有關係,就留下來一起看了下。

沒想到過了幾天,突然就從外面看到新聞,阿里巴巴收購了 Lazada。沒想到又過了一段時間,老闆就開始讓我處理交接任務,將把這個業務轉出去。同時我來負責新的達人平臺和內容平臺的前端。再後來就聽說整個淘寶海外業務就解散了,一些開發去 Lazada 做開發了,有的運營去了天貓,有的去了其他業務。

其實阿里集團下包括 AliExpress 也是主打國際化,不過是偏歐美、俄羅斯的,Lazada 是偏東南亞地區。阿里巴巴高層分享國際化戰略也強調過,不管做國際化的業務你叫什麼名字,吃下來大部分,你就是阿里巴巴國際化代表。顯然淘寶海外沒有打敗 Lazada,所以乾脆用錢把 Lazada 買下來了。

換句話說,如果我們真的是創業公司,不管之前怎麼努力,現在已經死了。

至此,親身經歷了三次重大變化,可以說是特別瞭解阿里“擁抱變化”的文化了。都說船大難掉頭,其實感覺並不是這樣。每年阿里都會調整業務歸屬,如果做不好可能就砍掉或者換一撥人來做。好處是快速試錯持續前進,壞處就是一些研究和積累浪費了。我在淘寶海外主要研究了前端國際化的一些方案,還出去做了《基於 React 的國際化方案探索》的分享、寫了《淘寶前端國際化方案探索》以及回答了一些國際化相關的問題(zh-cn 與 zh-hans 是什麼關係、有什麼區別?),但換了業務之後,這些知識就基本沒有在後續業務中用到過了。

阿里文化與高管分享

新入職同學會脫產有百阿(百年阿里)和百技(百年技術)培訓,一個是價值觀培訓,一個是技術培訓。在百阿大分享時,非常幸運,馬總有空給我們這批新人做的分享。此外,HR 姐姐還會不時組織一些高管見面會幫助大家成長。這裡可以簡單分享一些我印象很深刻的點,在實際工作生活中也很必備:

  1. 誠信第一:阿里巴巴本身是商業公司,商業誠信第一,所以這是阿里巴巴的紅線。小到虛假報叫車發票,大到私下勾結商家,抓到必開然後加入黑名單,嚴重的送監獄。在阿里有句話,因為信任所以簡單,所以許可權放的比較開,要求必須有誠信。
  2. 公司裡面薪資保密:薪資保密也是阿里的紅線,公開討論或者公佈,會被開掉。這是源於最初馬雲創業時,籌集那 50 萬初始資金那件事情。馬總分享時說當時要求大家把自己閒錢拿出來,多少無所謂,不記名互相不能知道。時至今日馬總也不知道究竟誰出了多少錢。因為人性是很脆弱的,一旦相互知道了,不可避免的就出現利益分配爭端,也可能不再按照能力提拔。十八羅漢的關係可能很快就因為利益崩掉了。迴歸現實,影響一個人薪資的因素太多了,如果你知道你同事比你高,幹活還比你少,你可能很難再正常工作。

有一次高管見面會,邀請了玄難給我們做分享,給了我很多啟發。他先介紹了他的工作經驗,可以說是非常豐富了,前後端都做過,這麼高 P 的技術專家在分享中舉例用的前端名詞挺專業的。主要收穫:

  1. 不要經常換工作,做一份工作通常 3-4 年才會有所沉澱,對這個領域非常瞭解。 換工作的原因一定是追求更高的目標,而不是工作中遇到了困難想要逃避或者追求漲薪。越是遇到困難越要解決困難才可能有成長,逃避困難,換了工作仍然會遇到。技術的深度會跟薪資掛鉤正比,即便是通過跳槽漲薪,沒有技術實力壓住泡沫還是會破。
  2. 在 IT 行業,工作和興趣要儘可能貼合,可以發揮最大效果。 假如工作內容是一條線,興趣是是一條線,這兩條線的夾角越小,幹活又輕鬆成果又多。如果這兩條線是直角,兩邊可能都很痛苦,建議調整。
  3. 牛逼的架構師一定是業務、前後端各種技術棧全部有很深的理解。 不懂業務或者不懂前端只懂後端,都很難站在一個更高的視角來整體看問題和設計架構。因為系統是一個整體,有一部分不懂或者不關心,就可能成為系統的短板。

我也趁機問了兩個我比較感興趣的問題:

  1. 架構師日常工作是什麼?答:一半時間四處聽方案,評審架構方案可行性和合理性,並檢視落地情況;一半時間用來制定目標管理人才以及招聘。
  2. 對你影響最大的一本書或者技術是什麼?答:編譯原理。

百阿培訓時,一位講師在講關於抓住使用者需求和關鍵點時也問了我們一個有趣的問題:如何用一句話讓老闆幫你晉升? 有人說我工作努力,晉升後會更努力。有人說我的實力足夠晉升了,不晉升我就跑路了。其實都不對,講師的答案是“幫我晉升,老闆你才能晉升”。其實老闆也需要晉升,但是一個團隊的結構通常需要一個金字塔形狀的結構。比如老闆是 P6 帶領一堆 P5,今年很多 P5 晉升到了 P6 那麼老闆顯而易見很快要升 P7 了,不然金字塔結構就不穩定了。但一個 P7 帶領一堆 P5 而且 P5 沒有晉升跡象,那麼可以遇見未來兩三年都很難升 P8。從這個方面也可以看到,老闆才是最可能對你好的人,你的成績也關乎他的成績。

第一年總結

到了 2016 年 4 月,第一財年結束了。在這一年,技術能力進步很多,從之前 jQuery 棧轉到 KISSY 再到 React 並且具備了一定的 Debug 能力,結合之前阿里全網升級 HTTPS (當時作為臨時工,升級了不少淘寶老系統程式碼)、淘寶交易和淘寶海外,閱讀了很多很多程式碼學到了很多東西。也能快速學習調研一些技術問題並做了很多分享,不過大都寫在了內部 ATA 上了,所以部落格從此基本沒怎麼更新了,主要開始逛知乎回答一些相關問題。

擁抱了變化,知道了老闆視角。也初步認識商業的殘酷,也大概知道淘寶的業務流程,對業務有一定的關注。從各種高層、大神的分享中也學到了很多。

收穫也頗豐,拿到了不錯的績效。

此外,2015 年還有一個關於霧霾的紀錄片釋出出來。我也是第一次接觸到了霧霾,我嗓子一直週期性的咽炎難受,原來發現可能是跟霧霾有關。之後,我的瀏覽器收藏夾多了一個“移民”目錄。


以上就是我在淘寶第一年的經歷和學到的東西。下週將會發布第二年的經驗,歡迎關注我的掘金賬號。

平時在知乎比較活躍,也可以關注知乎賬號 於江水 和專欄 於江水在知乎,以便及時接到通知。後續會開發一些專案,有興趣也可以關注我的 GitHub。當然也可以加我微信:Jiangshui-Yu。

相關文章