第一章下午两点零三分,公司内部通讯软件弹出一个强制参会通知。
王伟正在检查昨晚的服务器日志,手指在键盘上停顿了三秒。
通知标题是:《关于团队结构优化及未来规划的沟通会——全体技术部员工必须参加》。
“优化”这个词,在过去半年里像幽灵一样在办公室里游荡。上个月,
隔壁产品部走了五个人;上周,运营部悄无声息地少了三个工位。
每次都有冠冕堂皇的理由:“战略调整”“业务聚焦”“组织迭代”。他抬头。
开放式办公区像被按了静音键。敲键盘的声音稀落下来,有人起身去倒水,脚步比平时快。
斜对面的小李——去年校招进来的孩子——正盯着屏幕发呆,喉结上下滚动了一下。
只有总监办公室的门开着一条缝。赵天翔的笑声从里面漏出来,爽朗、自信,
正用流利的英语和什么人通话:“……当然,我们已经准备好了,
效率提升至少百分之三十……”王伟收回视线。他四十二岁了,在这个行业里,
有些声音听一遍就知道意味着什么。会议定在两点半。还有二十七分钟。
他点开自己正在维护的系统监控页面。十五年前,他参与搭建了这套后台架构的第一个版本。
那时候公司才五十人,CTO会亲自给大家买宵夜。现在系统迭代了不知道多少代,
但他的工号还是三位数:017。一个红色的异常提示突然跳出来。王伟身体前倾,
手指飞快地敲击。三分钟后,问题定位:一个老旧的数据接口响应延迟,触发预警。
他调出修复脚本——这个脚本是他七年前写的,每年促销前都要跑一遍。点击执行。
进度条缓慢移动。他靠着椅背,听见自己颈椎发出轻微的“咔”声。“王哥。
”小李不知什么时候站到了他旁边,手里端着杯咖啡,没喝。
年轻人脸色不太好:“这会议……您觉得是什么内容?”王伟看着屏幕上跳动的代码。
他想起上个月被优化的测试老周,走之前也这样问过他。“该是什么就是什么。”他说。
两点二十五分,人群开始向大会议室移动。王伟保存了工作进度,关掉显示器。
他的工位很干净:一个用了五年的保温杯,边缘漆磨掉了;一盆绿萝,
叶子有点发黄;还有一张儿子的照片,小学毕业时拍的,现在那孩子已经初三,
个头蹿得比他高了。他起身时,赵天翔正好从办公室走出来。新总监三十五岁,
穿着合身的浅灰色衬衫,袖子卷到小臂,露出手腕上低调的机械表。头发打理得一丝不苟,
脸上是精心调整过的微笑——友善,但带着距离。“老王,”赵天翔走到他身边,
很自然地拍了拍他的肩,“最近辛苦了啊。”“应该的。”“等会儿会议,认真听。
”赵天翔的声音压低了些,“公司正在关键转型期,我们需要每个人都跟得上节奏。
”王伟点点头。他闻到了对方身上淡淡的须后水味道,某种北欧品牌的冷冽香型。
会议室坐满了人。赵天翔站到投影前,激光笔的红点亮起。HR总监坐在第一排,
面前摆着文件夹,没有打开。“各位同事,下午好。”赵天翔开口,
声音通过麦克风传遍房间,“今天这个会,主要是同步一下公司接下来的战略重点,
以及……相应的组织调整。”他切换PPT。第一页是行业趋势分析,各种曲线箭头向上。
第二页是公司竞争力矩阵,红蓝绿的区域划分得像作战地图。第三页——“人员效能分析”。
柱状图。横轴是年龄区间,纵轴是“技术前瞻性匹配度”“学习敏捷度”“产出性价比”。
35-45岁那个区间,三条柱子都明显矮一截。会议室里的空气变重了。
赵天翔的激光笔红点,在35-45岁那栏上画了个圈。“数据不会说谎。”他说,
语气里有一种遗憾的客观,“在快速变化的技术环境中,
我们必须承认一个事实:部分同事的知识结构和学习模式,
已经与公司未来三到五年的发展方向产生了……代差。”王伟放在膝盖上的手,
慢慢握了起来。他想起上个月,赵天翔在全部门推广“AI辅助编程工具”,
要求每人每周提交使用报告。王伟试了,
成的代码经常忽略一些底层兼容性问题——那些问题只有经历过系统多次迭代的老人才知道。
他在报告里写了建议,赵天翔的回复是:“不要被经验束缚,要拥抱新范式。”“所以,
”赵天翔切换下一页,“经过管理层慎重讨论,我们决定对技术团队进行一次结构性优化。
”屏幕上出现了一个词:优化名单。没有直接显示名字,
但那四个字像冰锥一样刺进每个人眼里。“接下来,HR同事会与相关同事单独沟通。
”赵天翔放下激光笔,双手撑在讲台上,目光扫过全场,“这是一个艰难的决定,
但为了公司的长远发展,为了大多数同事的未来,我们必须做出选择。”他停顿。
“被优化的同事,公司将提供法定的经济补偿,并协助进行职业过渡。同时,
我希望大家理解——这不是对任何人过往贡献的否定,只是……”他找到了那个词。
“……只是时代变了。”散会。人群沉默地往外走。没有人说话,只有椅子拖动的声音,
脚步声。王伟坐在原位没动。他看着屏幕上还停留着的“优化名单”四个字,
感觉胃部有什么东西在缓缓下坠。“王老师。”HR总监走到他身边,
是个四十岁左右的女人,妆容精致,笑容标准:“麻烦您来一下3号会议室,我们聊几句?
”第二章3号会议室很小,只有一张桌子四把椅子。
HR总监——她让王伟叫她“Linda”——从文件夹里取出两份文件,推到他面前。
“王老师,这是协商解除劳动合同的协议,您看一下。”她的声音很温和,
像在解释一份普通的报销流程,“根据您的工作年限,公司愿意支付N+1的经济补偿金,
也就是十六个月的平均工资。另外,考虑到您多年贡献,
还会额外支付三个月的工资作为感谢。”王伟的目光落在数字上。他的月薪是两万八。
十六个月,四十四万八。加上三个月,五十三万二。房贷每月一万二,还剩十年。
儿子一年的补习班费用差不多六万。妻子陈芳是小学老师,月薪七千。这笔钱如果省着用,
能撑一阵子。但接下来呢?他四十二岁。这个行业,
四十岁以上的程序员找工作像在沙漠里找水。“这里,”Linda的指甲涂着淡粉色,
点在协议第三页,“需要您签署一份竞业限制协议。期限十二个月,
范围是互联网科技行业的相关技术岗位。在此期间,
公司会每月支付您离职前平均工资的30%作为补偿。”王伟抬起头。“意思是,
我一年内不能找本行工作?”“是保障公司的核心技术不被泄露。”Linda微笑,
“当然,补偿很合理,不是吗?”“如果我……不签呢?”Linda的笑容淡了些。
她从文件夹里又抽出一份文件,推过来。这是一份绩效评估报告。最近六个月的。
王伟看到了自己负责的旧系统,
那几次“小故障”——都是因为新业务强行接入了不兼容的接口,他熬夜修复的。
但在报告里,被描述为“系统稳定性不足,负责人响应效率低下”。
最下面一栏是赵天翔的签字评语:“技术栈陈旧,缺乏主动学习意愿,多次提醒后改进有限。
”“王老师,”Linda的声音依然温和,“如果走单方面解除合同流程,
那就是‘因重大过失被辞退’。那样的话,补偿金会按法律规定的最低标准执行,
而且……您的下一份工作背调,可能会有些麻烦。”她没再说下去。王伟盯着那行评语。
技术栈陈旧。他维护的系统每天处理着数亿次请求,十五年没出过重大事故。
他写的那些底层脚本,至今还在每个深夜默默运行,防止数据溢出。现在这叫“陈旧”。
“我需要时间考虑。”他说。“当然。”Linda收回那份绩效报告,只留下解除协议,
“不过最好在今天下班前给我答复。优化名单已经确定了,流程需要推进。”她起身,
走到门口时又回头:“王老师,我建议您现实一点。这个条件,在行业里已经不错了。
”门关上。王伟独自坐在会议室里。空调出风口发出低低的嗡鸣。他拿起协议,纸张很轻,
但上面的字很重。手机震动了一下。妻子陈芳发来微信:“儿子班主任说下周开家长会,
讨论中考冲刺。你哪天晚上有空?”他盯着那条消息,手指悬在屏幕上,不知道该怎么回。
第三章王伟没有直接回工位。他去了楼梯间,从十四楼下到十三楼,再往下。
安全通道里安静得能听见自己的呼吸声。走到十楼时,他在台阶上坐下,
从口袋里摸出烟——其实已经戒了三年,但包里总习惯放一盒。
打火机的火苗在昏暗里跳了一下。第一口烟吸进去,呛得他咳嗽。烟雾在楼梯间弥漫开,
像某种可见的沉重。手机又震了。这次是老周。上个月被优化的测试工程师,
和王伟同期进公司。电话接通,那头的声音压得很低:“老王,你是不是也在名单上?
”王伟没说话。“操。”老周骂了一句,“我就知道。赵天翔这孙子,
要把我们这些老人全清出去。”“你怎么知道?”“我走了之后,以前的徒弟偷偷跟我说,
赵天翔在搞‘成本优化’,专挑工资高、年限长的下手。”老周顿了顿,“你签了吗?
”“还没。”“别急着签!”老周的声音急切起来,“那竞业协议是坑!你签了,
一年不能找工作,等能找的时候,谁还要四十三岁的?到时候技术更脱节,彻底废了!
”王伟沉默地抽烟。“而且我听说,”老周的声音更低了,“赵天翔最近在赶新版本,
动了底层架构。他为了赶进度,绕过了完整测试流程。你记不记得……咱们那个老支付接口?
”王伟的手指僵了一下。他当然记得。八年前,公司第一次做大型促销,
临时接了个第三方支付渠道。当时为了赶上线,写了个应急接口,逻辑有点绕,但勉强能用。
后来业务稳定了,本应该重构,但一直没人愿意碰这块“历史债务”。
王伟在代码注释里用红色大字标注过:“高并发下可能触发死锁,必须重构!
”“他动了那个?”王伟问。“不止动了,还改得乱七八糟。我徒弟说,
新版本直接基于那个接口扩展的,根本没重写。”老周深吸一口气,“老王,
我怀疑要出大事。下次大促是什么时候?”“两周后。年度最大促销。”电话那头沉默了。
过了好几秒,老周说:“那你更不能现在走。万一出事,
赵天翔绝对会把锅甩给‘已经离职的老系统负责人’。”“我已经在名单上了。”“那就拖!
”老周说,“找理由拖,交接慢慢做。至少……至少等过了促销期。到时候真要炸了,
你人在,还能说清楚。”挂断电话后,王伟又在楼梯间坐了十分钟。烟抽完了。
他看着烟头在水泥地上慢慢熄灭,最后一丝青烟消散。回到十四楼时,办公区气氛诡异。
几个年轻同事聚在一起低声说话,看见他回来,立刻散开了。小李坐在工位上,头埋得很低。
王伟走过时,看见年轻人眼圈有点红。“王哥……”小李抬起头,张了张嘴,又闭上。
王伟拍了拍他的肩,什么都没说。他坐下,打开电脑。屏幕亮起,还是那个监控页面。
红色的异常提示已经消失了,他的修复脚本运行完毕。系统稳定。十五年,
他就像这套系统的守夜人。每个深夜的告警,每次突发的故障,他都在。
现在系统稳定运行着,但他要被“优化”了。荒唐。第四章下班时间到了,但没人走。
王伟开始收拾个人物品。很慢。他把绿萝的枯叶一片片摘掉,给保温杯仔细地刷了一遍,
擦干。儿子的相框,他用纸巾反复擦了三次。小李蹭过来,声音发涩:“王哥,需要帮忙吗?
”“不用。”王伟从抽屉深处翻出一本笔记本,牛皮封面,边角磨损得发白。
这是他的故障日志,从入职第三年开始记的。
里面全是手写的流程图、问题分析、临时解决方案。“这个……”小李看着笔记本,
“您要带走吗?”“嗯。”“我能……看看吗?”王伟把笔记本递过去。小李翻开,
第一页写着:“2010年7月16日,
数据库连接池泄露排查记录……”后面是密密麻麻的示意图和公式。
“这些都是您自己总结的?”“以前没那么多现成的工具,出了问题得自己想辙。”王伟说,
“现在不一样了。你们有现成的监控平台,有自动化的诊断工具。
”“但工具不会告诉我们为什么。”小李轻声说,“上次支付接口超时,
监控只显示‘响应时间过长’,是您看了日志,
指出是因为第三方回调地址的DNS解析问题。”王伟看了年轻人一眼。“你记性不错。
”“因为我后来查了,那问题隐蔽得很,常规监控根本发现不了。”小李合上笔记本,
双手递回来,“王哥,我觉得……公司这么做不对。”王伟接过本子,塞进包里。
“对错不重要。”他说,“重要的是决定已经做了。”他继续收拾。几本技术书籍,
一个公司发的纪念U盘,还有一沓打印出来的架构图——都是他自己画的,
上面有各种颜色的批注。赵天翔从总监办公室走出来,看见王伟在收拾,眉头微皱。“老王,
不用这么急。交接期至少两周,工位可以先留着。”“早晚的事。”王伟没抬头。
赵天翔走到他工位旁,手指在桌面上敲了敲:“这样,你把手头的工作整理一份文档,
特别是旧系统那部分。交接给小李。”小李猛地抬头:“赵总,
我……”“年轻人学习能力强,多担待。”赵天翔打断他,又看向王伟,“老王,
咱们好聚好散。你配合交接,我也给你留个好背调。行吧?”王伟终于抬起头。
他看着赵天翔。那张脸还很年轻,眼神里有种笃定的光芒,
那是从未被系统故障在凌晨三点叫醒过的人才有的从容。“旧系统很复杂。”王伟说。
“所以才要文档化嘛。”赵天翔笑了,“总不能一直靠某个人脑子记着,那不成风险点了?
”王伟点点头。他打开电脑,新建了一个Word文档。
标题写上:“核心支付系统运维手册初版”。然后他开始打字。很慢,
一个词一个词地敲:“第一章:系统概述。”“本系统于2010年初步构建,
目前主要负责公司所有业务的支付交易处理……”赵天翔看了一会儿,似乎满意了,
转身离开。王伟继续打字。他写得很规范,很详细,像在写一份真正的交接文档。但他知道,
真正要命的东西,他不会写进去。比如那个老旧支付接口的致命缺陷。
比如那些只有重启特定服务顺序才能避开的坑。
比如他留在代码里的、只有自己能看懂的注释暗语。这些东西,
写进文档就是白纸黑字的责任。不写,将来系统出事,他可以解释为“经验性知识,
难以完全文档化”。信息差。他第一次清晰地意识到这个词的含义。第五章晚上七点半,
王伟回到家。老房子,九十平米,客厅不大。儿子王睿在自己房间写作业,门关着。
妻子陈芳在厨房炒菜,油烟机的声音轰隆隆响。他把包放在玄关,换鞋。“回来了?
”陈芳从厨房探出头,“今天这么晚?饭马上好。”“嗯,有点事。”他走到客厅,
在沙发上坐下。电视开着,在播本地新闻,声音调得很小。他看着屏幕,但什么也没看进去。
厨房里传来菜下锅的“刺啦”声,接着是翻炒声。这些声音太日常了,日常得让人心里发慌。
二十分钟后,饭菜上桌。三菜一汤:青椒肉丝,西红柿炒鸡蛋,清炒西兰花,紫菜蛋花汤。
都是家常菜。王睿从房间出来,喊了声“爸”,坐下就埋头吃饭。初三的孩子,
累得连话都不想说。“今天家长群通知了,”陈芳给王伟夹了块肉,“下周三四五晚上,
分批次开家长会,讨论中考冲刺方案。咱们是周四那批。”“嗯。”“你得去啊。
上次家长会你就没去,老师都问我了。”“看情况。”王伟说。
陈芳停下筷子:“什么叫看情况?儿子中考,一辈子的事。”王伟没接话。他扒了口饭,
嚼了很久。“我今天……”他开口,又停住。“怎么了?”“公司要裁员。”他说得很简单,
“我在名单上。”厨房的时钟在走,秒针的声音突然变得很响。王睿抬起头,
眼睛在父母之间来回看。陈芳握着筷子的手紧了紧。“裁员?”她重复,“什么意思?辞退?
”“协商解除合同。给补偿。”“多少?”“十六个月工资,再加三个月。
”陈芳快速地心算。她教数学的,算得很快。“四十四万八……再加八万四,五十三万多。
”“嗯。”“然后呢?”她盯着他,“然后你怎么办?四十二岁了,还能找到工作吗?
”王伟放下碗:“公司要求签竞业协议,一年内不能找同类工作。”“一年?
”陈芳的声音高了起来,“那一年后呢?四十三岁,技术都落伍了,谁要你?
”“所以我在考虑。”“考虑什么?不签?不签他们会不会使绊子?背调说你坏话?
”陈芳放下筷子,饭也不吃了,“王伟,我就说你,这些年太老实了!
让你去跟领导搞好关系,你不去;让你学点新东西,你说现在用的就够。现在好了,
人家觉得你没用了!”“妈。”王睿小声喊了一句。“你吃饭。”陈芳对孩子说,
眼睛还盯着王伟,“现在怎么办?房贷怎么办?儿子明年上高中,学费、补习费,
哪样不要钱?我一个月七千,够干什么?”王伟沉默。“说话啊!”陈芳眼眶红了,
“你总是这样,遇到事就闷着!闷着能解决问题吗?”“那你要我说什么?”王伟终于开口,
声音很低,“说我去求赵天翔?说我保证学习新东西?人家决定了,说这些有用吗?
”“那你至少争取一下啊!多要点补偿,或者不签那个协议!”“协议就在那儿,今天不签,
明天可能就是‘重大过失辞退’。”陈芳盯着他,眼泪掉下来。她用手背狠狠擦掉:“王伟,
我跟你结婚十五年,没要求过大富大贵。但至少……至少这个家不能塌吧?”王伟站起来,
走到阳台。他关上门,隔断了客厅的声音。夜晚的城市灯火通明,
远处写字楼的窗户还亮着很多。风有点凉,他摸出烟,又想起戒了,把烟盒捏在手里。
手机震了。是老周。“老王,在家?”“嗯。”“说话方便吗?”王伟回头看了眼客厅。
陈芳在收拾桌子,动作很重。王睿已经回房间了。“你说。”“我想了一下午,
”老周的声音很严肃,“咱们不能就这么认了。赵天翔动那个老接口,绝对会出事。
到时候几千万甚至上亿的交易要是崩了,他肯定找人背锅。咱俩已经走了,就剩你了。
”“所以?”“所以你得留下来。至少……得留下证据。”老周压低声,“你记不记得,
咱们旧系统有个后门日志?只有最初搭建的那几个人知道权限密码。”王伟眼神一凝。
那是十五年前留下的。当时为了排查极端情况下的问题,
他们在系统最深处置入了一个日志模块,不归常规监控管,需要特殊权限才能访问。
这些年几乎没用过,但一直没删。“那个日志应该还在。”老周说,
“如果赵天翔真的动了核心代码,那里会有完整记录。包括谁改的,什么时候改的,
改了哪里。”王伟没说话。“老王,我知道你不想惹事。”老周说,
“但这事关咱们这些老人的名声。你想想,要是真出大事,
媒体一报‘前系统负责人因能力不足被优化’,咱们以后还怎么混?”电话挂断后,
王伟在阳台上站了很久。烟盒被他捏得变了形。他最终没抽烟,把烟盒扔进了垃圾桶。
回到客厅,陈芳已经洗完碗,坐在沙发上看电视。眼睛还红着,但没再说话。王伟走过去,
在她旁边坐下。“我会处理好的。”他说。陈芳没看他:“怎么处理?”“给我点时间。
”“多久?儿子等不起,房贷等不起。”王伟伸手,握住她的手。陈芳挣了一下,没挣开。
“信我一次。”他说,“就这一次。”陈芳终于转过头看他。她看到他眼里的血丝,
看到那些深不见底的疲惫,也看到某种很久没见过的、坚硬的东西。“你到底想干什么?
”她问。王伟摇摇头,没回答。但他心里清楚。他要回去,打开那个尘封十五年的后门日志。
他要看看,赵天翔到底埋了什么雷。而如果真的有雷——他得确保,爆炸的时候,
握引信的人不是自己。第六章凌晨两点,书房里只有屏幕的光。
王伟面前的旧笔记本电脑嗡嗡作响,风扇在吃力地转动。
这是他八年前买的ThinkPad,边缘的漆已经磨掉,键盘上几个常用键字母模糊不清。
但还能用。屏幕上是公司内网的登录界面。他输入工号、密码,停顿一秒,
又输入了第二层验证码——今天下班前刚申请的临时权限,
理由是“整理历史文档需要访问旧系统”。页面跳转,进入内部系统。
王伟没有去看常规的监控面板,也没有打开任何交接文档。他的手指在触摸板上移动,
光标精准地点开了一个隐藏在角落的链接:“归档工具2010-2015版”。
这是只有第一代员工才知道的入口。页面加载很慢,像是从时间的深井里打捞什么。终于,
一个极其简陋的界面出现:灰色背景,黑色文字,没有任何美化。
上面只有三个输入框:日期范围、日志类型、验证密钥。王伟深吸一口气。验证密钥。
十五年前,他们五个人一起设的。一组十二位的数字字母组合,每人记三位,
最后两位是CTO的生日。后来CTO走了,四个人里两个转行,一个去了国外,
只剩下他和老周还在公司。老周今天在电话里告诉了他完整的密钥。王伟输入。敲下回车。
屏幕黑了三秒。然后,海量的日志记录开始滚动,像一条无声的河流突然决堤。
022/11/07赵天翔提交代码:支付模块优化-提升并发处理能力王伟的瞳孔收缩。
他点开赵天翔的那条记录。详情展开,是一段代码diff对比。左边是老代码,
右边是新的。只看了一眼,王伟就知道问题有多严重。赵天翔没有重构。
他只是在那个老旧接口外面包了一层新的逻辑,试图用多线程来提升并发能力。
但核心的死锁风险还在——不仅如此,新加的多线程调度反而可能让死锁更快触发。
更糟糕的是,赵天翔删掉了王伟当年的警告注释。
取而代之的是一行新注释:“性能优化完成,单机并发处理能力提升300%”。
王伟向后靠在椅背上,闭上眼睛。他能想象那个场景:赵天翔坐在明亮的办公室里,
敲下这行注释,也许还喝了口咖啡。一个漂亮的数字,300%,可以写进季度汇报,
可以证明他的“技术领导力”。
但他不知道——或者不在乎——这个数字建立在多么脆弱的基础上。书房门被轻轻推开。
王伟睁开眼。陈芳穿着睡衣站在门口,手里端着杯热水。她看着屏幕,又看看他,没说话。
“吵到你了?”王伟问。陈芳摇摇头,走进来把水杯放在桌上:“三点多了。”“嗯。
”“找到你要找的东西了?”王伟犹豫了一下,点头。陈芳拉了把椅子坐下。
她不是技术出身,看不懂代码,
但能看懂丈夫的表情——那种混合了愤怒、无奈和某种决绝的表情。“有多严重?”她问。
“如果不管,促销那天系统会崩。”王伟说,“交易会卡住,数据会乱,用户付不了钱。
”“公司会损失多少?”“不知道。几千万?上亿?还有品牌声誉。”陈芳沉默了很久。
墙上的时钟秒针在走,嗒,嗒,嗒。“那你现在怎么办?”她终于问,“去告诉公司?
”“告诉谁?”王伟苦笑,“赵天翔是总监,是他改的代码。我说有问题,他会信吗?
他会说:‘老王,你这是对新架构不理解,怀旧情绪作祟。’”“那就直接找更高层?
”“没有证据。代码是他改的,注释是他写的‘优化完成’。我现在去说,
就像个被辞退的员工在泄愤。”陈芳看着他。屏幕的光在他脸上投下阴影,那些皱纹更深了。
“所以你需要证据。”她说。王伟愣了一下。他没想到妻子会这么说。“那个日志,
”陈芳指了指屏幕,“能证明是他改的?”“能。但这是内部日志,我如果现在复制出来,
就是违规操作。赵天翔可以说我窃取公司数据。”“那就别复制。”陈芳说,
语气出奇地冷静,“记住它。你不是最擅长记这些吗?”王伟看着妻子。结婚十五年,
她大部分时间都在抱怨他不够圆滑、不够上进。但此刻,在这个凌晨的书房里,
她比他更清醒。“你需要什么?”陈芳问,“要我做什么?”王伟想了想。“电脑别关。
这个页面一直开着,我怕关了再登录会触发警报。”他说,“然后……明天帮我买点东西。
”“什么?”他说了几个硬件名称:一个固态硬盘,一个外接显示器转接线,
还有一个散热底座。都是便宜货,但能让他这台老电脑跑得更稳些。陈芳点点头,站起身。
走到门口时,她回头:“王伟。”“嗯?”“别输。”她说,“为了儿子,也别输。
”门轻轻关上。王伟转回屏幕。日志还在滚动。他新建了一个文本文件,
开始记录——不是复制代码,而是用自己的话描述问题,像在写一份技术分析报告。
标题:《关于支付接口V1在高并发场景下的风险评估及历史问题追溯》他写得很慢,
很仔细。每一个技术判断都有日志记录作为支撑,但他不直接引用日志原文,
而是转换成自己的分析。这是第一步。证据要留在脑子里,也要落在纸上,
但要用一种安全的方式。窗外,天色开始泛白。第七章交接期的第二天,王伟准时到公司。
他的工位还没清空,但已经有种“临时”的感觉。邻座的小李不敢和他多说话,
只在他需要时帮忙传个文件。其他人更是绕着他走,好像被优化会传染。上午十点,
赵天翔召集技术部开会。“促销倒计时十三天。”赵天翔站在白板前,
用马克笔画了个巨大的倒计时,“新架构已经部署到测试环境,压力测试结果良好。
”他调出一张图表:响应时间下降40%,吞吐量提升300%。
会议室里响起低低的赞叹声。几个年轻工程师眼睛发亮,那是看到“技术突破”时的兴奋。
“但是,”赵天翔话锋一转,“新架构依赖于我们对历史系统的彻底理解。
老王——”所有人都看向王伟。“——你负责的旧系统文档,进展如何?
”王伟打开面前的本子:“正在写。昨天完成了系统概述和核心模块介绍。”“太慢了。
”赵天翔皱眉,“我们需要的是可操作的交接文档,不是教科书。这样,
你重点写几个部分:日常监控项、常见故障处理、还有……”他停顿,似乎在斟酌用词。
“那些只有你知道的‘小技巧’。比如某些服务必须按特定顺序重启,
某些配置参数不能动之类的。”王伟点头。他明白赵天翔的意思:要的是“维稳秘籍”,
好让新人能在他走后维持系统不崩。至于深层的风险,
赵天翔不想知道——或者知道了也不想面对。“我会整理。”王伟说。“今天下班前,
先给我第一部分。”赵天翔说,“小李,你配合老王,有什么不懂的及时问。”散会后,
小李蹭到王伟工位旁。“王哥,有什么我能帮忙的?”王伟看着这个年轻人。
小李眼里有种单纯的不安,像是知道自己被推到了一个不该在的位置上。
“你看过新架构的设计文档吗?”王伟问。小李点头,从电脑里调出一个PDF。
王伟快速浏览,心沉了下去。文档写得花哨,满篇“微服务”“容器化”“弹性伸缩”,
但核心支付流程的部分,只有寥寥几页,而且直接指向那个被“优化”过的老旧接口。
“这个接口……”王伟指着其中一段,“赵总有没有说过重构计划?”小李犹豫了一下,
压低声音:“其实……测试的时候出过问题。高并发场景下,偶尔会卡死。
但赵总说是因为测试环境资源不足,生产环境不会。”“他看了日志吗?”“应该看了吧?
他说是‘已知的小问题’,已经加了重试机制。”王伟没再问。
他知道赵天翔做了什么:不是解决问题,而是用“重试机制”掩盖问题。当请求失败时,
系统会自动重试三次——这在小流量时有用,但在大促的高并发下,
重试只会让雪崩来得更猛烈。整个上午,王伟都在“写文档”。他写得很认真,
把那些真正重要的东西,藏在无关紧要的细节里。比如在“服务重启顺序”一节,
他写道:“若需重启支付核心服务,务必先确认接口调用方均已断开连接,
否则可能引发连锁超时。”这句话看起来是常规操作,但王伟知道,
“连锁超时”正是死锁触发后的典型表现。如果将来真的出事,有经验的人看到这份文档,
会意识到他早就预警过。中午,他去食堂吃饭,一个人坐在角落。老周打来电话。“怎么样?
”“看到日志了。”王伟说,声音压得很低,“和你猜的一样,他包了层皮,没动根本。
”“我就知道!”老周在那边骂了一句,“那孙子就想着做表面功夫。你现在打算怎么办?
”“写文档。慢慢写。”“拖延战术?”“嗯。至少拖到促销前。”“小心点。”老周说,
“赵天翔不傻,他可能已经防着你了。”挂断电话,王伟看着餐盘里的饭菜,没什么胃口。
他想起很多年前,公司第一次做大促,前一天晚上系统真的出了点问题。
他和几个老同事熬了通宵,最后是CTO买了烧烤和啤酒,大家一起在会议室里边吃边修。
那时候,解决问题比表现重要。现在呢?他摇摇头,把餐盘送到回收处。第八章晚上回到家,
陈芳已经买好了王伟要的东西。小小的书房被重新布置。旧电脑接上了新的外接显示器,
一左一右两个屏幕。左边是公司内网的文档编辑界面,右边是他在本地搭建的测试环境。
“能行吗?”陈芳问,“家里网络和公司不一样。”“够模拟了。”王伟说,
“我不需要完全复现,只需要验证逻辑。”他打开自己写的分析文档,
开始构建简化版的支付流程模型。没有真实数据,没有完整的业务逻辑,
只有一个最核心的框架:请求进来,进入队列,调用接口,返回结果。
然后他开始写压力测试脚本。手指在键盘上敲击,代码一行行出现。陈芳在旁边看着,
看不懂,但也没走。她拉过一把椅子坐下,手里织着毛衣——这是她缓解焦虑的方式。
“你今天去公司,他们怎么说?”她问。“催我快点交接。”“你给吗?”“给,但不全给。
”陈芳停下织毛衣的手:“王伟,你到底要做什么?我是说,最终。
”王伟盯着屏幕上的代码,测试脚本正在运行。简化的模型里,
当并发请求数超过某个阈值时,响应时间开始指数级上升,然后彻底卡死。“两个选择。
”他说,声音平静,“第一,我悄悄留下证据,然后走人。等系统真崩了,我把证据放出来,
证明不是我的问题。”“那第二呢?”“第二,在崩之前阻止它。”陈芳沉默。
织针又开始动,咔哒,咔哒。“哪个风险小?”她问。“第一个。”王伟说,“我安全脱身,
赵天翔背锅。但公司会损失惨重,可能很多人会丢工作。”“包括小李那样的年轻人?
”王伟点头。“那第二个呢?”“第二个……”王伟深吸一口气,“我得让赵天翔承认问题,
然后抢在促销前修复。但这等于正面和他开战。如果他死不承认,或者反过来咬我一口,
我可能连补偿金都拿不到。”“你会选哪个?”王伟没回答。他看着屏幕,
测试结果出来了:模型在每秒500个请求时开始不稳定,800个时彻底死锁。
而大促的预估流量,是每秒3000到5000个请求。“我不知道。”他诚实地说。
陈芳站起身,走到他身后,手放在他肩上。很轻。“选你晚上能睡着觉的那个。”她说。