“裴衍之。”程司白开口了,声音比刚才在会议上低了一些,“你为什么坚持用Paxos?”
“因为它成熟。”
“你知道我不是问这个。”程司白转过身,面对他,“你知道Paxos在边缘场景有问题。你在方案文档里写了,在附录C里承认了这个问题。但你还是坚持用它。为什么?”
裴衍之沉默了一会儿。
窗外有鸟叫声,很远,断断续续的,像一段信号不稳定的广播。
“你为什么非要Raft?”他没有回答她的问题,而是反问了一句,“你明明知道Raft在网络不稳定的情况下会有频繁的领导者选举。你为什么非要选它?”
“因为它的性能更好。”
“你也不是在说性能。”裴衍之的声音忽然变得很轻,轻到像是在自言自语,“你只是想证明自己。”
程司白的手指在窗台上敲了一下。
“证明什么?”
“证明你这三年没有白过。”裴衍之看著她,目光平静,平静得像一面没有波澜的湖,“证明你离开我是对的。证明你一个人可以做得更好。”
会议室里安静了很久。
程司白没有否认。她也没有承认。她只是站在那里,手指按在窗台上,指尖因为用力而微微发白。
“两周之后见分晓。”她说完这句话,拿起笔记本和电脑,推开会议室的门走了出去。
走廊里很安静,她的脚步声又一次在大理石地面上响起,一二一二,像一段稳定的时钟信号。
但这一次,节奏乱了一拍。
只有一拍。然后她又恢复了原来的步频。
何悦在茶水间门口探头,看到她走过来,缩回去假装在倒水。程司白经过的时候没有看她,径直走向自己的工位。
她坐下来,打开电脑,萤幕上还是那份简报。
第三页,网络抖动模拟图。
她盯著那张图看了很久。
“你只是想证明自己。”
这句话在她脑子里转了一圈又一圈,像一个死循环,跳不出来。
她不知道他说得对不对。
她只知道,两周之后,她要让数据说话。
这是她唯一相信的东西。
程司白在工位上坐了四十分钟,一个字都没写。
萤幕上还是那份简报,第三页的网络抖动模拟图,蓝色的曲线在坐标轴上波动,像一条不安分的心电图。她的手指放在键盘上,但脑子里反反复复转著同一句话。
你只是想证明自己。
她觉得被冒犯了。
不是因为他说错了,是因为他凭什么这么说。三年没见,第一次正式合作会议,他就在七个人面前说她只是想证明自己。好像她这三年做的所有事情——读完硕士、考下架构师认证、从工程师做到Team Leader、主导了三个成功的项目——都只是为了证明她离开他是对的。
荒谬。
她用力敲了一下键盘,打出了一行乱码,又删掉。
何悦从茶水间走出来,手里端著一杯热茶,经过她工位的时候放慢了脚步。程司白感觉到有人在旁边停下来,没有抬头。
“程姐,你还好吗?”
“没事。”
“你刚才开会的时候好厉害。”何悦把茶放在她桌上,“裴哥都被你说愣住了。”
程司白看了一眼那杯茶,菊花枸杞,何悦每次觉得她压力大的时候都会泡这个。“不用,你喝吧。”
“我泡了两杯。”何悦拉过旁边的椅子坐下,喝了一口自己的茶,眼睛时不时瞟过程司白的脸,像一只试探著要不要靠近的猫。
程司白知道她想说什么。何悦这个人,每次要说重要的事情之前都会先喝一口水,然后沉默五秒。现在她已经喝了三口茶了,沉默了大概十五秒,说明她接下来要说的事情很重要。
“程姐,我跟你说个事,你别说是我告诉你的。”
程司白终于转头看她。“什么事?”
何悦压低了声音,凑过来。“今天下午我跟唐总汇报工作的时候,听到他打电话。好像是打给裴哥以前的同事,问了一些裴哥以前的事。”
程司白的手指在键盘上停了一下。“然后呢?”
“然后唐总挂了电话之后自言自语了一句话。他说——”何悦顿了一下,又喝了一口茶,“他说“这小子当年连共识两个字都不敢写,现在倒是敢跟程司白拍桌子了”。”
会议室的冷气好像又吹过来了。
程司白觉得自己的手指有点凉。她把手指从键盘上收回来,放在膝盖上。
“什么意思?”她问。声音比她自己预期中要轻。
何悦摇了摇头。“我也不太清楚。好像是说裴哥当年离职之后,有一段时间写程式码从来不用“共识”这个词。不是故意的,就是打不出来。唐总说他见过一次,裴哥对著萤幕发呆了十几分钟,最后把“共识算法”改成了“一致性协议”。”
程司白没有说话。
窗外有鸟叫声,很远,断断续续的。阳光透过百叶窗照进来,在她桌上投下一条一条的光影。她看著那些光影,觉得它们像某种编码,某种她读不懂的语言。
“程姐?”何悦小心翼翼地叫她。
“嗯。”
“你跟裴哥……真的只是不熟吗?”
程司白沉默了三秒。“不熟。”
何悦看了她一眼,没有再问。她把茶杯端起来,站起来走了。走了几步又回头说了一句:“程姐,那杯茶你记得喝,凉了就不好喝了。”
茶水间的门关上了。
程司白坐在位置上,看著那杯菊花枸杞茶。热气从杯口升起来,在空气中散开,消失。她伸手碰了一下杯壁,温的,不烫。
她把手收回来。
打开抽屉,拿出那部旧手机,按了一下电源键。萤幕亮起来,还是那张照片,还是那个笑容。她盯著那张照片看了大概十秒,然后关掉,把手机放回去。
抽屉关上的时候,她听到自己的心跳声。
不是很快,但很重。一下一下的,像有人在胸口捶门。
她不想去想何悦说的话。
她不想去想裴衍之为什么不敢写“共识”两个字。
她不想去想他对著萤幕发呆的十几分钟里在想什么。
她不想去想这些,因为想了就会心软。心软是最大的弱点。她不需要弱点。
她打开文档,找到那封已经写好的邮件。
收件人:唐嘉树。
主旨:关于项目合作人更换的申请。
内容很简短。她写这封邮件的时候觉得很有道理——她和裴衍之没办法合作,与其两周之后因为技术分歧再次吵起来,不如现在就申请更换合作人。唐嘉树会理解的,他是技术总监,他知道什么对项目最好。
她看著这封邮件,手指放在滑鼠上,游标停在“发送”按钮上方。
只需要点一下。
她就可以不用再跟他开会,不用再听他说“你只是想证明自己”,不用再在电梯里说“好久不见”。
只需要点一下。
她没有点。
她关掉了邮件。
不是因为她想跟他合作。是因为她不想让唐嘉树觉得她连这点事情都处理不了。她是架构组的负责人,她不能因为私人原因影响工作。就这么简单。
她把萤幕上的简报关掉,打开测试环境的程式码编辑器,开始写Raft变体算法的性能测试脚本。键盘的声音在安静的办公区里响起来,哒哒哒哒,节奏稳定,像一段没有感情的程式码。
她写了一个小时,两个小时,三个小时。窗外的光线从白色变成橘黄色,再变成深蓝色。办公区里的人一个一个走了,灯一盏一盏暗了。她没有注意到。
她只注意到程式码。
测试脚本、边缘场景、并发模拟、故障注入。她把每一个参数都设到最极端,把每一个条件都推到边界,把每一种可能失败的情况都列出来。她要证明Raft变体是稳定的,她要证明她的方案比他的好,她要证明——
证明什么?
她的手指停了下来。
萤幕上是一段刚刚写完的代码,注释里写著一行字:“// 边缘场景测试:网络分区+领导者崩溃+日志不一致”
她盯著这行注释,忽然想起他今天在会议室里说的话。
“你只是想证明自己。”
她用力敲了一下删除键,把那行注释删掉了。
墙上的时钟指向十一点二十三分。办公区里只剩下她一个人,空调的嗡嗡声在寂静中被放大了无数倍。她站起来,想去茶水间倒杯水,经过走廊的时候看到对面的办公区域灯还亮著。
业务中台的办公区域。
隔著一面玻璃墙,她看到裴衍之坐在工位上,萤幕亮著,他在看什么东西。他的姿势和下午一模一样,连杯子放的位置都没有变。他好像一直没有离开过。
程司白站在走廊上,隔著玻璃墙看著他。
他没有发现她。他正盯著萤幕,眉头微微皱著,右手拇指按在键盘边缘——那是他思考时的小动作。他面前的文件夹还是鼓鼓的,但里面的纸好像少了一些,大概是被他抽出来反复看过了。
她站在那里看了大概三十秒。
然后转身走向茶水间。
倒水的时候她听到走廊上有脚步声。很轻,很稳,每一步的间隔都很均匀。她没有回头,但她知道是他。
脚步声在茶水间门口停了一下,然后继续往前走,越来越远。
她端著水杯回到工位的时候,走廊上已经没有人了。对面的灯还亮著,但他不在座位上了。
她坐下来,打开测试脚本继续写。
凌晨一点十七分,她把第一轮测试跑完了。结果比她预期中好——即使在最极端的网络条件下,Raft变体的吞吐量仍然保持在Paxos方案的百分之一百一十以上。她看著萤幕上的数据,没有高兴,也没有不高兴。只是觉得累。
一种从骨头里渗出来的、怎么睡都补不回来的累。
她趴在桌上,想闭一会儿眼睛。
手机震了一下。
她拿起来看。
屏幕上显示一个没有备注名的号码。但她认得那串数字。三年了,她换过两次手机,但这个号码一直没有删。不是刻意留著,是忘记了。对,是忘记了。
她点开消息。
“不是要证明自己。是我怕你的方案出问题,你又会像三年前一样,把所有责任扛在自己身上。”
她盯著这行字看了很久。
久到萤幕自动暗了,她又点亮,又暗了,又点亮。反反复复,像一个跳不出来的循环。
窗外的城市灯光在玻璃上晕开,变成一片模糊的光斑。办公区里只有她萤幕的光,照在她的脸上,把她的表情照得一片空白。
她想起三年前那个凌晨。
那是他们在一起之后第一次出故障。系统在凌晨两点崩了,她负责的架构层出了问题。她一个人通宵排查,找到Bug之后自己修、自己测、自己部署。裴衍之第二天早上来公司的时候,她已经把问题解决了,正趴在桌上睡觉。
他没有叫醒她。他把自己的外套盖在她身上,然后去看了她的程式码。看完之后他跟她说了一句话。
“你以后能不能不要一个人扛?你可以叫我一起。”
她说:“不用。我能处理。”
他没有再说什么。
后来又出了几次故障,每一次她都是一个人通宵,一个人解决。他每次都说“你可以叫我”,她每次都说“不用”。到最后他不再说了,只是在第二天早上给她带一杯咖啡,放在桌上,然后安静地走开。
她以为他理解了。
她以为他接受了她就是这样的人。
现在她才知道,他不是理解了,他是一直在等。
等她有一天会说“好”。
她把手机放在桌上,萤幕朝上。那条消息还亮著,每一个字都很清楚。
“我怕你的方案出问题,你又会像三年前一样,把所有责任扛在自己身上。”
她看了十分钟。
没有回复。
她把手机翻过去,萤幕朝下扣在桌上。然后打开电脑,找到那封写给唐嘉树的邮件草稿。
收件人:唐嘉树。
主旨:关于项目合作人更换的申请。
她把滑鼠移到草稿文件夹上,点了一下。
对话框弹出来:“确定要删除此邮件吗?”
她点了“确定”。
邮件消失了。
她关掉电脑,收拾东西,拎起公事包。经过走廊的时候,她没有看向对面的办公区域。但她知道那里的灯还亮著。
电梯到了一楼,门打开。大厅里很安静,保全在前台后面打瞌睡。她走出大楼,夜风吹过来,带著十一月的凉意。她站在大楼门口,抬头看了一眼。
十五楼的灯还亮著。
她看了大概五秒,然后低下头,走向地铁站。
手机在公事包里。她没有拿出来看。