第六章 代码迷宫

最新网址:http://www.yqzw5.cc
  监控大屏突然变蓝时,我正在给父亲的钢笔装新墨囊。深蓝色的墨水顺着笔尖滴在报表上,晕开的痕迹像极了服务器宕机时的错误代码。技术部的惊呼声从走廊传来,我捏着钢笔站起身,金属笔帽上的纹章硌得掌心发疼——这是项目上线以来第三次重大事故,却也是第一次让我看清自己的无能。

  “王总监,后台核心模块崩了!”滔宠撞开办公室门,衬衫第二颗纽扣崩掉了,露出锁骨处因熬夜冒出的红疹,“所有用户行为数据都在倒灌,数据库快撑爆了!”他手里的笔记本电脑屏幕闪烁着乱码,绿色字符在黑色背景上疯狂跳动,像无数只垂死挣扎的萤火虫。

  我凑过去看屏幕,那些嵌套的括号和函数像陌生的符咒。我想起病休时看的编程入门书,书页上的“变量”“循环”在脑海里碎成粉末。“具体是哪个模块?”我尽量让声音听起来镇定,钢笔在指间转得飞快,却突然脱手砸在键盘上,弹出的蓝色错误框正好盖住滔宠的脸。

  技术部会议室的白板被写满又擦净,留下大片灰黑色的痕迹。我坐在最末位,听着程序员们用“死锁”“内存泄漏”“事务回滚”这些术语争吵,感觉自己像掉进了没有底的玻璃缸。女每东把打印出来的堆栈日志拍在桌上,纸页边缘被愤怒的指痕捏得发皱:“三小时了!连问题根源都找不到?”

  “数据库索引全乱了,”一个戴眼镜的程序员哭丧着脸,“就像有人在背后抽走了所有承重墙。”我盯着他手指的位置,那里的代码缩进像级级向下的台阶,突然想起异世界那个没有扶手的旋转楼梯,每级台阶都刻着会消失的符号。

  茶水间的咖啡机又在泄压,尖锐的嘶鸣让我太阳穴突突直跳。我躲进隔间给父亲打电话,听筒里传来高尔夫球车的引擎声。“爸,项目出问题了,后台程序……”

  “找张副总啊,”父亲打断她,声音混着球杆击球的脆响,“他儿子不是在技术部挂了个顾问头衔?让他处理。”水流顺着指尖滴进洗手池,我看着排水口漩涡里的泡沫,突然想起上周庆功宴上,张副总拍着我的肩说“以后都是自己人”,当时他袖口的金表链晃得人睁不开眼。

  回到会议室时,争吵声已经变成死寂。滔宠把自己反锁在机房,透过玻璃门能看到他正用头撞服务器机柜,背影佝偻得像根被暴雨压弯的芦苇。我摸出手机翻通讯录,张副总儿子的微信头像是只吐舌头的柴犬,上次群发的拜年消息还躺在未读列表里。

  “王总监,用户投诉量破千了。”小林举着平板进来,屏幕上滚动的差评里夹杂着“卸载”“举报”的字眼,“公关部问要不要启动危机预案。”我接过平板时,手指在“联系张顾问”的对话框前悬了很久,最终还是按灭了屏幕——我不想让那帮技术男觉得,自己只会靠关系解决问题。

  深夜的机房亮如白昼,服务器的嗡鸣里混着程序员们压抑的咳嗽声。我搬了把椅子坐在角落,看着滔宠团队用各种颜色的马克笔在玻璃墙上画图,红色箭头像道不断渗血的伤口。“可能是数据加密算法的问题,”一个程序员突然说,“这个密钥……有点奇怪。”

  我的心猛地一沉。那串密钥是我亲手敲进去的,来自异世界铁笼栏杆的纹路。此刻那串字符在屏幕上闪烁,像条正在收紧的绞索。她悄悄退到门外,给父亲发微信:“张顾问的电话多少?”发送键按下的瞬间,机房突然爆发出欢呼——他们找到 bug了。

  滔宠举着笔记本冲出来时,眼里布满血丝却闪着光:“是时间戳格式!有人在加密算法里嵌了个动态偏移值,每到凌晨三点就会触发死锁!”他的手指戳在屏幕上,那里的代码注释栏里,王尧当初写下的“笼中计时”四个字正泛着刺眼的白光。

  整个机房的目光突然聚焦在她身上。我攥紧口袋里的钢笔,金属纹章硌得掌心生疼。我想起父亲信里的话:“权力能让错误变成勋章。”于是挺直脊背,声音冷得像服务器机房的空调风:“这个冗余设计是为了测试系统抗压极限,看来达到预期了。”

  张顾问的电话在这时打进来,我走到走廊接起,听筒里传来年轻的笑声:“王总监听说出问题了?我爸让我来看看,正好斯坦福学的分布式系统能派上用场。”我望着机房透出的灯光,那些曾经让我恐惧的代码此刻像温顺的羊群。

  “已经解决了,”我说,指尖无意识地抠着钢笔纹章,“不过还是谢谢你,改天请你吃饭。”挂掉电话时,我发现自己手心全是汗,那枚精致的纹章不知何时被抠掉了一小块漆。

  天边泛起鱼肚白时,我站在落地窗前看日出。技术部的人陆续走出机房,滔宠经过时抬头看了我一眼,眼神复杂得像蒙着雾的湖面。我摸出手机,把张顾问的号码设成星标联系人,然后打开父亲的对话框,输入“项目稳定了”,却迟迟没按下发送键。

  晨光爬上窗台,照亮那滴凝固的墨水渍。我突然想起十岁那年,父亲教我骑自行车,在我摔破膝盖时说:“自己爬起来才叫长大。”此刻那枚缺了角的钢笔躺在掌心,我第一次发现,所谓的退路,其实早就在掌心硌出了血痕。
  http://www.yqzw5.cc/yq32359/6.html

  请记住本书首发域名:http://www.yqzw5.cc。言情中文网手机版阅读网址:http://m.yqzw5.cc