本文參與了 SegmentFault 思否徵文「2021 總結」,歡迎正在閱讀的你也加入。
說點題外話,自從自己編春聯貼門口後,感覺都很靈。去年編的春聯:
- 上聯:夔牛水牛黃牛牛牛旺
- 下聯:靚崽狗崽貓崽崽崽安
- 橫批:碼祥稿俊
結果今年的程式碼就一片祥和,生活上也應驗多了點變化。於是今年決定再編一聯。
- 上聯:春趁其勢以逮牛尾
- 下聯:歲攀南風來迎虎喵
- 橫批:雙生時兮
不知道新的 2022 年會發生什麼,拭目以待了。
今年關鍵字:觸底反彈。
生活
今年多了點變化,家裡由原來的兩口人添置了新丁。算是生命週期裡面的一個轉折點吧。畢竟老大不小了。也是由於這一點,今年基本上沒有出去旅遊過。在起名上,也是絞盡了腦汁,甚至為其攥了幾句短句。
夫〇〇行過,皆留〇與〇。〇者,聲也;〇者,形也。聲形並茂,乃繪〇〇。
——死月 於公元二零二一年五月四日凌晨
這個改變後,好似以前很多事情都顯得並不重要了,漸漸自己也看開了。反而事情朝著好的方向發展。
足跡
今年只有一次足跡。按習慣來講,應該是一個 <li>
列表,但只有一項又顯得矯情。
- 武漢·Node 地下鐵沙龍 #11 出品人
這甚至都不應該歸為“生活”一欄,因為並沒有任何的娛樂活動,匆匆兩天,一直在忙活。也是由於沒有出去別的什麼地方,這小節能發的照片也就只有一張了。
對,那個左下方背對著你們的就是我。'
其實接近年底有例行的一些照片,不過都比較私人,就不放到公眾平臺了。
其它
今年理想汽車車主濃度加一。
在商場附近發現一家比較好吃的小酒館(尤其是黃金蒜風乾雞),在離職期間想約同事一起去的時候,發現他偏偏“每週一閉關”,算是一個小遺憾吧。
自從出遊收斂以後,就開始轉而向內生活轉變了。遊戲通關、雲通關以及開坑了:
- 《渡神紀》
- 《對馬島之魂》
- 《賽博朋克 2077》
- 《雙人成行》
- 《天穗之咲稻姬》
- 《軒轅劍柒》
以及入了一臺 PS5——不過吃灰已久。與之對應的,就是新來的塑料小人們了。
還有年初入的寶兒姐沒有入鏡。下次來個幾櫃子的全家福。以及帶著大小女兒參展了:
還有就是太久沒唱歌了,那天心血來潮去錄音棚錄了首《赤伶》。好想去 K 歌。
↑ 點選試聽,聒噪你的耳朵。得虧有調音師,不然更沒法聽了。
而今年的琴就練了首《遊園設施》,但沒拍視訊。黑膠倒是入了一大把,頗有種“明明不是文化人,偏偏要裝有文化”的感覺。
工作
今年差點又翻車,又莫名其妙多個帖子。
- 《散了散了》,原標題大概是說我離職了。
一直也沒時間和機會來談這一點。這次就趁年終總結的機會來說說今年的工作吧。
自去年從螞蟻轉崗到淘寶後,其實一直挺開心的——畢竟做的事情比較契合自己的靈魂。既有足夠的前沿度、又有足夠的技術深度,並且還得到組織的認可。對我來說,這三樣都能達標是非常珍貴的體驗。
自 2017 年去螞蟻體驗技術部後,由於自身和團隊方向的原因,導致做的事情並沒有太大價值,至少在當時當下。但體驗技術部是個非常好的團隊,同事也非常 Nice。所以也就溫溫吞吞過了。但凡事可一可二不可三。後來在研發效能部做 CloudIDE 的時候,徹底迷失了自我。這裡沒有說 CloudIDE 產品本身不好的意思。產品是好的,不然我也不會主動想去這個方向做事。只是這個專案在當時太重前端輕後端了,我作為一個典型的後端 Node.js 工程師,足足寫了好幾個月的前端。一方面自己寫得痛苦,另一方面又沒有什麼產出。最後在淘系前端找來的時候,我選擇了和平分手,於團隊於我都是正確的選擇。
作為九零後的頭趟水,已經從奔三變成奔四了——在身邊都是優秀的小年輕的環境下,盡是小我五六歲的 P7、三四歲的 P8,而我仍然是萬年老 6,無疑給我造成了巨大的焦慮,畢竟潛規則是整個網際網路的,甚至是整個職場的,無關某一兩個公司。好在去年年底和今年抓救命稻草似的抓住了今年的重點專案,算是緩過神來。既然已經追不上超不過了,就選擇縮短與天才們的距離吧。
如果說去年轉崗後做的事情是 PoC,那麼今年就是將這些事情落地了。
首先是 Node.js PGO 極速啟動方案上線,提升了改造專案們約 100% 的啟動速度。又基於 V8 開發了 Serverless Worker(Shinki.js),目前已在內部雙十一試驗成功。對此感覺比較模糊的同學,可以對標一下 CloudFlare Worker、Deno Deploy 等等。值得說出來的一點是我們的 Worker 做到了亞毫秒級(<= 1ms)的啟動,以及架構是高密度部署(理論上一個 Pod 可以部署幾十上百個雲函式)。關於這裡的一些乾貨或者介紹,大家可以回味一下凌恆老師在 Node 地下鐵沙龍 #12 北京場的分享《雲原生時代的 Alinode》。
與神奇的同事們公事了一年後,感覺身邊還是有那麼多人堅守在技術深度的道路上,甚是欣慰——畢竟曾經一度我有一種“在大公司深鑽沒活路”的錯覺。淘系一系列的改變也讓純粹的技術人重新燃起了些許希望。2021 年一整年,沒有後續的跳槽,仍然是我在阿里巴巴集團最開心、如魚得水的一年。
很感謝淘系前端 Node.js 架構團隊給了我今年的機會去晉升。雖然結果出來了,不過我仍然還是期望自己對外一直是 P6,以此來警醒自己。
其實今年上半年就有獵頭找我,說位元組跳動互娛這邊要找個能帶 Node.js 的同學。以前也一直有獵頭找我,我都沒回,或者聊幾句看看行情。
今年這次是被這個獵頭的專業性打動了。大多數的獵頭都是廣撒網加人,加了之後直接丟一個職位列表,然後開始接觸。甚至不是很清楚前端跟 Node.js 的關係與區別。畢竟不是技術出身的同學,我們也不能過多要求他們,大家也都是在很努力地為自己的職業而奮鬥。只是今年找到我的這位獵頭居然對圈子十分了解,而且是定點找我說需要能帶 Node.js 的人,杭州想來想去就那麼幾個,這讓我著實眼前一亮,於是萌生出了試試看的想法。當時只是決定試試看,畢竟我自身身價已經落後市場價太遠了,也拿不到很好的結果。
有想認識這位獵頭的同學可以私聊我。
而且事實上,第一次面試結果不是很理想,我把 Offer 拒了。而在同時,堂主也請我吃了幾次飯,讓我尤為感動的一點是玉北居然從上海跑過來一起吃飯,當天回。雖然我不知道當事人實際上怎麼想的,我反正就是自戀地一廂情願認為他來杭州也是一起吃飯和聊天。
WebInfra 也是需要一個 Node.js Infra 方向的負責人,在大家誠意的打動下,我開始了第二次的面試。結果大家也都知道了,我從阿里巴巴離職,來了位元組跳動。
不是說原淘系前端 Node 團隊不好,只是站在職業規劃的立場上,我認為這邊的 Scope 更適合我。我依舊可以做前沿且深度的事,又有了足夠的 Scope,與小夥伴們一起把這塊基建搞起來。還有一點就是,雞蛋不要放在一個籃子裡,好歹對衝一下。
於是,今年工作上最大的變動就是最終我從阿里的低階 IC 轉變成了位元組跳動一個小方向的負責人。順便打各廣告:
位元組跳動 Web Infra - Node.js 基礎架構招人中:分別招基礎平臺(全棧工程師)、基礎生態(Node.js 工程師)以及底層技術(C++ / Node.js 工程師)。
目前還在做的一件事就是,聯合了螞蟻和蔚來,想著如何給國內的 Node.js 生態搞些活水,重新溫熱一下。目前正在做一套全新的框架規範,叫 China Open Node.js Framework(CONF)。明年可能想搞一個類似於 China Node.js Conf 的會議,大家敬請期待吧。
技術 & 社群
今年逐漸從之前的臺前走到了幕後。
- 出版了《JavaScript 悟道》,算是跟蝴蝶書作者有了交集吧;
繼續參與翻譯審校了 OpenJS Node.js Certification Exams,並拿到了 Linux Foundation 頒發的 Exam Developer Badge;
- 出品 Node 地下鐵武漢專場;
- 開源了 node-sfml,在用 Node.js 寫桌面遊戲的路上探索了一下;
- 發起 CONF 社群,著力與 China Open Node.js Framework 及其 Spec。
比去年更開心的事是,今年寫的程式碼落地了,產生價值了。
翻譯書籍
《JavaScript 悟道》終於出版。大家喜惡參半。道格拉斯的個人風格太鮮明,導致在翻譯的時候老搞不清他到底是哪頭的。在翻譯的言辭上也是做了很多潤色和本地化,不過有挺多因為一些和諧原因被編輯給斃了。
比如 Wat? 一章的標題,我個人認為最合理的翻譯是【臥槽!】。還有一段講的是英文中的 This 和程式碼中的 This 分不清,老講來講去像跟美國三四十年代的兩個諧星一起結對程式設計一樣(諧星名字我忘了)。我給翻譯成:
它(This)是一個指示代詞。在程式語言中使用它(this)會讓其難以人類語言表述。老這麼講來講去,你就會覺得自己是跟郭德綱與于謙結對程式設計一樣。
結果因為各種各樣的原因,這段話直接就整段沒了。本來它是第 16 章的最後一段話——在【this
真是個壞傢伙】之後。
還有個彩蛋是,當時出版社設計了兩稿封面。其中落選的那稿用的是我妹花了幾個小時在 iPad 上畫的原圖。以及這本書我最開始想到的中文譯名是《JavaScript 異聞錄》。
幕後:武漢 Node.js 地下鐵 & Exam Developer Badge & CONF 社群
今年五月份的時候,作為出品人出品了武漢的 Node.js 地下鐵。找了騰訊、淘寶、Wiredcraft、有贊和螞蟻的工程師一起來分享。算是為我明年重搞 Node.js 生態熱熱身吧。總之期待明年可以把國內 Node.js 生態搞熱吧,畢竟 Node.js 在國內沉寂太久了,大家逐漸忘了它居然還是可以寫服務端應用的。
大家有興趣可自行下載 Slide。
做幕後還有個好處就是,萬一哪天窮得叮噹響出去面試了,人家問我有沒有過 OpenJS Node.js 的開發者認證,我可以吹逼說題都是我審校的。就像這次位元組的面試被問八股時間迴圈,我直接跟面試官講了 Node.js 的事件迴圈是怎麼實現的,我自己寫的 V8 Serverless Worker 的事件迴圈是怎麼實現的。這樣哪怕我忘了裡面的一些需要翻看八股的細節背書答案,我也可以藉此把人唬住。
而 CONF 社群,目前也還在籌備階段,所以大家進去也看不到什麼太有價值的內容。
node-sfml
這個不在這裡過多贅述了,十一月的時候我在知乎上發了篇文章,裡面還附上一個用 Node.js 寫的基於 OpenGL 的桌面版 NES 模擬器。
《想用 Node.js 寫桌面遊戲嗎?》
至於為什麼心血來潮要做這個專案——畢竟我小時候學程式設計的初衷可是想做一個自己的遊戲小世界,讓別人在這個世界裡面跑來跑去呢。
這種心態有點像 SAO 中的茅場晶彥。
工作之後才莫名其妙在 Node.js 的道路上越走越偏。
二〇二〇的 Checklist
去年並沒有給自己定 Checklist,算是放飛自我了吧。反而沒有定 Checklist 之後,事情在往好的方向發展——至少目前我認為是好的方向。
展望二〇二二
經歷了這幾年的職場波動之後,有些事情看開了。做事情反而有時候會抱著利他的心態。
- 快速熟悉並上手今年的新角色——無論是生活上還是工作上的;
- 團隊的小夥伴儘可能多地培養成領域的有深度的專家;
- 翻譯並出版《軟體開發珠璣》;
- 過得開心。
剩下的,就隨緣吧。
隨緣箭法。
Ask me anything: https://github.com/xadillax/ama