温然准备走,又听到他开口:“以后有问题,直接找我。”
她回头。
陈序站在早餐店门口,身后是渐渐亮起来的天。他的表情还是那副淡淡的样子,但语气比刚才认真:“不用等会后,不用发邮件等回复。有问题直接说,微信、电话、当面,都行。”
温然愣了一秒:“……好。”
她转身往地铁站走,走了十几步,忍不住回头看了一眼。陈序还站在那里,看著她的方向。看到她回头,他抬手挥了一下。
温然赶紧转回去,脚步加快。
地铁站里没什么人,她在安检口站了半天,才发现自己手里还攥著那杯没喝完的豆浆。
回家的地铁上,温然靠著车厢,闭上眼睛。
陈序的脸在脑子里晃来晃去。
“那个人是你吗?”
“以后有问题直接找我。”
她睁开眼,看著车窗上自己的倒影。头发乱糟糟的,眼睛下面青黑一片,像个熬夜加班的流浪汉。
他怎么可能记得她。
大三那年,她只是几十个测试人员里最不起眼的一个。提交的bug报告从来没得到过回复,发的邮件石沉大海。项目结束的时候,她远远看过他一眼——他被一群人围著,讨论什么技术问题,她站了五分钟,最后转身走了。
他不记得,正常。
记得才奇怪。
温然回到家,关上门,站在玄关发了一会儿呆。
她走进卧室,打开床头柜的抽屉。抽屉最里面,压著一个旧笔记本,封面已经有点磨损。
她拿出来,翻到最后一页。
那里夹著一张照片。
照片上是一群人,站在一个阶梯教室门口。那是项目结束后的合影,她站在最后一排最边上,只露出半张脸。前排中间,陈序被几个人围著,正在看手机,没看镜头。
她当时举著手机想拍他,但他一直被人挡著,最后只拍到这张——他低头看手机的侧脸,还有周围模糊的人影。
温然把照片翻过来。
背面是她自己的字迹,写于六年前:
“架构师陈序,希望有一天他能看到我的名字。”
她盯著那行字,看了很久。
窗外天已经完全亮了,阳光从窗帘缝隙里透进来,落在床单上。
温然把照片夹回笔记本,放进抽屉,关上。
她躺到床上,闭上眼睛。
手机震了一下。
她拿起来,是陈序的微信。
“到家了吗?”
温然盯著那四个字,手指在屏幕上方悬了半天,最后回了一个字:
“嗯。”
对面很快回过来:
“睡吧。晚上我请你吃饭,谢谢你帮我测代码。”
温然的心跳漏了一拍。
她打了一行字“不用了,应该的”,删掉。又打“晚上可能加班”,删掉。再打“好的,谢谢”,还是删掉。
最后她回:
“好。”
手机又震了一下:
“六点,公司楼下。睡醒说。”
温然把手机扣在枕头边,闭上眼睛。
阳光透过窗帘照进来,眼皮上一片暖红。她翻来覆去睡不著,满脑子都是陈序那句话——
“希望有一天他能看到我的名字。”
她现在的名字,他看到了。
但那行字,她永远不会让他知道。
陈序到公司的时候,八点半。
他通常九点到,今天早了半小时。电梯里只有他一个人,镜子照出他的脸——眼睛下面有一点青,昨晚只睡了两个小时。
凌晨送走温然后,他回家洗了澡,躺床上闭眼,脑子里全是她的话。
“大三的时候参加过你那个项目。”
“可能是我发的吧,也可能是别人。”
“我不记得了。”
她说不记得了。但他没说信不信。
电梯到十七楼,他走进办公室,打开电脑。公司的人事系统需要权限,他输入自己的账号,在搜索框里敲了两个字:温然。
页面跳转。
姓名:温然。
部门:测试部。
入职时间:三年前六月。
年会参与记录:无。
优秀员工评选:从未入围。
内部培训参与:无。
团建活动参与:无。
陈序盯著屏幕,眉头慢慢皱起来。
入职三年,没参加过年会,没参加过团建,没参加过任何公司集体活动。她的员工档案简单得像一张白纸,除了基本信息,什么都没有。
他往下翻,看到她的入职测试成绩。
满分。
陈序顿了一下。
入职测试满分的人不多,这几年也就三四个。这种成绩,测试部应该当成宝才对,怎么会让她低调成这样?
他继续往下翻,看到她的转正评语。
“专业能力强,测试细致,能发现深层次问题。不善交际,建议多参与团队活动。”
陈序看著那行字,想起凌晨她说“我不记得了”时的表情——眼神闪躲,手指攥著豆浆杯子,整个人像被什么东西扎了一下。
他不觉得那是“不善交际”。
那是她在躲什么。
门口传来敲门声,周晓阳探进半个脑袋:“陈总,你找我?”
陈序关掉人事系统页面:“进来。”
周晓阳走进来,手里拿著一杯咖啡,眼神里写满了好奇。他是前端组的,平时和陈序没太多交集,突然被叫来,整个人兴奋得像捡到宝。
“坐。”陈序指了指对面的椅子。
周晓阳坐下,咖啡放在桌上,眼睛亮晶晶地看著他。
陈序顿了两秒:“测试部那个温然,你熟吗?”
周晓阳的眼睛瞬间瞪大。
“陈总你居然主动问人!”他差点从椅子上跳起来,“你问温然?她怎么了?她又发现你bug了?还是你们——”
“回答问题。”陈序打断他。
周晓阳咳了一声,强行按捺住激动:“熟,也不算特别熟。就是经常在茶水间遇到,聊过几次。她这个人吧,低调得很,但技术是真的牛。”
陈序没说话,等著他继续。
“你知道吗,测试部好几个新人都是她带的。”周晓阳说起来就停不住,“但她从来不张扬,有什么功劳都让给别人。上次有个版本上线前发现严重bug,是她熬夜定位出来的,结果部门表扬的时候,她说是小张发现的。”
陈序的手指在椅背上敲了一下。
“小张是她徒弟,新人,什么都不会。”周晓阳继续说,“温然就带著他,手把手教。现在小张也能独立测一些模块了,逢人就说他师父厉害。”
“她为什么不自己领功?”陈序问。
周晓阳愣了一下:“这个……我也不知道。可能性格就这样吧?不喜欢出风头。”
陈序想起大会上她举手那一刻——全场的目光,寂静的会议室,她站在那里的样子。那不像一个“不喜欢出风头”的人。
那是不得不站出来的人。
“还有呢?”他问。
“还有……”周晓阳想了想,“她好像没什么朋友。不是那种没人理的那种,是……她不太参加活动,团建也不去,年会也不去。李姐偶尔拉她吃饭,十次能出来一两次就不错了。”
陈序点头。
周晓阳凑近一点,压低声音:“陈总,你问这么多,是不是对她有——”
“没有。”陈序站起来,“你可以走了。”
周晓阳一脸“我信你个鬼”的表情,但还是乖乖站起来。走到门口,他又回头:“陈总,温然真的是个宝藏。你要是真对她有兴趣,我支持你!”
陈序没理他。
周晓阳走了,办公室安静下来。
陈序站在窗边,看著楼下的车流。三环路上堵成一片,阳光落在玻璃上,有点刺眼。
他想起温然凌晨站在路灯下的样子——头发有点乱,眼睛下面青黑一片,手里捧著他给的豆浆,像只受惊的兔子。
她说不记得那个项目。
但如果是真的不记得,为什么会在他问“那个人是你吗”的时候,眼神躲开?
陈序拿出手机,翻到大学时那个项目的邮件存档。几百封邮件,测试报告、bug反馈、问题讨论。他一封一封往下翻,翻到最后,看到一封没有回复的邮件。
发件人:wenran_test@
主题:关于边界条件的问题
时间:六年前十月十七日
他点开。
邮件内容很短,只有三行字:
“陈序学长,压力测试时发现一个边界条件可能导致缓存穿透,具体复现步骤在附件里。麻烦看一下是否需要修改。”
附件是一个文档。
陈序下载下来,打开。
文档写得很详细,复现步骤、影响范围、修改建议,甚至附上了测试脚本。最后一行写著:“如果没时间改也可以,这个概率很低,但建议后续版本考虑。”
他没回。
那个时候他在准备一个比赛,每天忙得脚不沾地。邮件太多,技术相关的他就看,非技术的忽略。测试人员发来的反馈,他默认归入“非技术”——因为测试人员通常只会提一些表层问题,看看就行,不用回。
但他没打开附件。
他根本没看到那个边界条件。
一个月后项目出了问题,正是那个边界条件导致的。虽然影响不大,但他还是记住了——有人提醒过他,他没看,没回。
那个人叫wenran。
温然。
陈序关掉邮件,走出办公室。
他不知道自己去哪,等回过神来,已经站在五楼测试部的过道里。
测试部是开放式工位,格子间一个挨一个。午休时间,大部分人都趴在桌上睡觉,或者戴著耳机看视频。陈序站在角落,视线扫过去,一眼就看到了温然。
她趴在桌上,脸朝著窗户的方向,睡著了。
电脑屏幕还亮著,上面是测试脚本。手边放著半个面包,咬了一半,用保鲜袋随便裹著。她身上盖著自己的外套,大概是有点冷,整个人缩成小小一团。
陈序站在那里,看了几秒。
旁边有人走过,看到他,愣了一下,想打招呼。陈序抬手制止,那人赶紧低头走开。
陈序转身,走回电梯。
他回办公室,打开柜子,拿出一条毯子。
这毯子是公司发的午休用品,他从来没用过,一直扔在柜子里。他拿著毯子下楼,再次走到测试部。
温然还趴在那里,姿势都没变。
陈序走过去,轻轻把毯子搭在她身上。
她动了一下。
陈序的手顿住。
温然抬起头,揉著眼睛,迷迷糊糊地转过来。视线慢慢聚焦,看到他,整个人瞬间僵住。
“陈……陈总?”
陈序的手还悬在半空,毯子一角搭在她肩膀上。阳光从窗户照进来,落在两个人之间的空气里。
温然看看他,又看看身上的毯子,眼睛慢慢睁大。
陈序收回手,表情没变:“路过,看到你睡著。”
温然张了张嘴,没说出话。
旁边有椅子移动的声音,有人醒了。陈序听到身后传来压低的惊呼,还有手机拍照的快门声。
他没回头。
“办公室空调低,”他看著温然,声音很平,“毯子你留著用。”
说完他转身走了。
身后一片安静,然后是窃窃私语的声音。陈序走进电梯,门关上的瞬间,他听到有人说“卧槽陈总送毯子”“我是不是没睡醒”“温然和他什么关系”。
电梯往上走,数字一格一格跳。
陈序看著镜子里的自己,发现嘴角不知道什么时候往上弯了一点。
他收回那个表情,恢复成平时的样子。
电梯门打开,他走回办公室,坐下,打开电脑。屏幕上还是那封六年前的邮件。
他看著发件人的名字,看了很久。
温然看著陈序手里的毯子,还没完全从睡梦中清醒过来。
阳光从窗户照进来,刺得她眼睛有点睁不开。她瞇著眼,看到陈序站在她工位旁边,手里拿著一条灰色的毯子,表情和开会时一样平淡。
“路过,”他说,“看到你睡著。”
温然低头看看自己身上——那件公司发的卫衣,袖口有点磨损。再看看他手里的毯子,折叠得整整齐齐,像是从没用过。
“不用,”她下意识说,“我不冷。”
陈序没动。
“办公室空调低,”他说,语气没有任何起伏,“睡著了容易著凉。”
温然张了张嘴,想说真的不用。但她发现周围的安静有点不对劲——太安静了。午休时间,测试部起码有十几个人在,但她听不到任何声音。
她用眼角余光扫了一下。
斜对面的小张趴在桌上,脸朝著这边,眼睛闭著,但睫毛在抖。右边隔了两个工位,有人戴著耳机,但耳机线没插手机。更远一点的茶水间门口,有人端著杯子站在那里,一动不动。
全都在看。
温然的耳朵开始发烫。
她伸手接过毯子:“谢谢陈总。”
陈序点头,转身走了。
他的脚步声慢慢远去,电梯门打开又关上。测试部安静了三秒,然后像炸了锅一样。
“我靠!”小张第一个跳起来,“温姐!陈总给你送毯子!”
“我看错了吗那是陈序吗那个从来不跟人多说一句话的陈序?”隔壁工位的老王探出头。
“毯子!是毯子!不是文件不是邮件是一条毯子!”有人在后面喊。
温然把毯子往桌上一放,脸埋在手掌里。
小张凑过来,眼睛放光:“温姐,你和他到底什么关系?”
“没关系。”温然的声音从指缝里传出来。
“没关系他给你送毯子?我来公司两年了,他跟我说过的话不超过十句,都是‘代码重构一下’‘这个功能不行’‘ deadline提前了’。”小张掰著手指数,“他什么时候关心过谁冷不冷?”
温然抬起头:“可能……他对谁都这样?”
旁边老王笑出声:“温然,你认真的?那是陈序,不是周晓阳。”
茶水间门口那人端著杯子走过来,是产品部的李姐。她看著温然,眼神意味深长:“丫头,陈总对你不一般。”
温然张嘴想解释,李姐摆手:“别说,不用说。我们都看著呢。”
她转身走了,留下温然一个人对著那条毯子。
毯子是灰色的,纯色,没有任何花纹。材质很软,摸起来像那种贵的牌子。温然拿起来想叠好,手指碰到口袋,感觉里面有什么东西。
她愣了一下,伸手进去。
是一张便条。
白色的,折叠成小方块。她打开,看到上面的字:
“别总熬夜,bug跑不了。”
字迹很工整,一笔一划,像写代码的人写注释那样认真。没有落款,没有称呼,就这一行字。
温然盯著那行字,看了很久。
旁边小张凑过来:“温姐,那是什么?”
温然把便条攥进手心:“没什么。”
“我看到了!”小张眼睛尖,“是不是陈总写的?写的什么?是不是约你吃饭?还是——”
“测试用例写完了?”温然打断他。
小张缩回去:“还没……”
“那还不去写。”
小张“哦”了一声,乖乖坐回去,但眼神还一直往这边瞟。
温然把手里的便条又展开,再看了一遍。然后折好,放进口袋里。
手机震了一下。
她拿起来,是邮箱通知。
发件人:陈序。
标题:测试需求。
时间:下午一点十五分。
内容:下午三点,来我办公室,有个系统需要你测试。
温然盯著屏幕,心跳漏了一拍。
旁边小张又凑过来:“温姐,你脸红了。”
温然把手机扣在桌上:“没有。”
“有。”小张指著她耳朵,“耳朵也红了。”
温然站起来,拿起杯子:“我去倒水。”
她往茶水间走,感觉背后有无数道视线跟著她。倒水的时候,手机又震了一下。
还是陈序。
“便条看到了吗?”
温然握著杯子,水满了都没发现。热水烫到手指,她赶紧放下杯子,甩了甩手,回了一个字:
“看到了。”
对面很快回过来:
“下午见。”
温然看著那三个字,不知道为什么,心跳得更快了。
她端著水杯回到工位,坐下来,看著那条毯子。毯子叠好了放在桌子角落,灰色的,和周围黑色的办公用品格格不入。
小张又探头过来:“温姐,你下午要去陈总办公室?”
温然看他:“你怎么知道?”
“你刚才看手机的时候我瞄到的。”小张一脸得意,“测试需求是吧?陈总亲自发的测试需求是吧?”
温然没说话。
小张压低声音:“温姐,我觉得陈总对你真的不一样。”
温然转头看他。
“真的,”小张认真地说,“你来公司三年了,见过他给谁发过这种邮件?见过他给谁送过毯子?见过他给谁写过便条?”
温然想反驳,但发现自己说不出话。
小张继续说:“而且你知道吗,今天中午他站在那边看了你很久。我没睡著,我偷看的。他就站在角落里,看著你睡觉,看了好几秒才走。后来又回来,手里就多了那条毯子。”
温然愣住了。
她以为他只是路过。
“所以,”小张一脸八卦,“他到底写了什么?”
温然看他一眼:“测试用例写完了?”
小张“啧”了一声,缩回去。
下午两点五十五分,温然抱著笔记本站在电梯里。
电梯往上走,数字一格一格跳。她看著镜子里的自己,头发扎好了,衣服整理过了,但还是那件公司卫衣。她想起陈序穿的灰色衬衫,想起他站在角落看她的那几秒,想起那张便条上的字。
“别总熬夜,bug跑不了。”
电梯门打开。
十七楼还是那么安静。她走过长长的走廊,站在陈序办公室门口。门开著,他坐在电脑前,看到她,抬头。
“进来。”
温然走进去,站在他办公桌前。
陈序站起来,走到旁边的小会议桌,那里放著一台笔记本电脑和几个外接屏幕。
“这个系统,”他指了指屏幕,“需要你全面测试。接下来几天,你可能得待在这。”
温然看著那台电脑,又看看他。
陈序的表情没变,但温然觉得他的眼神和之前有点不一样。
“有问题吗?”他问。
温然摇头:“没有。”
陈序点头,拉开旁边的椅子:“坐。”
温然坐下,打开笔记本。阳光从窗户照进来,落在键盘上。她感觉陈序就坐在她旁边,距离不到一米。
她深吸一口气,开始看系统架构。
身后传来敲键盘的声音,陈序也开始工作了。
温然坐下,打开笔记本。
屏幕亮起来,她看到那个系统的架构图——比上次那个更复杂,模块更多,注解更少。她粗略扫了一眼,就发现好几处设计和常规思路不太一样。
“这是什么系统?”她问。
“内部工具平台。”陈序的声音从旁边传来,“后端是我写的,前端还没完全对接。你先测核心模块,有问题直接说。”
温然点头,开始跑测试脚本。
办公室安静下来。只有键盘敲击的声音,偶尔夹杂著鼠标点击。阳光从落地窗照进来,在桌面上投下一块一块的光斑。
温然很快进入状态。
第一个问题出现在二十分钟后。某个接口的返回数据格式不统一,有时候是字符串,有时候是数字。她记下来,继续往下测。
第二个问题出现在第四十分钟。缓存策略有漏洞,特定条件下会读取到脏数据。她又在文档里加了一条。
第三个、第四个、第五个……
温然发现这个系统的问题比想像中多。不是那种低级错误,是设计层面的遗漏。有些地方明显是陈序写得太快,没考虑到边界情况。
她太专注了,没注意到旁边的陈序时不时抬头看她。
陈序确实在看。
他写几行代码,视线就会不自觉往旁边飘。温然坐在那里的样子很认真,眼睛盯著屏幕,眉头偶尔皱一下,手指在键盘上敲几下,然后停下来思考。阳光落在她侧脸上,睫毛的影子投在颧骨上,很轻的一小片。
她发现问题的时候,嘴角会微微翘一下,但很快又抿回去。
陈序转开视线,继续写自己的代码。
过了几秒,又转过去看。
他觉得自己有点奇怪。但这个念头只在脑子里闪了一下,就被压下去了。
下午四点,温然测完第三个模块。
她抬头,发现窗外天还亮著,但阳光的角度变了。她看了眼时间——已经过了两个小时。
旁边陈序还在写代码,屏幕上的文件密密麻麻。她没打扰他,继续测下一个模块。
五点半,她发现一个严重的问题。
某个核心功能的逻辑有漏洞,特定条件下会造成数据丢失。她按照文档里的描述跑了三遍,每次结果都不对。她又检查了自己的测试脚本,没问题。
那问题就在代码里。
“陈总。”她开口。
陈序转头:“嗯?”
“这个功能,”温然指著屏幕,“逻辑有问题。”
陈序凑过来,看著她的电脑。温然指给他看:“这里的判断条件,如果A和B同时发生,优先级应该是A,但代码里写的是B。会造成数据覆盖。”
陈序看了几秒,眉头皱起来。
“我看看源码。”他说。
温然让开一点,等他看自己的电脑。但陈序没动,而是直接伸手,握住她的鼠标。
他的手碰到她的手。
很短的一瞬间,大概零点几秒。温然感觉他的手背擦过自己的手指,有点凉,骨节分明。她整个人僵了一下,但陈序好像没注意到,已经开始在她的电脑上操作。
他打开源码文件,找到那个模块,一行一行往下看。
温然坐在旁边,不敢动。
她的鼠标在他手里,她的电脑屏幕在他面前,他们之间的距离大概不到二十公分。她能闻到他身上淡淡的洗衣液味道,还有咖啡的苦香。
“确实错了。”陈序说,声音就在她耳边。
温然的心跳漏了一拍。
陈序转头看她:“这个逻辑我写的时候没考虑清楚,你发现得很及时。”
他一转头,发现两个人离得太近了。
温然的眼睛就在他面前,近到能看清她睫毛的弧度。她的瞳孔有点抖,嘴唇抿著,整个人像是被按了暂停键。
陈序也没动。
他发现自己忘了要说什么。忘了手里还握著她的鼠标。忘了他们在讨论什么问题。他只看到她眼睛里有自己的倒影,小小的,很清晰。
阳光又移动了一点,落在她耳边的碎发上。
“陈总……”温然开口,声音有点哑。
陈序回过神,往后退了半步。
“那个,”他说,语气和平时一样平,“你继续测,我改一下逻辑。”
温然点头,把视线转回屏幕。
她感觉自己的耳朵在发烫。不用看也知道肯定红了。
旁边传来敲键盘的声音,陈序开始改代码。她盯著自己的屏幕,但一个字都看不进去。刚才那一瞬间的距离、他的眼睛、他身上的味道,全在脑子里转。
她深吸一口气,强迫自己专心。
测测试试。继续测。
六点半,她测完第五个模块。
窗外天已经黑了,办公室里亮著灯。陈序不知道什么时候站起来,走到窗边接电话,声音很低,听不清说什么。
温然偷偷看了一眼他的背影。
他站在落地窗前,一手插兜,一手拿著手机。背影很直,肩膀线条好看,路灯的光从楼下照上来,把他整个人勾勒出一道浅浅的轮廓。
他挂了电话,转身。
温然赶紧低头,假装在看屏幕。
陈序走回来,在她旁边坐下。
“饿不饿?”他问。
温然摇头:“不饿。”
陈序看了一眼她的电脑,又看了一眼时间:“先吃饭,回来继续。”
温然想说不用,她真的不饿。但陈序已经站起来,拿起外套。
“楼下有家面馆,”他说,“很快。”
温然只好站起来,抱著笔记本不知道放哪。
陈序伸手:“给我。”
她愣住。
陈序从她手里拿过笔记本,放到自己桌上,和那台外接屏幕放在一起。动作很自然,好像这是应该的。
“走吧。”他说。
温然跟著他走出办公室。走廊里安静,电梯门口只有他们两个人。数字一格一格往下跳,温然盯著那个数字,不知道该说什么。
陈序也没说话。
电梯到一楼,门打开。大厅里有几个下班的同事,看到他们一起走出来,眼神瞬间变了。
温然假装没看见。
走出门,冷风吹过来,她打了个哆嗦。
陈序看了她一眼,没说话,但脚步放慢了。
面馆在旁边那条街上,走路五分钟。店面不大,干干净净,老板认识陈序,看到他进来直接问:“老样子?”
陈序点头,又看向温然:“你吃什么?”
温然看著菜单,随便指了一个。
他们在靠窗的位置坐下。等面的时候,陈序的手机响了,他看了一眼,没接。
温然低头看桌面。
“今天测出几个问题?”陈序问。
“七个。”温然说,“三个严重,四个中等。”
陈序点头:“明天继续。”
温然“嗯”了一声。
面上来,她低头吃,不说话。陈序也没说话。两个人安静地吃完,陈序付钱,她站在门口等。
回去的路上,风更大了一点。温然把手缩进袖子里,加快脚步。
走到公司楼下,陈序突然说:“等一下。”
温然回头。
陈序走进旁边的便利店,出来的时候,手里拎著一个袋子。他递给她。
温然接过,打开一看——热牛奶,还有一个三明治。
“晚上可能会饿。”陈序说。
温然抬头看他。
作者有话说
显示所有文的作话
第570章 第 570 章