格子间以下 第三十五章
格子间以下
三十五、烂摊子
周五晚上八点,办公区里只剩寥寥几个人。
张伟坐在工位上,显示器上铺满了代码。
他揉了揉发酸的眼睛,把视线从屏幕上移开,揉了揉太阳穴。
桌上摆着一杯已经凉透的咖啡,旁边是一包拆开的奥利奥,塑料封口还没来得及扔。
他低头看了眼右下角的时间——晚上八点十五分。
他已经在这里坐了将近十一个小时。
从早上九点开完晨会开始,他就一直在看马超留下的数据清洗模块代码。
整整一天下来,他只弄清楚了一件事:
这堆代码比他想象的还要烂。
马超的代码风格很飘忽。
有些模块写得极其工整,注释清晰,接口定义规范。
但有些模块就像是赶工赶出来的,变量命名随意,逻辑嵌套层层叠叠,有时候一个函数能写到两百多行,中间连个空行都没有。
更让他头疼的是文档。
代码仓库里确实有一份文档,但那份文档是三年前写的,此后从未更新过。
文档里描述的数据清洗流程,和现在的代码实现已经完全对不上了。
张伟试着按照文档里的步骤跑了一遍流程,发现中间有好几个环节,文档上写着”待实现”。
他打开对应的代码文件,里面确实是空的。
他不知道这是马超还没来得及写,还是故意留的坑。
他也不想知道。
他只想把这堆东西搞清楚,然后把它做完。
但问题是,他根本没有时间。
张伟打开微信,看到王海文的消息还停留在中午。
中午十二点,王海文发来一条消息:「食堂一起?」
他当时回复:「你先去吧,我看会儿代码。」
然后就没然后了。
他犹豫了一下,给王海文发了条消息。
「海文哥,还在吗?」
过了几分钟,王海文回复:「在。你还没走?」
张伟回复:「在看马超的代码。看了一天,感觉有点崩溃。」
王海文发来一个苦笑的表情:「正常。我之前看过一点,差点没吐血。」
张伟:「他的文档和代码对不上,好多地方都是空的。文档三年前写的,之后就没更新过。」
王海文:「是啊。这人平时话不多,但代码风格真的很飘忽。心情好的时候写得比谁都规范,心情不好的时候……你懂的。」
张伟看着这条消息,不知道该说什么。
他想起马超平时在工位上的样子——总是戴着一副黑框眼镜,盯着屏幕,不怎么和人说话。
他以前觉得马超是个很稳重的人。
现在看来,稳重只是表面。
他想起王海文之前说的:钱少事多,三年没涨工资,晋升轮不到。
他想,人在这种情况下,能把活儿干完就不错了,还谈什么代码质量。
但他不能这么想。
他是来接盘的,不是来抱怨的。
张伟又发了一条消息:「海文哥,你觉得我应该怎么办?」
王海文过了一会儿才回复:「什么意思?」
张伟:「就是……这堆代码的问题。我现在有两个选择,要么把代码重构一遍,要么在现有基础上缝缝补补、把功能先跑通。」
王海文:「这两个选择意味着什么?」
张伟:「重构的话,质量会好很多,但时间要很久,可能要两三周。缝缝补补的话,能快一点,但以后会很难维护。」
王海文:「那时间呢?老大给你的期限是九月中旬,还有不到十天。」
张伟:「所以我才纠结。如果缝缝补补,九月中旬之前能把功能跑通,但质量会很差,以后都是雷。如果重构,质量会好,但时间根本不够。」
王海文沉默了很久。
然后他发来一条消息:「我觉得你应该跟老大反映一下。」
张伟:「反映什么?」
王海文:「反映人手不足的问题。你一个人同时负责三个模块,还要在十天内交差,这不现实。」
张伟看着这条消息,心里有些动摇。
他想,海文哥说得对,这不现实。
但他又觉得,这话说出来,好像在抱怨一样。
他不想当那个抱怨的人。
他想了想,回复:「你觉得说了有用吗?」
王海文:「不知道。但不说肯定没用。」
张伟:「……」
王海文:「而且,你不说,马超的坑就永远在那里。最后背锅的还是你。」
张伟盯着这条消息看了很久。
他想起下午林晓发来的那封邮件——对话管理模块的进度确认,十几个功能点,九月二十号之前要完成第一版。
他想,他什么时候才能同时做好这么多事?
他想,他是不是应该跟领导谈谈?
但他又怕。
他怕领导觉得他不行,怕领导觉得他推卸责任,怕领导觉得他是个麻烦。
他想,在这个公司里,谁不是一个人干着两个人的活儿?
张伟正想着,手机忽然震动了一下。
是林晓发来的微信。
「张伟,对话管理模块的进度怎么样了?」
张伟看着这条消息,心里一紧。
他还没来得及回复,林晓又发来一条:「有几个问题想和你确认一下,明天上午有时间吗?」
张伟回复:「有。明早几点?」
林晓:「十点吧,在你工位边上聊就行。」
张伟:「好。」
他放下手机,叹了口气。
他想,明天上午十点,还要应付林晓。
后天,大后天,大大后天……每天都有事情要处理。
他想,他什么时候才能喘口气?
他不知道。
他只知道,他不能停下来。
停下来,就什么都没有了。
张伟重新把视线放回屏幕。
他打开数据清洗模块的代码,从头开始看。
他决定暂时不去想那些乱七八糟的事。
他想,不管怎样,先把代码看懂再说。
其他的,以后再说。
他翻到一个数据校验的函数,函数名叫validate_data。
他看了一会儿,发现这个函数的逻辑很绕。
函数开头是一堆数据校验的逻辑,但校验完之后,并没有直接返回结果,而是又调用了另一个函数process_data。
而process_data函数又在里面调用了validate_data,形成了一个奇怪的嵌套。
张伟皱起眉头。
他想,这种写法,正常人不会写。
他想,这要么是马超写错了,要么是他故意留下的彩蛋。
不管是哪种,他都得把它解开。
他开始一行一行地读代码,试图理清其中的逻辑。
时间一分一秒地过去。
窗外的天色从灰暗变成漆黑,办公区的灯一盏一盏地灭掉。
只剩下张伟的工位,还亮着一盏孤零零的灯。
晚上九点半,张伟终于站起来伸了个懒腰。
他的脖子僵硬,腰酸背痛,眼睛干涩得难受。
他看了眼屏幕角落——代码编辑器还开着,光标停留在一个叫merge_records的函数里。
这个函数有将近一百行,中间嵌套了五六层if-else。
他看了一下午加一晚上,才勉强看懂一半。
他关掉电脑,拿起工牌,准备走人。
走到电梯口的时候,他忽然想起一件事。
他今天还没给陈雨彤发消息。
他想,她可能已经在等他的晚安了。
他掏出手机,打开微信。
陈雨彤的消息列表在最上面,最后一条是下午两点发来的:「中午吃了什么?」
张伟看着这条消息,有些愧疚。
他今天太忙了,忙到连她的消息都忘了回。
他想了想,回复:「今天太忙了,忘了回。吃的外卖,还行。」
他犹豫了一下,又发了一条:「晚安,早点睡。」
发完之后,他盯着屏幕等了一会儿。
过了大概五分钟,陈雨彤回复了一个表情——一个小人躺着的图标,下面写着”zzz”。
张伟看着这个表情,忽然觉得有些温暖。
他想,她没有怪他。
她只是默默地睡了,等着他忙完。
他想,他一定要好好珍惜她。
在这个冷冰冰的城市里,她是唯一让他觉得温暖的人。
他收起手机,走进电梯。
回到家,张伟洗了个澡,躺在床上。
他拿起手机,打开备忘录,开始整理今天的工作。
他写了大概十几条,把明天要做的事情排了个序。
第一条:九点,找王海文确认数据清洗模块的交接细节。
第二条:十点,林晓来聊对话管理模块的进度。
第三条:下午,开始动手写数据清洗模块的重构方案。
第四条:晚上,继续看马超的代码。
他看着这四条安排,觉得有些可笑。
他想,一天怎么可能做完这么多事?
但他还是把它们写了下来。
因为不写的话,他更不知道该从何做起。
他放下手机,闭上眼睛。
窗外的夜很静,只有偶尔传来的汽车声。
他想起今天王海文说的话——你应该跟老大反映一下。
他想,是啊,他应该反映。
但他不知道该怎么开口。
他不知道该说什么。
他只知道,他不能一直这样下去。
这样下去,迟早会出问题。
他翻了个身,强迫自己不再去想。
他想,明天再说吧。
明天的事,明天再说。
他闭上眼睛,慢慢地睡着了。
(待续)