年初的我还苦陷自 22 年 10 月以来抑郁症的复发情绪中,直到 2 月才在 Leader 的协调下申请了 3 个月的停薪留职。整整三个月都过得浑浑噩噩的,每天在幽怨中醒来,盯着电脑屏幕发呆,尝试学习 Go 和 Rust 来对冲对前端代码的不再自信。
但这种尝试注定是徒劳的,我只能以睡眠麻痹自己,除了老婆每天上下班叫我起来吃点东西,有时候甚至可以一整天躺在床上睡觉。
后来为了摆脱这种无所事事的状态,也尝试过去我哥工作在的常州『玩儿几天』散散心,回南京后甚至去注册了花小猪、滴滴司机,中间因为人证问题我甚至去考了网约车驾驶证资格证,当然自己的机动车肯定不会去上车证,而且我是用自己的 2.5 排量的私家车跑的,每天挣的钱都不够油费,但是好在每次出车一天都很充实,我甚至有时候一整天不吃饭都在路上跑。
等 5 月越来越临近,心里又愈发得焦虑起来:我还能回去好好地参加工作吗?我的工作产出还能达到公司的技术水准要求吗?因为整整三个月其实我并没有学习什么新技术、新思想。
等到真正回到公司重新参加工作,接触到熟悉的工作环境,我发现自己虽然磕磕绊绊,但是还是能完成任务需求的。
我不在公司的这段时间公司开始了一个基于 Backstage 的一个新商业项目 Developer Platform(DP) 和一个基于 DP 的内部项目 IDP 。我们的主要产品 Alauda Container Platform(ACP) 是一个基于 Angular 的一个很重的 monorepo 项目,对于 React 技术栈的积累有一个 Alauda Cloud(AC) 管理平台,而 AC 的整体前端架构是我一手搭建起来的,所以对于 React 相关技术栈我也是很有兴趣参与的。我重新回到工作岗位后不久 DP 项目把我借调过来做一些基于 Backstage 实现的前端动态插件和 i18n 方案,去之前我其实还是有些犯怵的,但实践下来在之前同事的一些调研的基础上来看,其实整体过程推进都比较正常,期间我们基于 patch-package 我们对 Backstage 进行了一些魔改以满足我们自己的动态化方案,i18n 方案也积极得和社区沟通推进。
后面我就回到了原来的 ACP 项目,也开始逐渐找回了对代码的一部分自信。期间我也重新开始了对 eslint-mdx 项目的维护,完成了对 FlatConfig 的兼容支持,升级支持整个 unified 生态,也愈发地觉得自己没那么糟糕。再接再厉,我又开始在 un-ts/prettier 和 eslint-plugin-prettier 项目升级适配 prettier v3 。
我愈来愈强烈地发现熟悉感觉又回来了!
项目上经过 Leader 和其他相关上级的一直讨论,同时也经过我深思熟虑后,我转到了 DevOps 项目组负责 CI/CD 平台的整体前端工程,期间我们聊到,不能再简单地以前端技术的视角来看待整个平台功能,而是应该站在更高的维度纵观全局找到优化提升 DevOps 整体研发效能的方法论。
当时我进组后的第一件事就是熟悉重构整个 CI/CD 相关代码中不合理的内容,移除所有 any 的引用,提升整体类型安全。这看似不大的一小步对我后续在开发新功能时省下了很多的开发时间,当然其中也遇到了由于不熟悉代码乱重构修改了依赖注入顺序而踩到的坑。在后面的开发需求中,我又找回了熟悉的能写出优雅代码的感觉。
在 DevOps 短暂地工作了一段时间后,我又再次被调配到了暂时没有任何专业前端的 IDP 项目。
在我接手 IDP 项目前端功能开发后,我对目前的在 DP 仓库以分支方式开发,且必须长期 rebase 解决相关冲突问题的混乱开发方式进行了大刀阔斧地改造,将 IDP 仓库从 DP 完全剥离,DP 成为我们除 Backstage 外的另一个上游项目,我们对 Backstage 的版本升级也首次实现了在 DP 之前提前完成。同时,我也帮助 DP 项目实现完成了对不同插件包分 registry 自动化发布功能,即一部分私有包发布到我们自己的内部 nexus registry ,另一部分发布到公开的 npm registry ,并且这些包都是在同一个 @alauda 组织下的,以方便调整包的公开属性。
开源方面,我又开始了对目前 ESLint 插件的一个强依赖 synckit 的维护,支持添加了多个新功能,而最近,在 @onigoetz 的推动下我又完成了对 synckit 包体积的大幅减少。后来我又逐渐重新掌控维护起了 prettier-eslint 和 prettier-eslint-cli ,而就在前几天,我又取得了 eslint-config-prettier 项目的 maintainer 权限。
最终,在完成了对 prettier + eslint 相关包的互相配合之后,我发起了 https://opencollective.com/prettier-eslint 筹款项目,以帮助社区更好地维护相关工具链。
今年开源项目中可以聊的东西其实远不止这些,不再一一赘述。
工作上我开始尝试转换自己的视角,以为公司创造价值、降本增效的目标出发思考每件事的成本和收益,但我永远相信:磨刀不误砍柴工,你今天对每一分代码极致优雅的追求总有一天会开花结果。当然我也开始学着让自己放下过于完美主义的信条,尝试接受一些暂时甚至长期的妥协。但该指出的问题我还是会指出,欢迎继续随时辩经。
生活上我开始勇于大声说不,表达自己,甚至开始主动调和家庭矛盾。对了,在 2023 年 12 月 12 日即双十二的那天晚上,我和老婆一起买下了人生第三套房(第一套已经卖了,第二套是买给丈母娘的),我愈发地期待我们能把日子过得更红火!
回望过去整整一年,从谷底起步,平缓向上,再到重回巅峰,一路的坎坷和辛酸只有自己和老婆知道,也幸好有老婆在我旁边支持我,照顾我,包容我,我才能又重新活了一遍。❤️
希望在新的 2024 年,自己依然保持戒骄戒躁的心态稳稳健健地走好每一步。
本文首发于 知乎专栏 - 1stG 全栈之路