凌晨四点半,城市还在黎明前最深沉的死寂里。
陆辞刚从管控局带着一身冷气回到出租屋,桌上还亮着一盏台灯。这盏几十块钱的旧台灯有接触不良的毛病,昏黄的光晕在斑驳的墙壁上投下一圈不规则的剪影,伴随着老旧冰箱压缩机时不时发出的沉闷轰鸣,构成了这个狭小空间里仅有的动静。初秋的冷空气顺着没有关严的窗缝一丝丝往里钻,卷起桌角几张凌乱的草稿纸。
乐园副本后的喧闹已经散下去了,网络上的热搜也从逻辑大师翻车慢慢滑到特别顾问审批中的猜测帖。论坛里充斥着各种捕风捉影的内幕消息,有人长篇大论地分析陆辞在乐园里的每一个微表情,试图拆解出什么惊天动地的战略布局。
可陆辞连看都没看这些一眼。他把那些网页标签全部静音最小化,屏幕亮度调到最暗。
他把会议室里拿到的一级历史规则库摘要摊开,又把地铁那次强制回滚、写字楼的外围补丁和乐园里那句`shellfirst,corelater`并排摆上桌。几份材料之间被红色马克笔连出一条更短也更硬的线,像刚做完一轮热修复复盘。
半小时前那条`03:58:17`的实时日志还停在手机顶端。签名栏只剩一道没收尾的斜杠,像有人刚敲下第一笔,就被下一轮报错硬生生拽走。比起会议室里那句“老手,而且很累”,这条记录更像一枚钉子,直接把他的判断钉死在桌面上。
地铁那次是生硬的强制回滚,写字楼是典型的外围加壳,乐园则把新规则硬套在`legacy`层上。三种写法看着不同,底层习惯却出奇一致:命名短,注释只写必须写的半句,宁可在外围加门闩,也不肯碰核心。不是不懂重构,是根本承受不起重构炸穿后的代价。
他顺着一级历史规则库往前翻。半年前,热修下发周期还按“周”算;三个月前,已经缩到按“天”;今晚,直接压到了按“分钟”。补丁速度越来越快,质量却越来越粗。像一个人站在漏水的机房里,一边拿脚顶住门,一边腾手往裂缝里塞东西,先求别炸,再谈好看。
这一次,他盯的已经不是某个副本里冒出来的Bug,而是那个被整套系统绑在工位上的修补者。
陆辞靠在椅背上,长时间盯着墙上那些由红线连接起来的版本迭代轨迹。长时间没有眨眼,超频使用留下的反噬也压了上来,太阳穴深处泛起熟悉的灼痛,指尖微微发麻,那些红线在他的视网膜上扭曲交织。
他想起了前世。
想起了那些线上核心系统炸穿的深夜。钉钉群里一片@全员,P0级事故的警报刺穿耳膜。空气里弥漫着廉价咖啡、隔夜外卖和绝望的汗水味,产品经理在耳边焦躁地催恢复时间,大老板面色铁青地站在你的工位后面,盯着那个代表公司每秒损失几十万流水的红色倒计时。
你盯着那些连文档都没有、变量名全是拼音缩写的上古逻辑,明知内存溢出的根源在十年前就已埋下,明知只要动一个全局变量,整个分布式集群就会像多米诺骨牌一样崩塌。
可现实只给你十几分钟。
这种时候,没人先谈优雅。
都是先补墙。
眼前这些散落在各个怪谈副本里的补丁,给他的,正是同一种苦涩而熟悉的味道。
他突然回想起之前那个废弃终端里,那条在只读屏幕上艰难浮现的文字——不要再重复硬死锁。
当时他以为那是来自高维存在的警告。可现在重新品味,那句话里哪里有什么神明的威严?与其说是警告,更像是一个在机房里熬了三天三夜的系统管理员,看着某个不知死活的黑客还在疯狂发包,从忙乱与崩溃的边缘硬生生挤出来的一句提醒:求你了,别再往最薄的冰面上踩了,服务器真的要炸了。
陆辞深吸一口冷空气,拉过键盘,在电脑桌面上新建了一个空白文档。
标题只有两个字。
《维护者》
光标在标题下方匀速闪烁。他双手悬停在键盘上,不急着打。
第一行,他果断敲下:
【代码风格稳定,常年处理线上系统。】
键盘的敲击声在安静的出租屋里显得有些空灵。他停顿了半秒,紧接着写下第二行:
【补丁优先级很高:先堵外口,再慢慢碰旧模块。极度厌恶风险,或者说,承担不起任何一次核心重构带来的次生灾难。】
打到第三行的时候,陆辞的手停住了。
他本来想写什么?
他本来想写从容。因为从头到尾,无论他在副本里怎么折腾,怎么利用规则的悖论把场景撕出大口子,对面的应对从未出现过彻底的逻辑崩溃。对方就像一个扫地机器人,总能找到最合理的止损点,将他的破坏限制在一定范围内。
他敲下了从容两个字。
但看着这两个字,他眉头越皱越紧。脑海中浮现出时间轴上那些红色标注的修复节点:六个月前,补丁下发周期以周为单位;三个月前,变成以天为单位;乐园副本里,那个针对手环逻辑的热修复,几乎是贴着他的脸、冒着火星子强行刷出来的。