说点题外话,自从自己编春联贴门口后,感觉都很灵。去年编的春联:

  • 上联:夔牛水牛黄牛牛牛旺
  • 下联:靓崽狗崽猫崽崽崽安
  • 横批:码祥稿俊

  结果今年的代码就一片祥和,生活上也应验多了点变化。于是今年决定再编一联。

  • 上联:春趁其势以逮牛尾
  • 下联:岁攀南风来迎虎喵
  • 横批:双生时兮

  不知道新的 2022 年会发生什么,拭目以待了。

今年关键字:触底反弹。

生活

  今年多了点变化,家里由原来的两口人添置了新丁。算是生命周期里面的一个转折点吧。毕竟老大不小了。也是由于这一点,今年基本上没有出去旅游过。在起名上,也是绞尽了脑汁,甚至为其攥了几句短句。

  夫〇〇行过,皆留〇与〇。〇者,声也;〇者,形也。声形并茂,乃绘〇〇。 ——死月 于公元二零二一年五月四日凌晨

  这个改变后,好似以前很多事情都显得并不重要了,渐渐自己也看开了。反而事情朝着好的方向发展。

足迹

  今年只有一次足迹。按习惯来讲,应该是一个 <li> 列表,但只有一项又显得矫情。

  • 武汉·Node 地下铁沙龙 #11 出品人

  这甚至都不应该归为“生活”一栏,因为并没有任何的娱乐活动,匆匆两天,一直在忙活。也是由于没有出去别的什么地方,这小节能发的照片也就只有一张了。

对,那个左下方背对着你们的就是我

  其实接近年底有例行的一些照片,不过都比较私人,就不放到公众平台了。

其它

  今年理想汽车车主浓度加一。

死月的二零二一总结 - 图2

  在商场附近发现一家比较好吃的小酒馆(尤其是黄金蒜风干鸡),在离职期间想约同事一起去的时候,发现他偏偏“每周一闭关”,算是一个小遗憾吧。

死月的二零二一总结 - 图3

  自从出游收敛以后,就开始转而向内生活转变了。游戏通关、云通关以及开坑了:

  • 《渡神纪》
  • 《对马岛之魂》
  • 《赛博朋克 2077》
  • 《双人成行》
  • 《天穗之咲稻姬》
  • 《轩辕剑柒》

  以及入了一台 PS5——不过吃灰已久。与之对应的,就是新来的塑料小人们了。

死月的二零二一总结 - 图4 死月的二零二一总结 - 图5 死月的二零二一总结 - 图6 死月的二零二一总结 - 图7 死月的二零二一总结 - 图8

  还有年初入的宝儿姐没有入镜。下次来个几柜子的全家福。以及带着大小女儿参展了:
20220105-160652.jpeg

  还有就是太久没唱歌了,那天心血来潮去录音棚录了首《赤伶》。好想去 K 歌。

死月的二零二一总结 - 图10
点击试听,聒噪你的耳朵。得亏有调音师,不然更没法听了

  而今年的琴就练了首《游园设施》,但没拍视频。黑胶倒是入了一大把,颇有种“明明不是文化人,偏偏要装有文化”的感觉。

工作

  今年差点又翻车,又莫名其妙多个帖子。

  一直也没时间和机会来谈这一点。这次就趁年终总结的机会来说说今年的工作吧。

  自去年从蚂蚁转岗到淘宝后,其实一直挺开心的——毕竟做的事情比较契合自己的灵魂。既有足够的前沿度、又有足够的技术深度,并且还得到组织的认可。对我来说,这三样都能达标是非常珍贵的体验。

  自 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 悟道》终于出版。大家喜恶参半。道格拉斯的个人风格太鲜明,导致在翻译的时候老搞不清他到底是哪头的。在翻译的言辞上也是做了很多润色和本地化,不过有挺多因为一些和谐原因被编辑给毙了。

  比如 Wat? 一章的标题,我个人认为最合理的翻译是【卧槽!】。还有一段讲的是英文中的 This 和代码中的 This 分不清,老讲来讲去像跟美国三四十年代的两个谐星一起结对编程一样(谐星名字我忘了)。我给翻译成:

  它(This)是一个指示代词。在编程语言中使用它(this)会让其难以人类语言表述。老这么讲来讲去,你就会觉得自己是跟郭德纲与于谦结对编程一样。

  结果因为各种各样的原因,这段话直接就整段没了。本来它是第 16 章的最后一段话——在「this 真是个坏家伙」之后。

  还有个彩蛋是,当时出版社设计了两稿封面。其中落选的那稿用的是我妹花了几个小时在 iPad 上画的原图。以及这本书我最开始想到的中文译名是《JavaScript 异闻录》。

死月的二零二一总结 - 图11 死月的二零二一总结 - 图12

幕后:武汉 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