第8章 记忆仓库

去读书推荐各位书友阅读:规则怪谈我在地狱当BUG第8章 记忆仓库
(去读书 www.qudushu.la)    结盟之后的第三天,沈夜才意识到,这个“团队”的工作模式,跟他在公司带的项目组没什么区别:零号负责跑数,林小雪负责收集需求,他负责写代码和背锅。

    唯一不同的是,这个项目的需求方,可能是一整个正在吃记忆的深渊。

    第一天,林小雪在备忘录里记下第一条记录:泪痣发烫,凌晨2点47分,方向偏北,持续11秒。发烫的时候,她看见一扇锈掉的铁门,门后是黑的。

    “黑色的地方。”沈夜说,“具体一点。”

    “很黑。像关机的屏幕。”

    “……也算需求了。”

    第二天,零号把七条规则碎片排成一张表。鸽子、电梯、打印机、半条短信,时间、地点、误差,全列在上面。她盯着表格看了很久,说了一句:“它们不是碎片。”

    “是什么?”

    “是坐标。”零号说,“鸽子停的位置、电梯坏的时间、打印机卡纸的页码……你把它当成一个点在动。它每天移动一点点,画出来的是一条线。”

    “一条线?通向哪里?”

    “还没画完。”零号说,“再给我两天。”

    第三天白天,沈夜照常上班。

    午休的时候,他站在茶水间,盯着咖啡机出神。旁边同事拍了他一下:“想什么呢?跟丢了魂似的。”

    “在想一个bug。”沈夜说。

    “什么bug?”

    “一个……我记不清什么时候写的bug。”他顿了顿,“奇怪的是,我连它什么时候被我修好的,也记不清了。”

    同事看他的眼神,像看一个修代码修到走火入魔的人。

    沈夜没有解释。他没法解释,他今天早上打开编辑器,发现昨晚自己提交的代码里,混进了一个他从没写过的变量名:laozhou。

    小写,全小写,像深夜随手敲的。

    他不知道自己是几时敲的。他只知道,这个变量名出现的地方,恰好是他三年前写过“那条规则”的位置,那条让他拿到BUG#0001的规则。

    下班回家,沈夜从床底拖出一块积灰的硬盘。

    那是三年前公司垮掉那天,他从机房里带走的最后一份代码仓库备份。老板跑路,服务器停机,他抢在资产清算前,把整个仓库clone了下来,塞进这块硬盘。当时他没想太多,只觉得“自己的代码不能丢”。

    现在想想,他可能当时就“知道”了什么。

    他把硬盘接上电脑。指示灯亮了,硬盘发出一声很轻的、像是松了口气的嗡鸣。

    挂载,打开,git log。

    136条提交记录,时间跨度两年零四个月。开头几行,是他熟悉的、深夜加班时的提交信息:“修楼梯bug”、“规则1不生效”、“加班,勿念”。

    他一条一条往下翻。翻到三年前的某一天,手指停住了。

    那一天,凌晨2点11分,有一条提交,署名不是他。

    提交信息只有一行:“把门修好了。剩下的,交给时间。”

    他盯着那行字,脑子里嗡嗡响。他想不起这条提交。他翻遍记忆,也找不到自己跟任何人共用过这个仓库的痕迹,更找不到,一个会在凌晨两点,替他修“门”的人。

    他点开那次的改动记录。

    改动的是一个文件:door.py。

    diff很干净,只有三处:

    · 修复了递归死循环

    · 补上了出口判断

    · 在文件末尾,加了一行注释

    注释只有一行代码:

    if(you_are_ok()){微笑();}

    沈夜的鼠标停在上面,很久没有动。

    这句话,他认得。他太认得了。这是他自己的习惯,每写完一段复杂的逻辑,他都会在注释里写这么一行,提醒自己“能跑就行,别想太多”。

    但这段注释,不是他写的。

    他把那段注释复制出来,贴进搜索框,搜了整个仓库。搜到134个结果。全是他的注释,除了这一个。

    这一个,是他那个不知名的“队友”写的。

    模仿他的习惯,模仿得一模一样。

    沈夜靠在椅背上,盯着天花板。他忽然想不起,自己三年前写这个模块的时候,旁边坐着谁。他用力想,想得太阳穴发胀,脑子里只有一片白。

    然后,像上次在公司食堂一样,一个名字从他嘴里自己溜了出来:

    “老周。”

    他喊出这个名字的瞬间,电脑屏幕闪了一下。

    不是屏保。是整块屏幕,像被人隔着玻璃拍了一下。

    沈夜慢慢坐直。屏幕上的代码,正在自己滚动。

    他没有碰鼠标。

    代码一行一行往上滚,快得看不清,像有人在翻他三年前的笔记。滚到door.py那一页,停住了。

    屏幕角落里,光标自己亮起来,开始打字:

    “你终于回来了。”

    “……你谁?”沈夜说,“报个工号。”

    光标停了一秒。屏幕里传出一声很轻的、像是笑又像是叹息的声音:

    “你忘了。”

    “我是最后一个,还在维护这段代码的人。”

    沈夜的手放在键盘上,没有动。他没有碰键盘,但屏幕上的光标,又开始自己动起来。

    “门是好的。”它打道,“门一直很好。你该担心的,不是门。”

    “该担心什么?”

    光标在屏幕上顿了很久。

    “你忘掉的东西,正在吃你。”

    “……你是它?”

    “不是。”光标打了两个字,停住了,像在犹豫要不要说更多,“我是你留在门后面的东西。”

    “三年前,你说过一句话,让我等你。”

    “你说:‘快了,就快修好了。’”

    沈夜的后背,一点点凉了下来。

    他想起了打印店。想起那扇卷帘门。想起自己站在门口,对什么人说过同样的话:“快了,就快修好了。”

    “……打印店。”他问,“你是打印店里的那个?”

    光标没有回答。

    屏幕上的代码,像被一只手按住了,一行一行停下来,停回了door.py。最后,屏幕上只剩下那行注释:

    if(you_are_ok()){微笑();}

    然后,光标在注释下面,补了一行字:

    “第七层,等你。”

    “带上你的队友。这次,别一个人来。”

    屏幕一黑。

    沈夜坐在黑暗里,过了很久,才听见自己咽口水的声音。

    他重新点亮屏幕。仓库还在,door.py还在,那行注释还在。只是注释下面,多了一行他从来没有写过的代码:memory_lock = True

    他盯着这行代码,脑子里“当”了一声。

    memory_lock。记忆锁。

    “我的记忆……是被人锁上的?”

    “不是人。”零号的声音从桌面上传来,她不知道什么时候从芯片里出来了,巴掌大的小人坐在硬盘盒上,绿色的代码流动着,“是代码。”

    “你看到了?”

    “你屏幕亮的时候,我全看到了。”零号说,“沈夜,那不是普通代码。那行memory_lock,是写在你记忆里的,有人用代码,锁住了你的一部分记忆。”

    “谁写的?”

    零号沉默了。

    “……从风格上看,”她说,“写得跟你一模一样。”

    第二天晚上,三个人坐在沈夜的出租屋里。

    茶几上摊着三样东西:零号画的坐标线、林小雪的泪痣记录、沈夜打印出来的git log。

    “规则碎片在画一条线。”零号指着坐标线,“这条线的终点,在这里,城南,幸福路,废弃打印店。”

    “泪痣发烫的方向,也指向那里。”林小雪说,“我第一天记的偏北11秒,对着的就是那个方向。”

    沈夜把git log摊在桌上,指着那个陌生ID:“这个署名,我三年前,大概率是跟他一起写的这段代码。我的记忆被锁了,锁得很干净,但我身体还记得他。”

    “名字会暴露在规则里。”林小雪说,“你连喊他两声‘老周’了,他可能已经‘知道’你在找他。”

    “……那正好。”沈夜说,“我也想知道,他到底是谁。”

    三个人对视了一眼。

    “打印店。”零号说,“所有线索,都指向那家打印店。”

    “它可能不是打印店。”沈夜说,“它可能是那扇门在现实里的入口。”

    他站起来,把打印出来的git log折好,塞进口袋。

    “明天晚上,我们过去看看。”

    “等等。”林小雪忽然说,“如果那家打印店,真的是入口,那它门口,会不会也贴着规则?”

    沈夜想了想。

    “那正好。”他说,“我修了这么多年bug,最擅长的,就是读规则。”

    他顿了顿,又补了一句:

    “尤其是那种,写得像人话的规则。”

    窗外,城南的方向,一家废弃打印店的卷帘门,在夜里自己卷起了一半。

    卷帘门后面,是黑的。

    像一台,关机的屏幕。去读书 www.qudushu.la
如果您中途有事离开,请按CTRL+D键保存当前页面至收藏夹,以便以后接着观看!

如果您喜欢,请点击这里把《规则怪谈我在地狱当BUG》加入书架,方便以后阅读规则怪谈我在地狱当BUG最新章节更新连载
如果你对《规则怪谈我在地狱当BUG》有什么建议或者评论,请 点击这里 发表。