周六的武汉,阳光透过窗帘洒进李磊的公寓,他坐在电脑前,咳嗽声已经消失,但鼻音还在。屏幕上,一个GitHub仓库的页面闪烁着——那是他和艾丽共同维护的"Collaboration_v3.0",一个基于微服务架构的协作工具。昨晚艾丽远程帮他修复了WebSocket的内存泄漏,代码已经提交,但今天早上,他突然发现了一个新问题:一个隐藏的竞态条件,在高并发下会导致数据不一致。
"这bug藏得真深,"他自言自语,手指敲击键盘,"像极了感情里的那些小矛盾——平时不显,关键时刻就爆发。"他刚想给艾丽发消息,门铃却响了。打开门,艾丽站在门口,手里拎着两袋热腾腾的早餐——武汉特色的热干面和豆皮,还有两杯豆浆。她穿着休闲的白色T恤和牛仔裤,头发随意扎成马尾,看起来比办公室里更轻松。
"惊喜吗?"她笑着进门,"昨晚你说今天要测试v3.0的新功能,我就想着过来一起debug。顺便,给你带了早餐——感冒刚好,得补补营养。"李磊接过早餐,心里暖得像刚启动的服务器:"你怎么知道我还没吃?"
艾丽走到电脑前,看了一眼屏幕上的代码:"因为你每次遇到棘手的bug,就会忘记吃饭。看,这里——"她指着屏幕上的一个函数,"这个异步操作没加锁,多线程访问时就会出问题。就像我们第一次'冲突与重构'那次,批量操作时的死锁一样。"
两人并肩坐在沙发上,一边吃早餐,一边讨论代码。李磊咬了一口热干面,芝麻酱的香味在嘴里散开:"这比公司的咖啡好喝多了。艾丽,谢谢你昨晚的照顾,还有今天的早餐。"艾丽转头看他,眼神温柔:"客气什么,我们是'黄金搭档'嘛。不过,今天不只是来debug的——"
她停顿了一下,脸颊微红:"我想和你聊聊,关于我们。从第一次'秘密合并'到现在,已经快三个月了。我们一直在代码里'协作',但生活里,好像还缺了点正式的东西。"李磊放下筷子,心跳加速:"你是说……"
"我是说,"艾丽深吸一口气,"我们能不能,像代码一样,正式'提交'这段关系?不是秘密分支,而是公开的main分支。我想和你,不只是职场搭档,而是……"她没说完,但意思已经很明显。
李磊笑了,伸手握住她的手:"我早就想说了,但一直怕影响工作。既然你提了,那我们就'merge'吧——把私人分支合并到主分支,公开、透明,像优秀的代码一样。"他站起身,从抽屉里拿出一个小盒子——里面是一对定制的手环,上面刻着"Collaboration_v3.0"和他们的名字缩写。
"这是昨晚你照顾我时,我偷偷下单的。"李磊说,"本来想等项目上线再给你,但现在,我觉得时机正好。"艾丽接过手环,眼眶微红:"你什么时候这么浪漫了?"
"从你第一次帮我修权限漏洞开始。"李磊说,"代码可以重构,但感情,我想一次就写对。"他靠近她,两人的嘴唇轻轻相触,像两个API端点成功握手——温柔、同步,带着正式commit的仪式感。
吻结束后,艾丽靠在他怀里,看着屏幕上的代码:"那这个bug,我们还修吗?"李磊点头:"修,但这次,我们一起写——不是远程协作,而是本地集成。"他打开编辑器,开始重构那段有问题的异步代码,艾丽在旁边指导,两人的手指偶尔碰到一起,像代码中的变量引用,却都默契地没有移开。
中午,他们点了外卖,继续调试。下午,bug修复完成,测试全部通过。李磊提交代码,commit message写着:"Fix race condition with love lock. Co-authored-by: Aili <aili@codeforge.com>"
艾丽看着提交记录,笑了:"这commit message,会被小王吐槽的。"李磊耸肩:"那就让他吐槽吧,反正我们已经是'正式版本'了。"
晚上,两人一起做饭——艾丽掌勺,李磊打下手。厨房里,锅铲碰撞的声音和笑声交织,像代码编译时的提示音。饭后,他们坐在阳台上,看着武汉的夜景,江对岸的灯光如代码注释般闪烁。
"明天周日,"艾丽说,"我们去东湖走走吧?不写代码,不聊项目,就单纯地约会。"李磊点头:"好,像普通情侣一样。不过,你得答应我,下次项目,我们还一起'协作'。"
"那是当然,"艾丽靠在他肩上,"毕竟,我们是'黄金搭档'嘛。代码可以重构,但搭档,我想一直是你。"
窗外,江城的夜色温柔如她熬的汤。第十一篇的故事,从bug开始,以commit结束——但这次commit的,不只是代码,还有他们正式公开的感情。毕竟,职场代码之恋,最美好的版本,就是两个灵魂的完美协作,公开、透明,像优秀的代码一样,可复用、可扩展,并且永远稳定运行。