大數據

聖司:我的前端成長之路,內觀自在,外觀世音,追尋內心平靜

作者 | 聖司

image.png

“因為你,我願意成為一個更好的人,不想成為你的包袱,因此發奮努力,只是為了想要證明我足以與你相配。” —— 《側耳傾聽》

大家好,我是張舒迪,花名聖司(取自吉卜力的動畫《側耳傾聽》),2014年校招應屆進入阿里巴巴擔任前端開發,目前在飛豬技術部負責「用戶前端和數字化經營平臺團隊」。

一路走來雖然時常會反思自己成長道路的關鍵節點,以及判斷和選擇,但很少會落到紙上,一方面因為自認尚算年輕,閱歷不多;另一方面人生沒有大起大落、跌宕起伏的經歷,缺乏故事感,不過是平凡人過著平凡的生活。這次很榮幸收到邀稿,借這個機會,梳理一下進入互聯網行業、成為一名前端開發道路上的那些轉折點,於我個人而言是個內觀的機會;如果能給在看本文的你引起一些共鳴、帶來一些輸入,那更是甚好。

少年時代:心之所向,一葦以航

“我相信自己,生來如同璀璨的夏日之花,不凋不敗,妖冶如火,承受心跳的負荷和呼吸的累贅,樂此不疲。” —— 《生如夏花》 泰戈爾

image.png
貴州省安順市,虹山湖環湖路(圖片來源 旅行跡)

“你是怎麼接觸前端的?” 我面試時時常會這樣問候選人。

我在西南一個小城市長大,父母都是坐辦公室的公務員,所以我得以較早地接觸電腦。90年代還在讀小學的時候,父親單位有臺四通打字機,除了最基本的文本輸入外,還提供了不少搜索、替換這樣的功能,書本上帶著墨香的文字以數字化的方式呈現,增刪改查無需斑駁的修正帶,彷彿有了生命一般,於是開始伸著兩個食指學著敲起了鍵盤。出於興趣,下課會帶上一本「我們愛科學」雜誌早早去 “接父親下班”,噼裡啪啦把裡面有意思的文章和連載的科幻小說敲成電子版,學著做簡單的文字排版,再打印出來帶到學校分給小夥伴,樂此不疲。

初中階段學校開設了微機課,電腦教室為了防塵,需要脫鞋光腳進去,這也是絕大部分同學為數不多可以接觸到計算機的機會。經典的 win98,每人會配發一張 3.5 寸的軟盤用以備份資料,課上老師除了教一些辦公軟件的基本操作,大部分時候讓學生自由探索。那段時期也是我最早的編程啟蒙,在老師的指導下接觸了 Basic 和 Pascal,會做一些簡單的編程題目,也對類似 “數組第一位下標為什麼是 0 而不是 1”、“x = x+3 這樣的等式為什麼能成立” 這樣的問題感到好奇。

2001 年家裡買了第一臺電腦,用於文字處理及娛樂,裝了「貓」可以上網,每次聯網滴滴噹噹的聲音現在還記憶猶新。假期玩了很多遊戲,開始思考像《仙劍奇俠傳》這樣的遊戲是怎麼做出來的?在一個交流群裡第一次接觸到「RPG Maker」—— 一款入門級的遊戲製作軟件,除了可視化的貼圖、角色、地圖、事件、觸發器等編輯能力外,還支持基於 Ruby 的腳本開發,能實現從簡單的角色對白字幕、自定義貨幣,到複雜的 ARPG 甚至第一人稱射擊遊戲開發。從此課餘愛好變成了逛各種 RM 開發論壇,嘗試著畫地圖、捏人物、做劇情,依葫蘆畫瓢寫 Ruby 代碼,做自己的遊戲,並打包發佈到論壇上分享交流;當時國內最大的 RM 社區是幻想森林和 66RPG,我在幻森當版主,認識了一波熱愛遊戲開發的小夥伴,其中不少人現在還在行業中摸爬滾打,有的已成中流砥柱。剛剛隨手搜了一下,幻想森林雖然還在,最新帖子卻基本停留在 2016年;66RPG 則早已更名「橙光」,專注於原創 IP 的 AVG 遊戲製作與發行,一陣唏噓感慨。

image.png
RPG Maker XP RGSS (Ruby Game Script System)(圖片來源 RM官網)

這段「遊戲開發」經歷斷斷續續持續了 2 年多,創造一個虛擬世界帶來的興奮感逐漸轉變為對計算機世界的熱愛,並開始驅使我立志報考相關專業,憧憬未來能夠進入這個行業一窺究竟,並能有所作為。現在回頭看少年時代的這段經歷,興趣是最好的老師,在國內應試教育的大背景下,學校、家庭能夠給到我學業之外自由探索的環境與空間,這麼早就找到自己的興趣點與未來方向,我感到無比幸運。

我的大學:二八年華,如喪青春

“我年輕時候喜歡說如來,就是如同要來,還沒來,但終歸會來。如喪,就是如同要喪,還未喪,但終歸會喪。” —— 《如喪》 高曉鬆

故事不會總按預設的劇本往下演,不然人生該多無趣啊。07 年高考,浙大計算機系落榜,被調劑到北郵的工業設計專業,工科院校、通信背景、設計專業,感覺老天爺給我開了個玩笑,如鯁在喉;兩個月暑假過得無比煎熬,每天都在去留間反覆糾結,最後思量再三接受了調劑。三個原因:1)北郵也有計算機系,大一結束績點 Top 4% 的學生有一次轉系的機會,努努力可以曲線救國;2)學校有濃厚的互聯網氛圍,師兄師姐給了不少鼓勵;3)從沒去過一線城市,對北京的嚮往。9月入學,由於要籌劃轉系,大一一年又過起了白天泡畫室、晚上泡自習室的苦行僧生活,然而天不遂人願,年末綜合績點專業第 4,又一次與計算機學院擦肩而過。

image.png
北郵工業設計專業畫室(2008)

我從小學開始一直是 A 等生,接連而來的高考失利/轉系失敗,打擊不可謂不大,加之生活上也出現一些問題,整個人跌入谷底,負能量滿滿;那時候年輕比較文藝,會在博客上寫矯情的文字與詩歌,一個人跑到景山望著故宮出神,翹課、也不參加班級活動。這樣渾渾噩噩的狀態持續了幾個月,拯救我的是書本和音樂,是路遙的《平凡的世界》、克里希那穆提的《重新認識你自己》、張國榮的《我》、楊千嬅的《再見二丁目》……生而為人,本無所謂功過成敗、高低貴賤,正是每段旅程與經歷、每次躍起與沉淪、每分收穫與成長塑造了一個個獨一無二的個體,湊近看都那麼平凡卻又那麼不凡;嘗試品味自己的人生旅程,自我欣賞並自我和解,會發現當下所經歷的就是生活本身;推己及人,曾經感覺擁擠不堪的校園、做事毛糙的同學、能力平庸的老師都開始顯得立體而高大起來。

“I am what I am,我永遠都愛這樣的我。快樂是,快樂的方式不止一種,最榮幸是,誰都是造物者的光榮。不用閃躲,為我喜歡的生活而活,不用粉墨,就站在光明的角落。我就是我,是顏色不一樣的煙火,天空海闊,要做最堅強的泡沫;我喜歡我,讓薔薇開出一種結果,孤獨的沙漠裡,一樣盛放的赤裸裸。” —— 《我》 張國榮

生命的韌性就在於,無論被打趴多少次,只要你全情投入,自驅的力量總能一次次再把你拉起來。調整狀態,抱著與其怨天尤人,不如活在當下的想法,開始嘗試把生活重新拉回正軌,繼續追尋夢想:

  1. 確定跨專業考研的長期目標,開始自學&旁聽計算機系課程,同時開始刷 OJ(那時候北郵的 OJ 做得是真不錯);
  2. 包攬了本專業幾乎所有團隊課設大作業的編程相關工作,做 Flash ActionScript & Flex 開發,折騰 J2SE、LAMP,幫忙維護基於 .net 的院系官網,總之只要編程相關工作我都幹;
  3. 進入校學生會科技部,開始混社團,一路做到副部長,主要承擔各類大型活動開閉幕視頻的製作工作,涉及一些 AE 粒子特效腳本的開發,這應該也是第一次與 JavaScript 結緣,除此之外 PS、PR、AU、CorelDraw 這些軟件也玩得賊溜;
  4. 由於本身專業的緣故,接觸了 3DMax 和 AutoCAD,憑藉手藝課餘接了幾個外包項目。

image.png
部分被保留下來的大一素描作業(2009)

大三下半年又開始一邊在專業教室趕大作業,一邊泡自習室、逛王道論壇備考的日子;期間靠專業排名拿到本專業保研名額,沒做太多思考便放棄了,算是一個小插曲吧。年底懷著惴惴不安的心情再次走進考場,初試、複試、面試,次年初結果公佈,如願進入北航計算機學院,師從院長,算是又一次人生轉軌,了了一樁心願。

image.png
北航碩士新生報道,懷念那時的一頭秀髮(2011)

順境享受掌聲,逆境享受人生,這段持續四年的曲折經歷給我帶來莫大的力量與精神財富,教會我諸多道理,也很大程度奠定了我日後的事業觀與人生觀:

  • 追尋熱愛:支撐自己向前的應該是源自內心的熱愛,對當下的熱愛,對生活的熱愛,也是對愛與美的追求,這種熱愛很少是與生俱來的,更多時候需要自我暗示;一如寫這篇文章,剛動筆也枯燥不堪,嘗試說服自己沉進去,文字從筆下緩緩流淌的感覺卻也讓人感到平靜;
  • 日拱一卒:人會高估短期的成果,卻低估長期的成就,每天哪怕花 10 分鐘看 5 頁書,一年就是 6~7本;每天解一個 leetcode 題目,一年你能超過 95% 的人。其實走得慢不要緊,關鍵要走得久,時間長了自然能走很遠;
  • 接納失敗:“那些沒能將我擊倒的,都使我更加強大”,挫折來得早一點,跌得狠一點不一定是壞事,與自己和解,從情緒中跳脫出來,逆境更能激發人的思考,也更能鍛鍊人的韌性;
  • 留條後路:人生不是非黑即白,避免情緒化決策,給自己留條後路;我參加考研沒影響保研,不喜歡設計專業也拿到了 Top 2% 的校級優秀畢設,臨畢業參加校招面了一些互聯網公司的產品崗位,多幾個選擇總不是壞事;類比到現在流行的裸辭,是不是也可以更平滑一些?先換行業再換崗位?先做副業再做主業?

轉型前端:意料之外,情理之中

“生活中多數東西,最好與普通之間的差距不超過兩倍,好比說紐約的出租車司機,最棒的司機與普通司機之間的差距大概是 30%;最棒的 CD 機與普通 CD 機的差距有多大?20%?這種差距很少超過兩倍。但是在軟件行業,還有硬件行業,這種差距有可能超過 15 倍,甚至 100 倍,這種現象很罕見,能進入這個行業,我感到很幸運。” —— 《遺失的訪談》 史蒂夫·喬布斯

image.png
北航六系 “軟國重”,筆者碩士階段所在實驗室(2011)

如果說上階段是興趣驅使進入 CS 世界,那接下來闖入前端領域則純屬誤打誤撞了。

我碩士主要研究方向是基於浮動車(Floating Vehicle)的智能交通系統(ITS,Intelligent Transportation System),簡單說就是通過各類車輛實時定位數據、城市路網數據、地感線圈/攝像頭等傳感器數據,動態計算路況、識別事故、預測擁堵、控制信號燈等,領域屬於智慧城市,技術上偏 GIS 和海量時空大數據處理。

專業方向與前端也有一定關聯性,主要是基於 Web 地圖的數據展示,例如和北京市交通委合作的公交到站預測項目,除了預測算法本身,還基於 Tomcat + PHP + Angular + BMap 搭了 PC 的數據展示平臺,這也是第一次接觸到 MVVM 框架,第一次認識到原來前端還能這麼玩。這個項目的研究成果支持了北京市第一套公交到站實時預測系統,通過多個 App 向社會發布到站預測信息,算是個民生工程。

那時候不知道國內互聯網公司裡前端是個獨立方向,直到研二在一家國企實習,由於成員離職被臨時調劑到前端崗頂包,承擔了一小部分 Web 應用和絕大部分前端開發工作,主要是基於 VMWare VCloud 和 VSphere 搭建虛擬機 Web 可視化終端,類似 WebVNC。當時公司的技術棧是 RoR + JQuery + Bootstrap,三個月時間搭建了完整的虛機管控、可視化及配套功能模組,開始被 Web 開發這種所見即所得的爽快感吸引。

最後促使我決策進入前端領域的,是兩個機緣巧合:

  1. 畢業季拿到了阿里 Java 研發的 offer,入職前部門組織了一次圓桌,新人可以跟後端、前端、客戶端、測試等崗位 TL 作直接的溝通,並在入職後轉到任意方向。跟拔赤(也是我現在的主管)聊了一下前端技術的現狀與未來發展,聊到 PWA,他演示了一個 Wap 頁面怎麼通過添加到桌面的方式變成一個 Web App,B/S 無需安裝、互聯互通的體驗讓人印象深刻,聊到類比 PC 時代 B/S 逐步替代 C/S 的案例也十分生動,跟其他幾個 TL 更偏業務分享、工作內容、培訓方案的交流相比,一個領域未來的可能性無疑更讓人神往。
  2. 那段時間有幸讀了 Paul Graham 的《黑客與畫家》,對我觸動很大的反倒是書名,本科設計、碩士計算機,中二地感覺自己像極了左手畫筆、右手鍵盤的「黑客與畫家」,而前端恰好是視覺交互設計與計算機的交叉學科,更能發揮我的優勢。最後,這次圓桌與這本書將我引入了前端的世界,職場生涯就這樣從掛著研發工程師 title 寫前端代碼開始了。

image.png
入職阿里,轉型前端(2014)

現在再回頭看,這段經歷也讓我受益良多,以為踏錯的那些「彎路」,都在某個時間點串成一線,共同組成了人生,沿途足跡清晰可見,沒有白走一步:

  • 活在當下:四年的工業設計學習生涯,教會我的不只是怎麼切圖,更是對好產品的審美,作為前端開發有這樣一段經歷彌足珍貴;小到每個項目、大到每個人生階段,我們很難預見當下的經歷對未來的影響,因此認真對待每件身邊事,尊重每段人生經歷獨特的價值,歷久必會彌新;
  • 不給自己設限:學理科考上大學,也能坐在畫室折騰素描/水粉/石膏/三大構成;本科四年一身機械+設計的本領,碩士也能跟一幫 CS 大拿聊聊設計模式與系統架構;折騰兩年半大數據&算法,進到公司也可以靠前端手藝吃飯;所以別給自己設限,能力不只是經歷決定的,也有意識與膽量;
  • “模仿” 身邊最優秀的人:接觸一個全新的領域,學習一門全新的技能,最快也是最好的方式,便是模仿身邊這個領域最優秀的人;沒做過工程化/可視化/低代碼化?看看集團對應領域的同學在做什麼/想什麼;沒牽過虛擬項目?看看身邊做得最好的虛擬組組長是怎麼做的,多久組織一次會議,怎麼制定項目組目標,怎麼驅動項目組同學;
  • 堅持閱讀:書本能夠提供的不只是經驗與知識,有時候是靈光一閃、虎軀一震,有時候則是更平和而充實的內心,與自己的和解;嘗試帶著意義感去品味,音樂、電影、詩歌、話劇、動漫、遊戲...亦復如是。

我在飛豬做前端:因勢利導,順勢而為

“譬之若寒暑之序,時至而事生之。聖人不能為時,而能以事適時。事適於時者,其功大。” —— 《呂氏春秋》

“得時無怠,時不再來,天予不取,反為之災。” —— 《國語·越語》

image.png
雙十一前端會場玩法項目組(2014)

14年進入阿里之後的開局其實並不好。

大環境上正逢 “All in 無線” 的高潮,前端從 Mobile first 到 Mobile only,資源開始大幅從 PC 往 H5 傾斜;進入公司畢竟是個新兵蛋子,按當時「新人做老業務,老人做新業務」的分配方式,我負責了國內機票 PC 業務,1)14 年還需要寫 YUI 代碼、調 IE6 兼容性、走前後端統一部署,非常邊緣;2)由於阿里本碩校招生無差別定級策略,跟我同一天入職同樣是 P5 的小兄弟小我整整 3 歲,起跑線堪憂;3)剛轉崗殘缺的前端知識體系完全寫不出工整而高效的代碼,基本盤被吊打;如此種種,瞬間讓我感受到身處一線互聯網公司的巨大壓力。

出於危機感和自救本能,開始找出路,接了一個多月需求後,我發現其實業務研發本身工作量並不大,但因為代碼歷史包袱太重(6年數萬行老代碼,first commit by 癲總),架構腐化嚴重,改動往往牽一髮動全身,效率奇低。當時想法很簡單,重構提升研發效率,節約出來的時間去做 H5 業務,還是得緊跟無線大潮,別與時代脫鉤。

與主管 @舒克 聊了想法,之後三個月時間斷斷續續一邊老代碼正常承接業務,一邊抽晚上和週末的時間做重構,一份需求做兩遍。年末順利上線,藉由這個項目我成了比 PD 還了解這塊業務的開發,順便輸出了一次前端架構分享和 BU 40% 的 PC 組件,研發提效/架構升級/物料輸出,大大超出主管原本只需要維穩的期望。藉由這個項目,15年初順利晉升,也如願開始接觸無線領域,感恩。

我把這段經歷稱為「對現狀不滿,就嘗試把自己 “做沒”」。如果負責了一個邊緣業務,可以嘗試從這些方面去思考:

  • 調整心態:認可合理性,少抱怨(髒活累活也是活,總得有人幹);
  • 發揮優勢:更低的預期意味著更容易超出預期(“他做邊緣業務都能有這麼多產出”);
  • 尋找痛點:主導並落地解決方案(實在沒痛點,嘗試一下智能化方向把自己 “做沒”?或者擠時間參與一下工程化基建?);
  • 納投名狀:需要證明自己的能力,也需要韜光養晦等待機會;
  • 專業為先:前端是相對垂直的技術體系,業務價值不高不代表技術價值不高,不要放棄思考與改變。

image.png
航旅北京前端團隊 outing 合影(2015)

隨著 PC 業務工作量逐步減輕,15年我的主要精力逐漸轉移到無線 H5 上來,負責了一些體量偏小的新業務,比如簽證、用車,練手性質偏多。坦白說那個時期的 H5 開發是比較枯燥的,一方面業務複雜度不高,邏輯儘可能往服務端下沉,端側少了很多抽象封裝、繼承拓展、設計模式的需要,帶來的代碼爽感大大降低;另一方面屏幕變小了,精細化要求也變高了,視覺交互上的細節問題被極速放大;加之真機調試相較 Chrome devtools 的原始感,往往一個 px 偏移或動畫卡頓的調整就能耗進去幾個小時。

到了一個新的環境,最先要做的還是破局,從大環境上看,那段時期業界都在攻堅性能體驗的課題,圍繞 Hybrid 架構各類技術方案如雨後春筍。而旅行行業的特殊性在於,用戶有大量在旅行途中使用 App 的場景,國內景區要麼人滿為患,通信基站負荷過重導致網絡降級;要麼各類自然風景區、高速路/鐵路沿線直接沒有信號覆蓋,沒辦法查詢電子票根,更不能享受各類行中服務;同時動畫濫用、Webkit BUG 也導致 CPU 彪高、耗電量增加,在類似神農架這種缺少充電手段的場景非常致命。因此相比其他行業,性能體驗對於旅行業務的影響面更大也更深遠。

明確性能作為突破方向後,開始找突破口。當時架構組性能優化手段集中在容器架構層面,如iDNS/SPDY 改造解決網絡傳輸問題、離線化體系解決資源加載問題、腳手架模板優化解決 JS 阻塞渲染問題,鮮有目光聚焦在前端業務優化層面。這一方面導致跑分與體感指標存在差異,另一方面業務上基礎庫未預加載、combo 失效、圖片未壓縮、錯誤的構建配置等問題都可能將底層優化積累的優勢損失殆盡;加之性能數據上報鏈路和配套度量體系不夠完善,指標對業務開發同學日常工作的指導意義不足。

抓住問題之後,我從手上小業務開始逐步落地全鏈路的性能體驗優化方案:

  1. 重新定義性能質量標準,從最初的頁面秒開率,轉為 三端(飛豬、手淘、支付寶)、四網(2G、3G、4G、wifi)、五維度的度量模型,在白屏、DOM Ready、Onload 等通用評估標準之外定義了「頁面可見時間」與「可交互時間」等體感指標;
  2. 重構數據採集上報鏈路,維護基礎庫 Base 及 tracker 模組,制定業務埋點規範並推進埋點上報率、準確性治理;
  3. 和 @舒克 搭檔搭建數據分析平臺「魚眼」,打通 ODPS、Node 工程、數據清洗及可視化鏈路,提供頁面性能、接口性能、JS/接口異常、在離線分析、紅黑榜等度量分析報表;
  4. 工程化鏈路升級,從 dns-prefetch 到 mtop-prefetch,從 SSR、靜態資源緩存,到數據、DOM 結構、佔位符多級緩存,一毫秒一毫秒、一 kb 一 kb 打磨業務實現細節,優化加載性能;
  5. 構建泛性能體驗相關最佳實踐,包括幀率、CPU、內存、電量等指標優化,及全鏈路 Tap 化、轉場動畫優化、長列表滾動優化等體驗優化。

image.png

“‘自己’這個東西往往是看不見的,你要撞上一些別的什麼東西,反彈回來,才會瞭解‘自己’。所以,跟很強的東西、可怕的東西、水準很高的東西相碰撞,然後才知道‘自己’是什麼,這才是自我。因此,交不同類型的朋友,看不同類的書,去不同的地方,在碰撞中不斷反思自己!” —— 山本耀司

藉由一些業務優化上拿到的結果,15年中進入架構組開始承擔「性能體驗虛擬小組」組長的工作,著力提升整個飛豬 H5 業務的性能體驗,包括已有經驗向團隊的輸出以及 Hybrid 基建改造。經過幾個月的持續迭代,當年雙十一拿到超過 93% 的頁面秒開率,體感指標優於手淘,各項體驗/能耗指標也大幅提升。

隨後 Native 化渲染方案興起,開始推進 ReactNative 體系建設,持續了大半年時間,期間打通整個工程研發、運行時、配套工具與組件庫鏈路,並上線了 3 個業務。但總的來說這段實踐經歷不算成功:1)技術基建重視程度足夠,但缺少對業務價值的衡量,業務方感知弱;2)臉皮薄,推動力不足,問題修復拖了一個又一個版本;3)穩定性問題,RN 最初面向獨立 App 場景的定位與成熟客戶端水土不服,投入產出比低。彼時集團 Weex 開始嶄露頭角,相較 RN 更適合阿里的業務土壤,基建隨即開始往 Weex 方向傾斜。
image.png
之後經歷了團隊調整,我被調到營銷組頂替已離職 TL 開始帶團隊,再之後不到 2 個月時間又迎來了入職以來最大的「變化」,在此先賣個關子。回頭看架構組這段經歷,也同樣教給我很多:

  • 技術與業務的圍城:做業務就像在淺水區游泳,你知道有個底在那裡,起霧下雨了、倦了累了、抽筋兒了,雙腿往下一伸就能站起來,支持好業務至少不會有太差的結果,當然如果沒有 130% 的自我加壓,也很難有超出期望的結果;而做技術尤其是基礎技術,更像是在深水區甚至大江大海中撲騰,沒有兜底、沒有退路,哪怕狂風大作、巨浪滔天,一旦出發必須游到岸邊才能停下休息,而很多時候你並不知道岸有多遠,很容易迷失。業務線同學羨慕基礎線同學有廣闊的天地可以遨遊,殊不知很多時候是倖存者偏差,看見的都是靠岸的人,那些還在前行的、迷失的、甚至葬身海底的人,你卻不會知道他的名字;
  • 印象即事實:職場是個小社會,在別人眼中的印象需要有意識去管理,好的印象會讓周圍人對你有更高期待,從而驅使你繼續前行;而差的印象則可能帶來旁人的不信任,乃至破罐破摔的心態;回望在阿里這些年的發展,第一印象法則幫到了我,機票重構項目的順利上線帶給我的不只是 “我也能做好前端” 自信心,也有主管和協作方的信任與更大的成長機會;
  • 收起羽毛與玻璃心:寫得了一手好代碼不一定當得了一個好 PM。15年我負責飛豬域名切換及全站 HTTPS 化改造工作,項目涉及 10+ BU 過百參與者,在推進過程中,從最開始糾結中午 1點半發旺旺是不是可能吵著別人睡覺,到半夜 1點聯繫 PE 解決域名配置問題;從凡是求人就是 “你好師兄打擾了” 的書生氣,到頂著 P5 Title 跨 BG Push P9 大佬出解決方案;從被動執行到主動推動,被逼著磨厚了臉皮。工作這些年,看過不少新人(玻璃心)或老人(自尊心,愛惜羽毛)這一關過不去,遇事不敢問、不敢說,懼怕後果,技術同學折在非技術問題上實在可惜;胸懷是委屈撐大的,收起羽毛與玻璃心,跳出墨菲定律的怪圈,其實結果遠沒有想象中的那麼壞;
  • 魔鬼都在細節中:性能體驗、研發效率與穩定性是前端三駕馬車,圍繞這些大方向很多技術規劃都是類似的,但落到執行結果上千差萬別;類比為什麼每個公司都在公佈自己的戰略方向,卻鮮有人能執行到位或抄得到位?因為頂層設計之下,對每個細節一點一滴的執行與積累存在差異,而這些差異聚合在一起決定了成敗,互聯網行業尤其如此。

北京→杭州:縱身一躍,逐風而行

“你是否和我一樣,一路走來我好匆忙,模糊了來時的方向,清晰了北京的茫茫。你是否也和我一樣,找到了夢開始的地方,日復一日談著理想,年復一年的那條小巷。他們說遠方是大海,那裡會有海風吹來,看著海鷗自由自在,不要讓我的夢醒來。” —— 《海風》 郝雲

從北京到杭州、從技術架構到業務支撐、從一線開發到團隊 TL,2016 年是充滿變化的一年。

飛豬的前身叫做航旅事業部,最初是從淘寶北京研發中心旅行相關業務分拆出來的,因此當時絕大部分研發團隊都在北京。當年為響應集團京杭雙中心戰略,需要成立杭州研發中心,一線同學可以自行選擇是否轉 base 到杭州,同時基本明確了未來資源向杭州傾斜的策略。我當時面臨的情況是,生活上在北京待了近 10 年,在這裡娶了妻、安了家、積累了不少人脈,也早已熟悉了這裡的氣候與氛圍;工作上剛剛從一線開發成為 TL,接手營銷團隊並做完了財年規劃,準備放開手腳大幹一場。事業與生活對抗的焦慮感在團隊內蔓延。與家裡人思量再三,考慮未來發展,決定響應號召轉 base 到杭州,自此開始了 4 年多的雙城生活。

image.png
離京前歡送會,北京前端團隊合影(2016)

7月份到杭州之後,先做了一段流媒體、直播業務,這期間有個小插曲,直播底層能力由淘系支持,由於優先級問題需求一直排不上,這種跨 BU 項目推進的痛苦相信很多人都經歷過。我當時手上就這一件事,退無可退,索性把工位搬到對方團隊坐了兩週,軟磨硬泡,直至參與對方的項目去寫代碼作資源置換。最終項目如期上線,而我也借這個機會學習了一下淘系的工程化基礎設施和研發流程,收穫頗豐。拿結果有時需要非常手段或另闢蹊徑,找不到方法的時候問問自己是不是被逼得還不夠狠。

16年底組織架構再次調整,開始接手 8 個人的杭州度假前端團隊,以及 30+ KISSY 存量項目。

當時在中臺化大背景下,大量基建收口共建;飛豬是阿里一個業務 BU,而我們是飛豬的一個業務團隊,在集團中臺(研發框架、搭建平臺等設施)與飛豬架構組(工程化、基礎組件等基建)之上,向下探索是重複建設,單純支持好業務開發又缺少沉澱(相信現在不少團隊也有類似問題);加之接連的組織架構和方向調整,士氣不高,第一要務是明確團隊定位和方向,一起贏一場大仗。

我的選擇是堅決往上走,到業務最前線去找機會,底層基建不爭不搶。由於歷史原因,飛豬當時是行業化的組隊方式,分交通、酒店、度假等業務線分別有獨立的運營、產品、技術等職能團隊;對於前端研發來說,這也意味著每個行業諸如頻道、搜索、詳情、下單等頁面都需要獨立開發一套,帶來諸多問題:

  1. 前端行業化組隊收益有限:行業化本質是在解決供應鏈差異性問題(如機票,基於 GDS 的運價體系結合全球庫存分銷體系,構成了非常深的行業壁壘),垂直化組隊模式有助於底層業務模型抽象,但行業間 C 端表達層面區別並不大(價格/庫存等行業業務語義差異極大的字段到端上都是數字),端同學垂直分工帶來的收益十分有限;
  2. 難以在行業間形成合力:行業數據模型不統一、定製化功能不收口導致端側重複建設,研發效率較低,同時面向多行業串聯打通的場景無法高效支撐;
  3. 難以保障端側體驗一致性:行業化過程中由於視覺交互規範不互通,相似場景產生多套方案,端側體驗難以保障一致性(如機票搜索篩選面板固底而汽車票固頂,同樣是 OD 類商品產生了兩種交互形式);
  4. 不利於人的成長:行業化組隊方式前端同學同時負責一條業務線的全鏈路業務,而類似頻道的純展示頁面與類似訂單填寫頁的表單頁面本身依賴的技術方案差異性大,難以抽象複用,也因此很難有更體系化的產出。

抓住上面這些問題,緊靠業務上橫向打通的大方向,技術策略定為「打破三個壁壘」:
image.png

  1. 打破前端與設計師的壁壘:拉通 PD 和 UED,構建蜂鳥設計中臺體系,提供跨行業一致的視覺交互規範,以及五端一致的配套組件庫(H5、Weex、Rax、Android、iOS);形成「行業提報-信息收口-規範升級-溝通決策-落地實施」的標準化鏈路,保障規範穩定持續;
  2. 打破端與雲的壁壘:拉通後端,構建 BFF 層(Node/Java),面向各個業務領域抽象視圖層模型,對下屏蔽業務差異,對上提供一致的數據結構;
  3. 打破端與端的壁壘:拉通各個業務前端團隊,面向各領域 BFF 構建領域驅動的前端業務框架,並以業務組件形式封裝行業實現,支持面向各類場景的功能組合與插拔。

在此基礎上,結合集團中臺化方向,逐步沉澱出度假業務導購域(泰坦+奧恩)、搜索域(豬搜+TUS)、詳情域(travelDetail+TUD)以及交易域(tripbuy+奧創)解決方案。

18年整個飛豬的平臺化戰役打響,我負責了其中導購與端側兩部分的平臺化工作,本質上是度假已有實踐經驗結合各行業特點向整個飛豬的輸出。雙十一前順利完成改造切流,平穩度過流量洪峰。這次改造對於業務團隊來說,價值體現在幾個方面:

  1. 解決研發效率瓶頸問題,支持跨行業物料互通,統一商品/交易,也為後續支持全域氛圍控制、結構化表達、全域投放、資源位互通等打下基礎;
  2. 為業務團隊一線開發同學打開思路,在基礎架構與上層業務之間明確了業務架構層,各域可以更聚焦作領域解決方案的演進,也為日後頻道批量生產、搜索卡片動態化、詳情域 DX 動態模板化、交易域新奧創遷移等項目打下基礎;
  3. 推動團隊完成組織架構調整,從按行業化縱切的組隊方式,改為按領域橫切,職能更加聚焦。

image.png
雙十一前夜動員會,有幸和老逍同框(2017)

今天回過頭再看京杭調整這次旋渦對不同個體的影響,現在 4 年過去了,選擇縱身一躍轉戰杭州的同學,與選擇留守北京在聚光燈外堅守的同學,都收穫了不錯的成長,也拿到了結果;把時間的尺度拉長,並不存在決策的好壞,關鍵在於能否堅持。這段經歷帶給我的:

  • 謀前不懼,謀後不悔:做決策最忌諱的是不作為與左右搖擺,正確決策>錯誤決策>不決策,在全面評估、權衡利弊之後,沒有最優解的情況下,相信直覺是個不錯的選擇;堅持與選擇同樣重要,路都是越走越寬的,早決策早出發,把時間用來奔跑而非等待;
  • 橫向跨端,縱向跨棧:前端是應用架構最上層,瀏覽器屏蔽了硬件層、虛擬層、OS 層、框架層的絕大部分細節,架構很輕薄,因而也容易面臨瓶頸問題;因此橫向跨端的大前端體系,或縱向跨棧的全棧開發工程師體系是個人職業發展的必由之路,面對問題打開思路能夠發現更多解法;
  • 小處著手,大處著眼:從 PC 首頁改版 PM,到 HTTPS 改造/域名切換牽頭上百人虛擬團隊;從 H5 小業務的性能優化方案,到「性能體驗虛擬小組」負責人;從度假業務架構升級,到推進飛豬平臺化建設,我的經歷很多都是從一件小事開始積累量變,在某個時間點借勢質變。規劃不用開始就做得很大,重要的是從身邊小事做起並做到極致,過程中不斷湧現的新問題會帶來深度與壁壘;腳踏實地的同時仰望星空,看看有什麼設施可以複用,手上方案又可以解決別人什麼問題,加以時日技術體系與產品自然能長起來;
  • 定目標,畫大圖:我從一線開發到 TL 的躍遷是從畫大圖開始的,相比一人吃飽全家不餓的爽快感,團隊協同需要做到一張圖、一場仗;好的大圖首先要考慮面向的受眾與要定義的問題域,摒除不相關信息的干擾,其次要能結合規劃突出重點,另外還要明確表達分工及相互間的關聯關係;大圖務虛的表象背後,是對一個領域運籌帷幄的能力與信心;
  • 塑造團隊,使眾人行:打造一個奮進、卓越的團隊需要對權利與責任有更清晰的認識,帶好一個一線團隊由淺入深可以拆分為四個階段,1)活水之源:昨日因今日果,招聘要憑良心;2)換位思考:眼裡要有事更要有人,多做 1v1 溝通,培養同理心(我懂你)、信任感(你懂我)與利他心態(能成事);3)榜樣作用:我說你聽,我做你看,你說我聽,你做我看,帶領團隊贏一場大仗;4)使命與願景:沉澱共同的文化、目標與路徑,攀更高的山,看更美的風景。

我在飛豬做導購:謀定後動,知止有得

“樑丘據謂晏子曰:‘吾至死不及夫子矣!’晏子曰:‘嬰聞之,為者常成,行者常至。嬰非有異於人也。常為而不置,常行而不休者,故難及也?’” —— 《晏子春秋》

18年底,平臺化戰役一期結束後,伴隨組織架構調整,我所負責團隊的業務範圍從垂直的度假業務,轉型橫向大導購方向,專注於購前鏈路的流量獲取與高效轉化。同時組建 Java 導購和無線服務端團隊,開始從純前端職能團隊,向混合棧業務團隊轉變,2年時間團隊規模也從最初的 8 個人慢慢發展到 30+ 人。從前端到導購的變化帶來了諸多挑戰:
image.png
第一個挑戰,是可對話,具備跨職能平等溝通的能力。接手後端團隊後最先湧來的是一堆新的技術或業務名詞、知識體系,印象很深的是一次開會與酒店團隊聊 DUMP 數據對接方案,雙方一線同學你來我往,雲裡霧裡脣槍舌劍一番沒有達成一致結論,幽幽地轉頭看向我,我憋紅了臉吐出四個字:“啥叫 DUMP?”。

類似的場景其實在工作中比比皆是:擔任項目 PM,後端同步的 fgc 問題有多嚴重,是否需要協調其他角色協助排查?記業務會議紀要,從 CPM 切換到 CPC 模式這個 Action 應該指派給誰?跟進客戶端發版,iOS abort 率萬 7 是什麼水平,發版是否需要延期?

接觸一個全新的領域,有大量陌生的名詞和知識體系需要補足,解決雞同鴨講的問題,然而最大的阻礙不在於新領域的壁壘,而在於我們過往的經驗、資歷、光環,不想示弱、害怕傷自尊,缺失放下身段與周圍人請教學習、比拼技藝的勇氣,這些都可能阻礙溝通,影響理解與表達,提高進入新領域的門檻,

快速具備可對話能力沒有太多訣竅,重點就是放下身段,磨厚臉皮,不懂就問。每個人都會有知識盲區,抓住機會向身邊任何層次/背景的人請教,收穫的是自己的成長;況且剛開始就主動坦誠、積極溝通學習,也遠好過死扛一段後在關鍵場合被打回原形(比如晉升場)。

image.png
杭州大雪,度假前端團隊合影(2018)

第二個挑戰,是思想跨棧,從技術/產品思維到業務思維的轉變。前端技術有其特點,1)天然開源;2)交互設計強相關;3)產出物可見;這些特點帶來了我們這個群體對開源與分享的熱衷、對美感與細節的追求、以及對用戶體驗的極度關注,因此優秀的前端工程師產品 sense 多半不錯,從琳琅滿目的技術產品、炫酷的官網、完善而規範的文檔/Demo 就可以看出。但技術/產品 sense 與業務 sense 之間仍有巨大鴻溝,以 Push 平臺的 case 舉例,不同思維方式考慮的點:

  1. 前端思維:配置頁面打開速度怎麼樣,大表單有沒有緩存機制,Push 文案在不同尺寸屏下被截斷的效果,承接頁兼容性如何;
  2. 後端思維:消息能不能準確送到,任務如何拆分與合併,線程池如何設計,海量消息高併發如何解決吞吐率和時效性問題;
  3. 產品思維:消息類型能不能橫向擴展,推送時間是否支持自定義,數據報表能不能與觸達任務無縫銜接打通;
  4. 業務思維:哪類 Push 拉新效果更好,什麼時間發打開率更高,哪些消息面向活躍率/又有哪些是面向成交,兩者比例如何拿捏。

做業務要為最終結果負責,而前端角色從技術/產品思維到業務思維的一躍有很多天然的瓶頸與鴻溝,1)過度的產品化執念導致容易陷入細節;2)缺少與業務方長時間高頻度的互動,對商業模式的理解、數據的敏感度不足;3)從阿里內部看,更偏垂直專業領域的 KPI 與晉升體系一定程度上也決定了技術產品化的重要性會略高於業務結果。

從產品/技術思維到業務思維的轉變,可以嘗試從以下幾個方面來培養:

  1. 培養對目標與數字的敏感度,嘗試收集並形成自己的訂閱報表,定期 Review,多追問指標升降背後的原因;
  2. 加強與業務方互動,多從業務目標視角看待每個需求,使用 STAR 法則梳理關聯關係,多問幾個為什麼;
  3. 嘗試結合掌握的信息去做公式拆解與沙盤推演,例如 App DAU = (MAU * 月均訪問頻次)/30 + 域內日均拉新 + 域外日均拉新,目前的現狀每個指標分別在什麼量級,每個需求又分別服務於哪個指標,能夠提升多少,提升後是否能推導出目標達成,拆解事項並梳理優先級;
  4. 拋下過於超前的產品執念,避免陷入細節,以產出最小可行產品(MVP)為原則快速試錯與迭代,區分好「錦上添花」與「雪中送碳」。

image.png
阿里五年陳授戒,夢想可貴,天生無畏(2019)

第三個挑戰,是目標與定位,劃定在部門中的位置與邊界。飛豬採用的是大前端的團隊組織形式,內部分工協作相對清晰,協調成本也比較低,因此各團隊除了對接固定業務方需求外,基建分工一般更面向技術棧,如小程序一碼多端(Rax/小程序)、中後臺(PC/表格/表單)、互動玩法(Canvas、WebGL)、工程化架構等,這樣的分工天生會有相對清晰的邊界。剛開始帶導購後端團隊,由於更貼近業務以及橫向支撐的特性,帶來不少問題:1)對接業務方多,各業務方 KPI 目標存在差異,需求承接缺少主線;2)技術上各應用缺少清晰的定位與領域劃分,怎麼快怎麼來,架構腐化快;3)邊界不清、業務功能模塊重複建設導致與營銷、行業等協同團隊踩腳的事時有發生。

因此,拆解 BU 規劃,確定團隊綁定的業務目標會比前端更為重要。前期重點做了幾件事情:

  1. 確定團隊的北極星指標,前期關注導購平臺承載流量規模,在研發資源投入不變情況下,提升多樣化業務承接能力;後期關注業務 IPVUV/成交轉化,通過業務策略、算法的快速迭代試錯優化流量承接效率,再通過規模化效應快速賦能全渠道提升轉化。
  2. 圍繞北極星指標確定不同階段的核心業務方,並通過目標規劃對齊確定產品技術規劃與優先級;如最初的業務收口階段,首先拉取了各個資源位渠道流量規模,然後由大至小逐步溝通推進收口,同時對於 App 首頁等重點場景提供底層統一能力之上的定製化產品支撐;
  3. 對於技術規劃中涉及到的各系統模塊,與協作 BU、中臺團隊溝通確認是否有已有系統能夠支撐並且規劃能夠 match,不滿足條件的情況下明確定位區別與各自邊界,自建支持。

image.png
進入業務深水區,很多時候需要攻堅的不只是技術難題,還有組織難題;在有限資源情況下,決策不做什麼也比要做什麼更重要。近兩年的飛豬導購生涯,推動了導購域三個階段的升級改造:

  1. 階段一 建設飛豬物料流通大動脈(2018):解決行業物料不互通,平臺能力不互通的問題,完成面向飛豬業務的選品平臺(星辰)、投放平臺(泰坦)、搭建平臺(頁匠)建設,圍繞多種類型的行業物料完成統一分發鏈路的構建,通過一條大動脈串聯了雲與端。
  2. 階段二 端側資源位收口,業務承接物料加工(2019):構建資源位管理體系完成端側資源位收口,包括主動觸達渠道(如 Push)、靜態資源位(如 App 閃屏)、動態資源位(如 SmartBanner);構建 LandingPage 生產體系,基於飛豬行業化物料快速批量化搭建場景頻道、榜單、清單等 Landing 頁。提高人貨場匹配效率。
  3. 階段三 構建精細化運營體系,推動運營模式轉型(2020,ing):構建用戶增長、人貨場理解、流量調控、策略編排、商業化、數據可視化等數據化/智能化基礎運營能力,實現精細化人群/場景運營,推動飛豬從面向行業運營、流量運營的模式向面向用戶運營、策略運營的模式轉變。同時沉澱高質量運營物料與策略,並通過人群包、數據銀行、商家運營平臺、生意參謀等產品渠道賦能商家優化運營能力,提升運營效率。

    這段時期從前端技術層面也做了不少事情,推進 Serverless 和 H5/小程序一碼多端技術體系落地,重新定義雲+端的研發模式;完成基於微前端+業務 SDK 化的中後臺模式落地,面向運營場景對不同產品功能原子作一體化整合;構建互動玩法體系,賦能產品與 UED 更豐富的業務表現形態。目前聚焦在前端標準對接 Flutter Engine 自繪渲染的 Web on Flutter 體系構建,以及阿里經濟體的跨端研發基礎設施落地,繼續提升研發效率及性能體驗。

image.png
兩年時間導購平臺逐步承接了飛豬全域超過 70% 流量,同時實現了公域推薦搜索鏈路 GMV 佔比 5% → 15% 的增長。我個人伴隨業務一路成長也有不少收穫:

  • 技術跨棧,職能跨棧,思想跨棧:跨棧的本質是不設限,能寫 H5 也能寫 Node,能做前端也能做後端,能搞定技術也能搞定業務,關鍵在於投入夠不夠果斷和持久。兩年導購平臺建設,不同階段涵蓋了前端、工程、算法、產品、業務、UED 等不同職能角色的突破需要,隨著問題複雜度的提升,個人的力量會顯得羸弱,嘗試跳出自身技術棧與職能角色,圍繞目標協同更多角色打大仗,挑戰巨大卻也充滿價值;
  • 因勢而謀,應勢而動,順勢而為:“風口之上,豬都能飛”,個人成長也好,業務發展也好,借好勢能保證事半功倍。導購平臺從 0 做到承載飛豬全域超過 70% 的流量,抓住了人員流失的風口重抓研發提效,抓住了全域個性化的風口提供統一算法埋點能力,抓住了場景化串聯行業的風口統一數據模型與選品/投放能力,抓住了平臺化的風口完成大部分公域投放業務收口。磨鍊對業務方向與目標的敏銳感,順勢而為;
  • 從管理者,到管理者的管理者:最近兩年團隊規模一路成長到大概 35 人,帶隊精力明顯不夠,於是在年中拆分了二級團隊,直觀感受到的變化 1)信息鏈路變長,很多信息直接 get 不到了;2)對一線同學的產出與狀態感知變得不太清晰;3)團隊內部開始出現分工與邊界問題;4)在「一線管理補位」與「跨級管理顧慮」間反覆橫跳。一些會議逐漸不再參與,負責的事情也逐步下放,在 BU 內的存在感變弱,坦白說會有短暫的焦慮,尤其是下面同學能力很強時。我也一直在調整自己的狀態與精力分配,1)努力往信息與規劃的上游走,多與產品業務一號位、各技術域一號位溝通,保證信息通達;2)把控宏觀方向,從日常事務中抽出身來,結合業務思考未來 2~3 年的規劃,跟進前期運作;3)對新履職的 TL 給空間、做兜底,退二進三;4)更多思考團隊發展與人員成長的問題,使眾人行。早前參加過一次管理培訓,授課老師提到管理分幾個階段:不帶人 - 帶幾個人 - 帶幾個管理者 - 做一號位;從第二到第三階段不是人數變多的量變,而被類比為不帶人-帶人的質變,當時不理解,現在深以為然;
  • 關於 Work life balance:職業成長到達一定階段難以突破有時不是因為能力或機遇,而是源於家庭與生活,並不是說家庭不重要或者拖後腿,而正是由於家庭生活非常重要,而我們在努力工作過程中會潛意識忽視掉對家庭的參與與貢獻,最後矛盾激化。其實 WLB 指的並不是 6 點還是 7 點下班,而是保證有限的家庭生活中能夠全情投入(不玩手機、參與家務、製造驚喜感等等),不存在顧家就不能加班,熱愛工作就無法兼顧家庭的兩極分化;是否能像對待工作一樣對待生活,高質量陪伴,共同謀劃未來,甚至一起定一些 KPI——比如每月帶孩子去一次遊樂園——並努力拿到 3.75,才是 WLB 的真諦。

“人生就是一列開往墳墓的列車,路途上會有很多站,很難有人可以自始至終陪著走完。當陪你的人要下車時,即使不捨也該心存感激,然後揮手道別。” —— 《千與千尋》

本文起稿於9月中,剛起筆時筆者還在負責飛豬大導購方向,月末適逢團隊調整,拖了一個多月才最終完稿;當下團隊方向已然轉移到飛豬的數字化運營平臺體系(偏中後臺)建設上來,變化不可謂不快。分分合合間,有人會留下,也有人會離開,選擇本身沒有對錯,作為曾經一起拼搏的同路人,心懷感恩,也期待未來能夠在某個路口再相逢。

image.png
飛豬大導購團隊安吉團建合影(2020)

借這個機會,也簡單聊聊我對 “擁抱變化” 的理解。排斥變化是人性,我們潛意識裡都會懼怕未知,首先認可這一點。把人的能力成長抽象成兩根曲線:
image.png
一根是真實能力曲線,代表內在部分,可以想象成一根彈簧,把它立在桌上,自頂向下俯看下去一直在繞圈,一如進入一家公司成為新人,幾年時間變成老油條,換一家公司又變回新人;又如每次新技術的推陳出新,都從新手入門開始,繼而寫 Demo、做項目、看源碼、fork 拓展,最後又被更新的技術替代。俯看每次畫完一圈似乎都回到原點,但從側面看過去,高度卻一直在上升,無非是有時快一點,有時慢一點。

另一根是表象能力曲線,代表真正被別人看到的部分,可以想象成一系列不連貫的正切曲線,把每段曲線看作一段經歷,向上的勢能往往是緩慢增加,到達峰值後緩慢下降的過程;而每次 “擁抱變化” 就是兩段曲線間的縱身一躍,對技術、環境、人的陌生看似短時間內降低了我們的表象能力,但也意味著更大的潛在勢能和未來更大的空間。

“擁抱變化”這件事並不是阿里特色,無論身處何時何地都會反覆經歷。關鍵點在於如何看待並接納 “變化”,在不確定中尋找確定性,抓住每次驚險一躍的機會去提升和突破,並在表象能力背後去感受真實能力的成長。

結語

“今天的每個人都只是約 70 億人類中的一員,而人類又只是地球上約 100 萬物種中的一個。地球只是銀河系約 1000 億顆行星中的一個,而全宇宙有約 2 萬億個星系。人的壽命只是人類歷史的約 3000 分之一,而人類歷史又只是地球歷史的 2 萬分之一。換言之,我們渺小、短命得不可思議,無論取得什麼樣的成就,其影響都是微不足道的。同時,我們又本能地希望有意義,希望進化,而我們只能產生一丁點兒意義。所有這些一點點的意義加起來,才是宇宙進化的推動力。” —— 《原則》 瑞·達利歐

“人固有一死,但正因為此,我們才是幸運兒。大多數人根本就不會死去,因為他們壓根就沒有誕生。這些潛在的、沒有出生的人,數量超過了阿拉伯大沙漠中的沙粒;他們本來可能活著與我們同列,但事實上卻永遠也沒有機會見到一絲陽光。顯然,在那些沒有誕生的生靈中,會有比濟慈更偉大的詩人、比牛頓更偉大的科學家。我們知道這些,是因為我們的 DNA 所允許的‘可能存在的人’的數量,大大超過有機會出生的人。擁有這些罕見機會的幸運兒,就是你和我,就是生活在這世上的平淡無奇的人們。” —— 《解析彩虹》 理查德·道金斯

這篇文章是我在阿里一路成長的總綱,經驗與教訓都雜糅其中,如果你能看到這裡,希望能有所收穫,或有所啟發。回頭看在阿里一路的成長,校招畢業 4 年時間從 P5 到 P8,除了足夠努力這個必要非充分條件外,我自知是無比的幸運,感恩這個時代,以及所處的行業與平臺帶來的巨大紅利,感恩家人/朋友/導師/夥伴的支持。

今天團隊新人越來越多,30 歲的眼睛望過去,滿是自己 20 歲的影子,一樣的陽光開朗、意氣風發,想要成就一番事業;卻也在滿是荊棘的路上,一樣充滿汗水與淚水、挫敗與迷茫。人的成長更多靠自己,環境只能催化與啟發,要相信風雨之後是晴天,烏雲之後有太陽,播下愛與夢想的種子,耐心等待她破土而出,生根發芽。

今年疫情、山火、洪水、蝗蟲,天災不斷;災難來臨,站在社會與國家的層面 “人” 確實是太渺小了,“時代” 撣撣灰塵落到每個個體身上都是千鈞重壓。然而生活在這個欣欣向榮時代的我們又是如此幸運,身邊每個人都充滿希望,活在明天收入會更多、福利會更好、交通會更便利、物資會更豐富的預期裡,坦然地認為這就是平凡得不能再平凡的人生常態,殊不知把 5000 年文明史放在座標軸上,這樣的時代甚至短到看不見;原來我們才是茫茫歷史長河中的幸運兒,沒有常年的饑荒、戰亂、瘟疫、殘酷的剝削,而是糧倉殷實、社會進步、科技發展、國泰民安。

因此,懷揣感恩的心態,享受當下的生活,你若盛開,清風自來。

我是聖司,我在飛豬前端團隊,一個「勝則舉杯相慶,敗則拼死相救」的集體!

image.png


image.png
關注「Alibaba F2E」
把握阿里巴巴前端新動向

Leave a Reply

Your email address will not be published. Required fields are marked *