寒冬下的2022,一个新手前端的适应与思考

1,773 阅读8分钟

魔幻 2022 过去了,不再查健康码,民航五个一也放开了,看着同学逐渐趁着圣诞假期回国,内心也算百感交集。是时候记个流水账,总结一下过去的这一年。

我在 2019 年本科毕业后去休斯顿读了硕士,期间赶上疫情爆发,庆幸拿到手的 eBay 暑期实习没有被取消,但可惜实习期三个月都没法去湾区的 Office。在这个暑假,我第一次入坑前端,实习的主要工作是尝试创新使用 WebAssembly 优化原有的图像处理工具。虽说三个月充满煎熬,摸爬滚打,但好在最终效果不错,拿到了转正留用。但因为一些个人原因,加上确实被疫情封得久了,还是投了国内的秋招,当了一回“最美逆行者”。

在互联网迅速膨胀的2021年初,我正式以校招生身份加入了腾讯文档前端团队,花了一整年的时间磨合与适应,晋级和绩效都还可以。本以为一切顺利,我会在团队当中一直“安稳”地做一个按部就班的执行者,谁知2022的到来却给原本佛系的我带来了重大改变。

“你不再是一个执行者了”

2022的年初,我第一次以 tech owner 的身份参与了企微文档收集表技术融合项目。目标是实现“一码多应用 + 私有化部署”,说白了就是把两个仓库的代码合二为一。不过对于20W+代码量 & 天级迭代的高复杂度前端项目来说,保证代码拓展性的同时不劣化性能,就必须设计一套合理的前端架构。于我来说,这是第一个真正意义上作为 owner 的项目,也不再是某个模块的改动,而是整个工程的改造。这意味着我不能像以前一样只需按部就班执行,而是需要主导架构设计、技术方案制定,还需要协调企微团队配合、制定 RoadMap、检查进度确保交付……

过程当然是十分波折,连续加了十几天班,甚至还把 Leader 拉上一起来写码,才勉强保证了交付。正是这次经历,让我更从交付的视角看问题:重要的不是用了什么牛逼的技术,设计多么惊世骇俗的架构,而应以交付为最高优先级,选用最适合的技术方案,如有余力,再做创新。也正是从这个阶段开始,我逐渐开始从一个单纯的技术实现者向技术 owner 的角度转变,在之后的日子中,开始更加关注如何制定技术方案,如何把控进度保证交付,甚至是如何沟通使不同节奏的团队成员保持步调一致。

“技术应该赋能业务”

在腾讯,高阶职级的晋升往往需要答辩,而答辩的前提通常是做出了一些技术突破,达到了什么样的优化效果。当时的我十分眼红隔壁团队的年轻高T,所以也希望赶紧卷一些新潮的技术与轮子,当时的我,错误地以快速的职级晋升作为了奋斗的唯一目标。

当时刚刚经历了合仓项目,我较全面地了解了前端项目的构建、渲染、数据流、架构、监控告警、CI/CD 等。本应继续踏实做事的我,在顺利交付并得到些许肯定后,变得“飘”了。所以今年夏天,我每天都在琢磨卷点什么能晋级,想过做 BFF 插件层服务,想过做低代码搭建表单,想过做小程序,甚至想过将整个收集表 canvas 化…… 而我的 Leader 给我泼了盆冷水,他认为一切技术的皈依是业务,能实际落地并帮助业务发展的技术才是有用的,否则都是空谈!

其实 Leader 的话我最初是质疑的,直到毕业季的到来……

6月开始,多个业务线爆出不同比例的裁员,随之而来的是晋升调薪取消、薪酬回顾延期、晋级规则调整……文档业务还算不错,团队受影响较小;但是部分业务,特别是基建与技术中台团队几乎全军覆没。这个风向很明确:脚踏实地做好业务,才是互联网浪潮褪去之时唯一的出路

看着身边不少小伙伴被“毕业”,在担心自身安危的同时,我也开始思考:在没有粗放型增长的时代该如何有效卷出成果。随后的几个月里,我开始慢慢理解 Leader 之前的话:当前环境下的突破点,应该围绕如何降本增效以及如何利用技术赋能业务上。

“业务做好了,什么都会有的”

围绕着这个思路,我将全部投入到了业务需求研发上,并在做需求的同时收集梳理大家研发时的痛点,同时将更多的注意力放在了数据与用户反馈上。

为此,我抽空捣鼓了一些 Webpack 调优、性能优化以及工程化方面的探索。为了彻底地搞点事情,我想对整个项目来一个大换血,于是参与设计了收集表的【熵降计划】,针对项目历史逻辑 + 合仓没填完的坑,希望对整个项目来一个彻头彻尾的重构。

此外,我还从 Leader 那接手了腾讯文档前端非编数据领域服务,梳理了领域驱动设计的架构模式并沉淀多篇文档。我希望能够推动领域服务在全品类内接入,节省请求调用,彻底统一各品类非编辑数据层。

虽然上面提到的方案,直到我离开也没有里程碑进展,但是已有的阶段性成效对于性能与服务端请求压力上都起到了不错的优化效果,此外也逐渐规范了团队同学的架构意识与研发习惯。更重要的是,这些微小的贡献实打实地服务了业务发展。经历了这半年,我也拿到了属于我的第一个 Outstanding 奖杯。

“适合自己的才是最好的”

下半年开始,身边伙伴变动明显多了,有的去了我一直想去的某外企,有的跳到了同类型公司并拿到了不错的涨幅。我多少也会受点影响,也希望能否接触一些新的方向。今年 9 月,我开启了自己长达两个半月的面试选择期。

或许是九十月份北京的大太阳消散了部分“寒冬”的冷意,我的面试流程还算顺利。有hc的公司基本都走到了后面,排除了一些选项后,我最终选择了字节。不过特别值得一提的是两个让我纠结到头秃的选项:

  • 淘系技术部:做淘宝业务的大名鼎鼎的前端团队,团队基建、技术能力、业务复杂度都没的说。个人成长直接拉满,也是我最纠结的公司。不过考虑到我个人在其中的发挥空间可能有限,加上通勤距离太远,最终没有选择。
  • Grab:东南亚美团+滴滴,真外企不加班,且总包并不比国内大厂低。不过考虑到自己还算年轻,还是想保持节奏与活力,最终没有选择。

其实选择是很难做的,特别是对于我这样一个既要又要还要的人。我最后加入的字节团队是 UG 团队,做纯业务支持,所有的技术突破都必须围绕业务发展与提效角度来开展,这一点也非常符合在腾讯 Leader 对我的建议。就此,我离开了陪伴了我630多天的腾讯,展开了全新的旅程。

在现在的团队,工作与之前差异很大:基建更加完善,但业务逻辑与数值试验需要后台实现,前端在其中更多起到渲染作用。我的工作日常不仅要写代码、联调、排人力 & 与 PM 沟通,还需要关注业务数据并归因 & 思考。从整体方向来看,业务特性也会要求我更从全局视角出发,跳出“前端”本身的概念,了解服务端、数据库、系统设计等领域……对我来说,也是一种全新的挑战。

最后

在各种不顺的时候,我也会反思自己的选择是否正确,也会想:如果还在腾讯会怎样。同样,卷到深夜的时候也会想,如果当初留在 eBay 会不会和现在不一样。我不知道我的选择是否正确,正如我在回答里说到,这是我的选择,至少,现在生活还不算太糟。

www.zhihu.com/question/31…

最后的最后

新的一年,在保证“活下去”的前提下,争取在团队中找到一些新的技术突破点并落地。从个人技术成长的角度,在继续完善 React SPA 专项的基础上,计划在前端状态管理框架、工程化工具(webpack & babel)角度研究;同时,也希望自己在服务端技术与架构上打下一些基础。

至于分享,今年年末开始陆续写了几篇,希望工作步入正轨后,能真正培养学习与分享的习惯吧。

希望大家新的一年一切都好,也祝大家新年快乐!