第三章 给我十分钟
十分钟的第一分钟,沈知行没有改代码。
他让马骏把演示重新跑了一次。
高明远看了眼手表:“刚才不是已经出问题了?”
“留一份完整的。”
“日志不是有吗?”
“有结果,还要有过程。”
马骏没再问,照着原来的参数启动。蓝色曲线再次上扬,等待数增加,绿色圆点一个接一个消失。
这次没人鼓掌。
刚才举手机的学生默默把镜头压低了,觉得自己像在参加一场需要保持肃静的告别仪式。
沈知行盯着屏幕,等到某个数字跳过阈值,伸手按停。
“这里。”
马骏凑近。
同一个任务标识,出现了四次。
第一次还没执行完,第二次已经带着重试标签进来,第三次把第二次当成新请求,第四次则干脆绕过了原有的等待。
“它自己又发了自己?”马骏问。
“对。后面的人以为前面没人,前面的人还在门口找钥匙。”
周野在后面听得点头。
高明远也点了一下,接着意识到自己不该跟周野用同样的方式参与技术讨论,便伸手拿起水杯。
“重试本身没错。”沈知行把鼠标挪到另一处,“但你们两个地方看时间的方式不一致。一个认经过了多久,一个认现在几点。遇到这个场景,判断先后就乱了。”
马骏看了片刻,吸了口气。
这段代码是不同的人接过的。
写第一版的人已经去了别的项目,后续合并时,每个人都只负责自己那块。单独看,谁也不像写了个会让全系统停下来的东西。
“原来在这里。”
“还有回收计数。只改一个地方,过会儿还会堆。”
沈知行拉开两个窗口,把需要调整的几处标出来。
他下手并不花哨。
没有电影里滚满屏幕的绿色字符,也没有一边接电话一边盲打的表演。该停下看条件的时候,他就停,改完一处再核一下旁边的调用。
周野低头看手机上的计时。
两分四十七秒。
他本来想说句加油,想起上次刘成在游戏里只剩最后一丝血,他也是这么加的,最后挨了一枕头。
于是,他决定保持安静。
何敏站在侧面,正在看那份临时记录。机器型号、任务分布、原版本位置,都写得很清楚。
她见过不少优秀的毕业生。
有人会在介绍项目时把自己的贡献讲得特别大,一问具体分工,才知道核心框架是学长做的。有些真正做过的人,表达又跟不上,成果明明在手里,却很难让面试官愿意多给十分钟。
眼前这个学生倒像已经处理过太多次扯不清的事情。
先把什么是谁的,在哪里改过,最后怎么证明,全放在明面上。
她把那页记录的标题看了一遍,没有拍照,只记下了姓名。
沈知行。
第四分钟,修改完成。
马骏重新启动。
高明远稍稍往前走了一步,鞋尖碰到电源线,又立刻收了回去。
屏幕亮起来。
蓝色曲线重新爬升,负载继续增加。慢请求混进任务流,等待数涨了一段,随后稳住。
绿色圆点没有再少。
马骏盯着那排状态,手指悬在键盘上,迟迟没落下。
“再加一点。”沈知行说。
马骏把负载往上调。
队列缓慢增长,处理也在继续,整个系统终于表现得像一群正常干活的人,谁没做完就老老实实等着,没人拿着四张同样的单子去挤门。
一分钟过去。
没有提示音。
两分钟过去。
依然正常。
高明远放下水杯,脸上重新有了笑。
“所以说,我们这套架构本身是很扎实的。刚才只是个小细节——”
“还有三分钟。”沈知行说。
高明远的话停住。
“不是修好了吗?”
“修故障够了。你们想不想看看,为什么它原来跑得不算快?”
马骏猛地转头。
高明远没马上答。他担心再开一轮出新的问题,可对面澜海的人还站着,现在拒绝,又像承认自己的展示只能到这儿。
“你有什么想法?”
沈知行指了一下任务列表。
“这些事情现在共用一条队列。很快能做完的,和需要等外面回应的,都挤在一起。可以先做个小范围分流,只用现有模拟数据,不碰业务模块。”
“这会改动多少?”
“我新写个外置的调度小层。单独文件,随时拿掉。”
他看向马骏。
马骏先问高明远:“隔离目录内再试一下?”
高明远点头。
沈知行新建文件,没有把它混进原工程。
这个想法他前世做过远比现在复杂的版本。眼前只需要展示最小的一部分,而且未来实验室里已经跑出了合适的入口。
他仍然把边界写清楚。
晟川系统修复完成。
附加验证,独立示例。
马骏读到这一行,抬头看了他一眼,没说话。
高明远却多看了一秒。
第八分钟,第二轮测试开始。
大屏幕被分成两块。
左边是刚修好的版本,右边加了新的调度示例。两边输入一样,运行的还是同一批模拟任务,谁也没偷偷少算一半。
曲线一点点拉开。
一个原本已经转身的学生被同伴拽了回来。
“你看。”
“哪个?”
“右边。”
“右边数字少了,是不是变慢?”
马骏正好听见,难得有心情解释:“这是等待时间,少才好。”
学生点头,又问:“那左边刚才为什么写领先?”
马骏转回去看电脑,没有回答。
周野把那块宣传牌往桌子下方挪了挪。
先避避风头。
计时器走到九分二十秒,沈知行停下输入,把手离开键盘。
“别急着报数据,先跑完这一轮。”
马骏点头。
他看得出差距已经很清楚,最慢那批请求的等待被压下去了,整体处理量也在上升。更重要的是,原先那些时不时突然冒出来的长停顿少了。
每一项单看都还能解释。
放在一起,却让人不由自主地重新打量旁边这张学生脸。
计时器满十分钟。
周野张了张嘴。
沈知行侧头:“怎么了?”
“没什么,我本来想报时。”
“那你报。”
“现在是,找工作时间到。”
旁边两个学生笑出声。
高明远没有笑。他朝何敏转过身,准备说些什么,何敏却先抬手指了指电脑。
“能不能再跑一次原来的条件?”
她问的是马骏。
语气不冲,也没装作自己看得懂所有代码。她只想确认,眼前这个差距确实是同一件事前后发生了变化。
“可以。”沈知行说。
马骏把配置重新载入。
第二轮、第三轮。
数据不完全相同,趋势却一致。
反倒是其中一次表现太好,沈知行主动让马骏删掉了截图。
“那轮缓存没清,别拿那个说事。”
何敏看向他。
高明远也看了过来。
马骏已经准备点保存的手停住,随后重新运行,老实把那个过于漂亮的结果关掉。
这一次,数据没那么夸张。
但照样好看。
何敏拿出手机,对着空白的拨号界面想了两秒,走到稍安静的地方。
周野跟着看了一眼,小声问:“她是不是叫人来收电脑?”
“应该不是。”
“我主要担心你刚才修太好了,人家让你把电脑也赔了。”
沈知行笑了一声,拿起那瓶水。
水已经不凉,瓶身被周野捏瘪了一点。他喝了几口,才发觉自己确实渴。
马骏把完整日志导出,按版本分成几个文件夹。做完以后,他没急着把机器转回展台外侧,而是将那份临时记录读了一遍。
“你留个联系方式吧。”他说,“后面有不懂的,我想问问。”
“可以。工作时间问。”
“你不是还没工作吗?”
“所以现在都是休息时间。”
马骏愣了一下,随即笑了。他把自己的名片递过来,纸角稍微皱着,背面还写着一个上次测试用的端口号。
沈知行没嫌弃,接过放进包侧袋。
高明远终于插上了话。
“小沈,你这个基础,比简历上表现出来的好。这样,我们单独再聊一聊岗位。”
他这回没有叫“同学”。
沈知行看了眼电脑:“先把改动包给他留好。”
“这些让马骏处理就行,我们谈你的发展。”
“发展一会儿再谈,东西得交代明白。”
高明远伸出去的手只好收了回来。
沈知行把修复部分逐条指给马骏,哪处为何改、怎么恢复、后续还要测哪些场景,都说得简短。附加验证单独保存,演示权限到今天为止,正式使用另谈。
马骏一条条记。
记到后面,他把本子翻了页,发现背面是昨天的出差报销单。车票二等座,晚饭二十三块,住宿申请还停在待审批。
他想撕下来,沈知行摆了摆手,让他接着写。
“拿回去别直接替换整个项目。今天这里只有这些任务,其他情况你得补测。”
马骏连忙点头,又问如果有人催着今晚发版怎么办。
“把还没测过的列出来,让催的人看。”
“他要是说这不重要呢?”
沈知行瞥了一眼站在旁边的高明远,语气仍然平常:“那就请他把不重要写在这张单子上。”
马骏低头,在最后一行画了个小方框。他画得很认真,留出的空白足够签一个完整的名字。高明远看见了,转身去整理那摞已经整理过两遍的宣传册。
旁边负责收材料的女孩坐在刚才那张椅子上,终于把黑皮鞋悄悄松开了一点。她看着两个工程师在桌前交流,觉得展台今天总算开始干点和技术有关的正事。
第三轮测试结束。
马骏把结果抄进记录,刚准备开口,何敏已经回来。
她手里的电话还没挂。
“沈同学,方便占用你几分钟吗?”
沈知行看着她工作证上的名字。
何敏,澜海科技。
“什么事?”
“我们负责云计算的技术同事,想跟你确认几个问题。”
她把手机稍稍抬起,屏幕上显示着正在接通的内部会议。
高明远笑道:“你们也感兴趣?我们今天本来就是——”
“关于这段独立示例。”
何敏把话说完,停了一下,又补了一句。
“我问过负责人的意见,可以直接跟作者聊。”
她没有看高明远。
沈知行拧上瓶盖,把水放到一旁。
“可以。”
手机另一头传来翻纸的声音,随后是一个略哑的男声。
“你好,我叫梁岳。先确认一件事,刚才那份新文件,是你现场写的?”
“是。”
那边安静了片刻。
“你现在,还在学校里?”
沈知行抬头,看见体育馆墙上的毕业生就业服务横幅。
“在。”
“方便下午到我们办公室一趟吗?”
周野站在旁边,听见这句,慢慢看向自己手里的三份招聘宣传册。
他今天出门的时候,想的是能不能留下简历。
有的人好像直接把办公室叫过来了。