他是我代码里的一个bug,莫名其妙出现,却让整个系统崩溃。第一次见面,
他撞洒了我的咖啡,资料散落满地。「不好意思,我赔你一杯?」
后来他真赔了——赔了一辈子的早安晚安,赔了深夜加班时的热粥,
赔了我所有孤独时刻的陪伴。直到某天他消失,我才发现:原来想念,是心脏被挖走一块后,
呼啸而过的穿堂风。---早晨八点四十七分,林薇站在写字楼底下,
手里那杯滚烫的拿铁是她今天全部的勇气来源。初夏的风带着点黏腻的热气,
吹在脸上不算舒服。她深吸一口混合着汽车尾气和早点摊食物味道的空气,抬脚迈上台阶。
脑子里还在盘旋着昨晚没调试通过的那段代码,像个顽固的死结,绞得她太阳穴突突直跳。
项目经理催命一样的邮件还躺在收件箱最上面,红色的未读标记刺眼。就在这时,
一股毫无预兆的力量从侧面猛地撞了上来。天旋地转。紧接着是皮肤上传来的剧烈灼痛。
“啊!”她短促地惊叫了一声,手下意识松开。那只印着公司Logo的白色纸杯脱手飞出,
褐色的咖啡液像一场小范围的、绝望的爆炸,泼溅开来。
她新买的米色西装外套袖子湿了一大片,黏腻滚烫,紧紧贴在皮肤上。更糟糕的是,
她腋下夹着的那个文件夹也飞了出去,里面的A4纸天女散花般,哗啦啦散落一地,
有几张还飘悠悠地落进了地上的咖啡渍里,墨迹瞬间晕染开,糊成一团。
一股火气“腾”地就顶到了林薇的脑门。她今天起个大早赶工,就为了能准时交差,
现在全完了!“**……”一个带着明显懊恼的男声在她头顶响起。林薇猛地抬头,
撞入眼帘的是一张写满了慌乱和歉意的脸。是个很高的年轻男人,
穿着简单的灰色T恤和牛仔裤,肩膀上斜挎着一个看起来沉甸甸的黑色电脑包。
他看起来也不比她好多少,额角冒着细汗,几缕头发不听话地贴在皮肤上。“对不住!
对不住!真不好意思!”他语速很快,一边说一边已经蹲了下去,
手忙脚乱地开始捡拾那些散落的纸张,“我没看路,光顾着回消息了,
我那个……我赔你一杯?”“赔?”林薇的声音因为心疼和怒气有点发尖,她也蹲下去,
抢救那些沾了污渍的文件,“这是项目初始需求文档!原稿!上面有产品经理的亲笔签名!
你拿什么赔?”她抓起一张被咖啡浸透了一半的纸,边缘已经软塌塌地卷了起来,
上面的字迹模糊不堪。完了。
她仿佛已经听到了产品经理那标志性的、拉长了声调的“小林啊——”。男人动作顿住了,
看着那张惨不忍睹的纸,喉结滚动了一下,脸上是货真价实的傻眼。
“这……我……”林薇不想再看他,也不想再听任何苍白的道歉。她绷着脸,
把还能挽救的文件快速收拢起来,叠在一起,
尽量无视那些刺眼的咖啡污渍和纸张皱褶的狼狈。地上的咖啡液还在缓缓流淌,
映出大厅天花板明亮的灯光,像一摊不幸的预言。
她抱着那叠散发着咖啡香气的、皱巴巴的文件站起身,感觉整个早晨,不,是整个项目,
都像这些纸一样,成了一团糟。她没再看那个罪魁祸首,径直走向电梯厅,脊背挺得笔直,
只有她自己知道,被咖啡烫到的皮肤和因为焦急而加速的心跳,有多难受。
电梯金属门光可鉴人,映出她略显苍白的脸和紧抿的嘴唇。**的是个完美的周一。
---接下来的几天,林薇几乎住在了公司。
那个被咖啡洗礼过的项目果然如同开启了地狱模式,各种意想不到的bug层出不穷,
客户那边又提出了几条新的需求变动,整个技术组人仰马翻。她像个救火队员,
哪里代码冒烟就往哪里冲,眼睛下面挂了两团浓重的青黑,
咖啡消耗量从每天一杯飙升到三杯打底。周四晚上,十点已过。
办公区只剩下她工位这一盏孤灯,键盘噼里啪啦的声响在空旷的空间里显得格外清晰。
胃里传来一阵熟悉的空虚绞痛,她这才想起自己晚饭只啃了半片冷掉的面包。就在这时,
手机屏幕忽然亮了一下,弹出一条微信好友申请。备注信息很简单:「程述,
周一早上撞洒你咖啡的那个。」林薇盯着那条信息看了几秒,
心头那股无名火又有复燃的趋势。她本想直接忽略,但手指悬在屏幕上方,犹豫了一下。
那天他确实慌乱又抱歉,而且……事情已经发生了。她皱着眉,点了通过。几乎是立刻,
对方发来了消息。「程述:」谢天谢地,你通过了。我打听了好几个人才问到你的微信。
「林薇:」有事?她的回复干巴巴,不带任何感**彩。「程述:」首先,
再次为周一的事情郑重道歉。其次,你还在公司吗?我看技术部那边灯好像还亮着。
林薇下意识地抬头望了一眼玻璃隔断外的办公区,黑黢黢的。「林薇:」在。加班。
「程述:」位置发我一下?就当是……赔罪第一步。林薇莫名其妙,
但还是把公司楼层和部门位置发了过去。她没指望什么“赔罪”,只觉得这人有点奇怪。
大约过了二十分钟,前台的方向传来细微的响动。林薇正埋头跟一个逻辑错误较劲,
没太在意。直到一个熟悉的、带着点试探性的声音在工位隔板外响起。“林薇?”她抬起头,
愣住了。程述站在那儿,手里提着一个印着附近那家广式茶餐厅Logo的纸袋,
袋口隐隐冒着热气。他换了一身衣服,简单的白色衬衫,袖子随意地挽到手肘,
露出线条结实的小臂。和那天早上的慌乱不同,此刻他看起来清爽了不少,眼神里带着诚恳,
还有一丝……不太好意思?“你……”林薇一时语塞。“路过楼下,看到灯还亮着,
猜你肯定没吃晚饭。”程述把纸袋放在她桌角一个相对空旷的角落,动作有点小心翼翼,
像是怕再碰倒什么,“他们家艇仔粥和虾饺还不错,趁热吃。
”粥的温热透过纸袋传递到微凉的桌面,也仿佛隔空熨帖了一下她空荡荡的胃。
空气里弥漫开一股清淡的食物香气,瞬间冲淡了加班夜冰冷的泡面味。林薇看着那袋食物,
又看看程述。几天前那股憋闷的火气,奇异般地,消散了大半。她甚至觉得有点好笑,
这人还真是……执着。“谢谢。”她最终说道,声音缓和了一些。“不客气,应该的。
”程述似乎松了口气,嘴角弯起一个很小的弧度,“那你先忙,我不打扰了。”他没再多说,
转身走了,脚步声在寂静的办公区里渐行渐远。林薇目送他的背影消失在转角,
然后才伸手打开纸袋。粥碗很暖,虾饺晶莹剔透。她挖了一勺粥送进嘴里,温度适中,
软糯鲜香。被代码和deadline折磨得麻木的神经,
好像被这口温暖的食物悄悄抚平了一丝褶皱。她拿起手机。「林薇:」粥很好吃。谢谢。
那边很快回复。「程述:」[笑脸]能弥补千万分之一的过错,是我的荣幸。早点休息。
林薇看着那个憨憨的笑脸表情,手指在键盘上停留片刻,最终还是锁屏,
重新投入代码的海洋。只是,胃里是暖的,办公室里似乎也不再那么冰冷空旷了。
---“赔罪”一旦开了头,就好像某种程序被启动,再也停不下来。第二天早上,
林薇刚在工位坐定,困得眼皮打架,准备去接今天的第一杯续命咖啡时,手机震了。
「程述:」抬头,看前台。她疑惑地望过去。前台小姑娘正端着一杯咖啡走过来,
脸上带着暧昧的笑:“薇薇姐,你的咖啡。一位不愿透露姓名的先生点的。
”杯壁上贴着她名字的标签,旁边还用马克笔画了个笨拙的笑脸。是她常喝的美式,
双份浓缩。林薇接过咖啡,指尖感受到恰到好处的烫热。她拍了张照片,发给程述。
「林薇:」这也是“路过”?「程述:」这是“赔罪”的第二步,持续补给能量。
[龇牙]她忍不住笑了一下。从那天起,这种“补给”变得规律起来。每天早上九点左右,
一杯画着笑脸的热咖啡总会准时出现在她的工位。有时候是美式,
有时候会根据她前一天朋友圈吐槽加班太晚的状态,换成更温和的拿铁或卡布奇诺。
微信对话框也成了他们之间一条无形的连线。「程述:」今天天气超好,
可惜要困在会议室里鏖战。你们那边战况如何?「林薇:」地狱模式,boss暴走中。
「程述:」挺住!晚上给你空投“弹药”。他口中的“弹药”,
有时候是一份热乎乎的煲仔饭,有时候是一盒切好的水果,甚至有一次,
是一小瓶缓解眼疲劳的眼药水。林薇从一开始的客气疏离,
到后来也会跟他抱怨几句客户的奇葩需求,或者分享某个攻克了技术难题的小小喜悦。
她发现程述并不像他外表看起来那么毛躁,他在隔壁项目组做后端开发,
对技术有自己独特的见解,偶尔还能给她一些启发。他好像一个技艺高超的补丁,
精准地打在她生活那些因为忙碌和孤独而显得格外粗糙毛刺的地方。周五晚上,
林薇终于搞定了那个让她头疼一周的模块。巨大的疲惫感和成就感同时席卷而来。
她瘫在椅子上,不想动弹。手机响了,是程述的直接呼叫。“喂?”她接起来,
声音带着熬夜后的沙哑。“听声音,像是刚打完一场硬仗。”程述的声音从听筒里传来,
带着笑意,比平时通过文字听到的更加清晰,更有温度。“嗯,刚提交。”林薇揉了揉眉心,
“感觉身体被掏空。”“功臣,下楼吧。‘赔罪’最终章,赏脸吃个宵夜?”他的语气轻松,
带着点不容拒绝的期待。林薇看着屏幕上刚刚通过的测试报告,
心里那根紧绷的弦彻底松了下来。她忽然觉得,走出这栋大楼,呼吸一下夜晚的空气,
好像也不错。“好。”初夏的夜风比白天温柔许多,吹在脸上带着丝丝凉意。
程述就站在大楼门口那棵香樟树下,穿着简单的T恤牛仔裤,手里拎着个塑料袋,
里面装着两罐啤酒和几个一次性餐盒。“不远走了,将就一下?
”他指了指大楼侧面供人休息的长椅。林薇点点头。两人在长椅上坐下,程述打开餐盒,
是附近夜市买的烤串,还冒着热气。他拉开一罐啤酒,递给林薇。冰凉的啤酒滑过喉咙,
带走最后一丝疲惫。烤串的味道辛辣咸香,在寂静的夜里显得格外诱人。他们谁都没说话,
只是安静地吃着,喝着,看着远处马路上流淌的车灯,像一条无声的光河。“其实,
”程述忽然开口,声音在夜色里显得很温和,“那天撞到你,不是我第一次见你。
”林薇有些意外地转过头看他。“上个月公司季度技术分享会,
你上去讲过一个关于前端性能优化的点,就五分钟。”程述喝了一口啤酒,目光看着前方,
“你语速很快,逻辑特别清楚,下面有人提问刁难,你三两下就给他挡回去了。当时就觉得,
这姑娘……挺厉害的。”林薇完全没印象。她只记得那天台下黑压压的一片,她紧张得要命,
只想赶紧说完下台。“所以,”她晃了晃啤酒罐,“你是因为觉得我‘厉害’,
才来撞我咖啡的?”程述笑了,侧头看她,眼睛在路灯下显得很亮:“不是。
是因为那天早上,我又看到你,皱着眉头,嘴里念念有词地往大楼里冲,
像个马上就要上战场的小坦克,觉得特别……生动。然后就光顾着看你了,没注意脚下的路。
”他的语气很坦然,带着点自嘲。林薇的心跳,毫无预兆地漏跳了一拍。夜风吹过树叶,
沙沙作响,掩盖了她瞬间加重的呼吸。她低下头,咬了一口手里的肉串,
辛辣的味道在舌尖炸开,一直蔓延到心里,有点麻,有点痒。原来,
在那些她觉得自己灰头土脸、狼狈不堪的时刻,在另一个人的眼里,可以被定义为“生动”。
那天晚上的宵夜并没有持续很久,但回去的路上,林薇感觉脚步是轻快的。
连续加班的沉重似乎被夜风和那罐啤酒带走了不少。她回到寂静的公寓,洗漱完躺在床上,
手机屏幕亮了一下。「程述:」到家了?「林薇:」嗯。「程述:」那就好。
今天……很开心。晚安,小坦克。后面跟着一个月亮的表情。
林薇看着那个新出炉的、独属于他们之间的昵称,嘴角不由自主地向上弯起。她没有回复,
只是把手机放在枕边,闭上了眼睛。窗外的城市依旧喧嚣,但这一刻,
她心里是久违的、安然的宁静。那个名叫程述的“bug”,
似乎正以一种她无法预料、也无法抗拒的方式,悄然嵌入她的系统,
成为了一段……让她隐隐开始期待的代码。程述的“赔罪行动”似乎没有明确的终止符,
反而悄无声息地融入了林薇的日常。早晨的咖啡依旧雷打不动,
只是笑脸图案偶尔会有些变化,有时是加油的拳头,有时是睡眼惺忪的小人,
笨拙却充满诚意。微信对话框里的内容也愈发丰富,从单纯的工作吐槽,
蔓延到了生活的边边角角。他会拍下清晨路边沾着露水的野花发给她,
附言:「今日份的生机,分你一半。」她会在深夜被一段复杂逻辑困住时,
收到他看似随意发来的某篇技术文章链接,恰好点醒了她卡壳的思路。
他们开始分享喜欢的音乐,讨论最近上映的电影,
甚至为了一杯奶茶的甜度是三分还是无糖在微信上“争论”半天。
林薇发现自己开始习惯这种渗透。习惯在疲惫时收到投喂,习惯在困惑时有个可以讨论的人,
习惯在一天结束时,看到那个带着月亮表情的“晚安,小坦克”。这个昵称从他口中叫出,
带着一种独特的亲昵,让她在无人看见的角落,会不自觉地微笑。某个周六下午,
林薇难得没有加班,正窝在公寓的沙发里看一部老电影,手边是吃了一半的外卖。
电影情节有些沉闷,窗外的阳光透过百叶窗,在木地板上投下斑驳的光影,
空气里漂浮着细小的尘埃,安静得让人有些心慌。这种突如其来的、不属于工作的空白时间,
反而让她感到一丝无所适从的孤独。手机适时地响起,是程述的视频通话请求。
她犹豫了一下,理了理有些凌乱的头发,按了接听。屏幕那端出现程述的脸,
背景是他略显凌乱但充满生活气息的公寓,书架上堆满了书和模型,
墙上贴着几张看不清内容的海报。他好像刚洗完头,头发湿漉漉的,几滴水珠顺着额角滑落。
“在干嘛呢?”他笑着问,声音透过听筒传来,带着点嗡嗡的回响。“看电影,有点无聊。
”林薇把手机靠在茶几上的抽纸盒上,调整了一下角度。“一个人?”“嗯。”“巧了,
我也是。”程述把手机拿近了些,背景切换到他的厨房流理台,
“刚收到朋友寄来的老家特产,一种特别好吃的挂面,还有他妈妈自己做的肉酱。
一个人吃好像有点浪费……”他的意图很明显,带着点小心翼翼的试探。