跳转至

第十八章 · 这个人是谁

九月二十一日,星期一,上午九点。

纪衡上周五的回复还挂在收件箱第一封:「收到。方案可以。分区方案周一前提交。」今天是周一。分区方案在陈稳的草稿箱里躺了三天,一千二百字,一个字没改,也没发。

对账模块数据校验的 MR 上,三个 reviewer,两个通过,第三个留了一句:「跨天时间窗口的边界条件,请确认。这个问题不解决,合进去会有异常。」22:00-02:00 这种写法,顾源半年前在电梯里问过他一次,他当时加了一条 TODO,加完就忘了。现在这条 TODO 变成了别人的 review 意见。他改了两行,重新提交。连接池使用率百分之四十三。

他顺手翻了 settle_transaction_log 的归档脚本执行日志。九月十八日凌晨那一次之后没有再跑过。触发方还是 10.14.1.88,营销技术部测试环境的 DHCP 地址,那天二十一点三十分分配出去,二十二点整回收。这个时间段里,谁用了这个地址,DHCP 日志没有记。他把这一条抄进记事本,抄在上一次那条下面,两条之间隔了四天。

上午十点,一条消息进来。

「十一点,三楼会议室,数据治理项目汇报。你过来。」

是易文。

记事本里关于这个项目只有一行:数据治理,三个视图,六十八行 SQL,统一四十二个字段。视图是他和易文在二号楼直接在库上建的,没走 MR。所以恒澜任何一份提交记录里,都没有他的名字。

会议室里七个人。易文在最前面,旁边一个人,灰色衬衫,戴眼镜。周其正在对面,蒋辉在侧边。

陈稳的位置在最后一排靠墙。他没有电脑,没有 PPT。

易文讲了十五分钟,中间没有停。三个表结构不一致,字段名不对齐,一百多个字段压缩到四十二个。有一页 PPT 的标题是「数据治理底层实现」,最下面一行小字:「数据加载与字段对齐——陈稳」。

这一页陈稳没有见过。易文做完 PPT 从来不发给他。

灰色衬衫的人开口。

「数据加载的接口,支持批量查询吗。」

「支持。按时间范围、商户 ID、对账类型批量查询。」

「谁写的。」

「陈稳。结算组的。」

灰色衬衫的人低头在笔记本上写了两个字,写完把笔帽扣上。

会议散了,七个人往门口走。陈稳的椅子推开了一半。

「你等一下。」易文说。

会议室里剩下两个人。

「那个人是谁。」

「纪衡的老板。技术 VP。」

这个位置陈稳只在纪衡三个月前画的那张组织架构图上见过。最上面一个框,框里没有名字,只标了一个数字:九十二万笔。

「他问了你两次。」

「他问的是接口。」

「他问的是接口能不能推广。你的名字已经在他笔记本上了。」

「你的方案,他看到了。不是因为你写了什么,是因为我引用了你的名字。」

「回去写一个方案,把数据治理的底层逻辑写清楚,明天发给我。」

「好。」

「不是发给我的。发给纪衡。抄送周其正。」

这两个名字上一次同时出现,是在蒋辉那张项目资源表里。负责人一栏写周其正,技术依赖项一栏写陈稳。

「你那个分区方案,纪衡回复了什么。」

「方案可以。周一前提交。」

「你提交了吗。」

「没有。」

「为什么。」

「他说周一前提交。今天才周一。」

易文的指甲在桌面上敲了两下。「你提交了,他会看到。你等到最后一天,他记不住。你早上提交,他下午开会的时候就能用。」

分区方案十一点四十分发出去,改了两个错别字,正文一行:分区方案已提交,请查收。

纪衡没有回复。

下午两点到五点,陈稳写数据治理的底层方案。一千八百字,四部分:表结构差异、字段映射规则、三个视图的加载路径、清洗后的空值率。他检查了一遍,保存,没有发。

晚上七点,食堂的饭端回工位,菜是凉的。他吃了一半,剩的倒掉,把碗洗了。

连接池使用率百分之三十八,比早上低五个点。九月十七日凌晨那次是百分之九十六,这个数字他记得。

对账模块的代码里有一条 TODO,是他自己八月加的:重构,T+1 到 T+0。他没有改。

晚上九点,地铁上,易文的消息。

「方案看了。可以。明天发给纪衡,抄送周其正和蒋辉。」

「好。」

「纪衡的老板问了我一个问题。他问:'那个叫陈稳的,是做什么的。'」

陈稳在恒澜十一个月。这句话是第一次有人转述给他听。

「我说了。他是做结算系统核心链路的。对账模块是他写的。拦截器是他写的。数据治理的底层字段对齐是他做的。」

「他问:'这个人之前怎么没听说过。'」

「你怎么说的。」

「我说:'他不说。'」

三个字。陈稳把这三个字读了两遍。他想起七月十五号那封复盘,三千一百字,草稿箱里躺到今天。

「你明天发方案的时候,正文不要只写一个'方案'。写一段话,把内容概括一下。他看了你的方案,不一定记得住你。但他看了你的正文,会记住你是一个会写摘要的人。」

这条他没有回。

到家十点十分,客厅的灯没开。他把数据治理方案调出来,又开了一个空文档,写了三行,删掉,重新写。

「营销结算数据治理——降低对账异常率至百分之二以下。当前进度:三表字段已对齐,视图已建立,数据清洗中。预计完成时间:十月末。」

保存,关掉。

星期二,上午九点。

方案发出去了。正文是昨晚那两行。收件人:纪衡。抄送:周其正、蒋辉、易文。

按发送之前他停了三秒,把抄送里易文的名字拖到最末位。

上午十点,纪衡的回复。

「方案收到。数据治理的底层字段对齐,你用了多久。」

这是纪衡第一次问他工作量。他回:「三个视图,六十八行 SQL,一天。」

纪衡没有回复。

下午两点,一条陌生消息。

「陈稳你好,我是周其正,营销技术部的。数据治理项目,我这边有几个问题想请教一下。」

周其正在蒋辉那张资源表里排第一行。他和陈稳这一年没有说过一句话。

他回:「方便。什么问题。」

「三个视图的字段映射规则,你写在哪里了。」

「在方案里。第四页。」

「好。我看看。」

下午三点,蒋辉端着杯子在陈稳工位旁边停下。

「周其正找你了?」

「嗯。」

「问什么了。」

「字段映射。」

蒋辉把杯子放在桌角。「数据治理那个项目,之前在我们组挂了两个月,没有人接。易文接了,你帮她做了底层。现在周其正来找你问问题,你知道这意味着什么吗。」

那两个月里,这个项目的名义负责人是蒋辉。周会材料上写过两次「资源待协调」。这件事陈稳知道,蒋辉也知道。两个人都没提。

「意味着你在这个项目里,不再是'依赖项',你是'关键路径'了。」

「关键路径有什么不一样。」

「依赖项延期,别人骂你一句。关键路径延期,整个项目的时间表要改。」蒋辉说,「你以后排期要留缓冲。」

这句话是对的。陈稳的时间表里没有缓冲。

蒋辉端起杯子。桌角留了一个水圈。

陈稳在记事本里写了一行:周其正问字段映射。蒋辉说我是关键路径。

下午四点,易文的消息。

「纪衡的老板又问了一个问题。他问:'三个视图的字段对齐,是他一个人做的吗。'」

「你怎么说的。」

「我说是。他说:'这个人可以。'」

三个视图里,第一个的框架是易文搭的,陈稳填了四十二个字段的映射。易文说「是」的时候,把那个框架一起算给了他。

「你知道这意味着什么吗。」

「不知道。」

「意味着你在这个公司,终于有第二个人知道你的名字了。第一个是纪衡。第二个是技术 VP。第三个是谁,你自己决定。」

这条他也没有回。

下午四点到六点,他写对账模块重构的初步方案,一千五百字,三部分。保存,没有发。记事本上多了一段:

「对账模块重构。当前:逐笔比对,T+1。目标:T+0 实时对账。方案:事件驱动,消息队列,增量比对。预计两个月。」

然后他另开一个文档,把这段翻译成能放进邮件正文的话。

「结算对账模块重构方案:当前对账基于逐笔比对,时间窗口为 T+1,无法覆盖当日异常。方案将引入事件驱动和增量比对机制,将时间窗口缩短至 T+0,预计异常发现时间从次日缩短至分钟级。」

保存,没有发。记事本最后一行:对账模块重构方案已写,暂不发。等时机。

星期三,上午九点。

纪衡的会议邮件:数据治理项目——周三下午两点,三楼会议室,技术 VP 参加。

上午十点,易文的消息。

「下午的会,你来讲。」

「讲什么。」

「讲你的方案。那一千八百字,分五页 PPT。你讲十五分钟,留十分钟回答。」

「我来讲?」

「对。上次你讲给纪衡听,这次你讲给纪衡的老板听。不一样。」

「哪里不一样。」

「纪衡会问你花了多少钱。他会问你这个东西还能用在哪。」

两个小时做完五页:背景、数据现状、字段对齐、三个视图、下一步。发给易文。

十分钟后回复来了。

「第一页太长,删一半。第二页数字不够,加空值率分布。第三页的字段对齐表画成对比图。第四页 SQL 太长,只留核心逻辑。第五页可以。」

改了三遍,易文说可以。

下午两点,三楼会议室,六个人。纪衡在最前面,旁边是技术 VP。周其正在对面,易文在侧边,蒋辉在后排。

陈稳打开 PPT,开始讲。

十五分钟。三个表结构不一致,字段名不对齐,空值率超过百分之三十的列有七个。三个视图,六十八行 SQL,统一四十二个字段。目标异常率降至百分之二以下。

他讲完,会议室静了几秒。

技术 VP 先开口。

「三个视图,你一个人写的?」

「是的。」

「用了多久。」

「一天。」

技术 VP 在笔记本上记了一个数字。

「你写视图的时候,有没有考虑过性能。三个表的数据量不一样,你把三个表 join 在一起,数据量大的时候会不会有问题。」

「有。订单表当前约两百万行,支付表约一百五十万行,退款表约三十万行。当前数据量下查询在五十毫秒以内。如果数据量翻十倍,需要引入中间表重新设计。」

「翻十倍要多久。」

「以当前增速,大约三年。」

笔尖又落下一次。

「你做的对账模块数据校验,也是你一个人写的?」

那个 MR 一百二十行,上周合的。技术 VP 不在收件人里,也不在 reviewer 里。

「是的。」

「校验规则是什么。」

「字段类型校验、空值率校验、主键唯一性校验。」

「覆盖率。」

「当前百分之六十。目标百分之百。」

「剩下的百分之四十是什么。」

「跨表关联的一致性校验。订单表一条记录对应支付表零到多条,退款表零到一条。这三者数量关系的校验规则还没写。」

「为什么没写。」

「规则要跟业务确认。我还没找到能确认的人。」

技术 VP 合上笔记本。

「方案可以。执行。」

门在他身后合上。纪衡跟出去,周其正也跟出去了。

会议室里剩下陈稳、易文、蒋辉。

「你做到了。」易文说。

「什么。」

「你说完了。他没有打断你。」

蒋辉在后排收电脑,动作停了一下,然后拉上包的拉链。

「你被看见了。」易文说。

连接池使用率百分之三十五。记事本上一行:九月二十四日,星期三,下午两点,技术 VP 参加方案评审。我讲了十五分钟。没有被打断。

下午五点,又是一个陌生人的消息。

「你好,陈稳。我是数据平台组的,我叫张磊。技术 VP 让我联系你,说数据治理项目的底层对齐方案可以推广到其他业务线。方便的话,我明天上午过来找你聊一下。」

记事本上还留着易文昨天那句话:第三个是谁,你自己决定。

他回了一个字:「好。」

他没有告诉易文。

下午六点到八点,他写对账模块重构的详细方案,三千字,五部分。保存,没有发。记事本最后一行改成:对账模块重构方案已写。明天发。

晚上九点,何晚的消息。

「今天下班早。」

「回来吃饭吗。」

「好。」

到家的时候何晚在厨房。听到门响,她没有回头。

「回来了。」

「今天晚上吃什么。」

「面。」

面下锅之前,陈稳一直站在厨房门口。何晚把面捞出来,一勺酱油,一勺醋,端到桌上。

面是热的,汤咸。他全部吃完。

「你今天怎么了。」

「没什么。」

「你看起来不一样了。」

「哪里不一样。」

「说不出来。你以前回来,不会站在厨房里看我煮面。」

他确实以前不站。以前他一进门就打开电脑。上个月有一次何晚问他吃不吃饭,他答了一句「等一下」,等到十一点半。

「今天在公司,发生什么事了。」

「我做了一个汇报。技术 VP 参加了。他没有打断我。」

何晚把筷子并齐,放在碗上。「那挺好的。」

「你不是一直想做这种事吗。」

「是。」

「那你为什么看起来不高兴。」

「我不知道。」

「你以前不高兴,会说累。今天你说不知道。」

这句话陈稳没有接。

何晚收了碗筷,水龙头开到最大。水声盖住了别的声音。

洗完最后一个碗,她关水,转过身,看见陈稳还在厨房门口。

「你干嘛。」

「没什么。」

「你今天真的很奇怪。」

「可能是累了。」

她擦干手,从他身边过去,在客厅拿起手机。

易文的消息又来了。

「张磊找你了?」

「找了。」

「你怎么说的。」

「我说好。」

「你知道这意味着什么吗。」

「知道。」

「意味着你的方案,不再是结算组的方案了。是公司的方案了。」

「你还记得你之前写的那三页接入方案吗。你写完了,没有发出去。」

「记得。」

「你今天发了。然后有人来找你了。」

「你现在知道,写了要说,这件事有多重要了。」

他没有回。

天花板上那道裂缝从角落一直伸到中间。物业说,不影响结构。他第一次看见它是十一个月前,搬进来的第一天。

「你明天早上想吃什么。」何晚在旁边说。

「粥。」

「好。」

他没有睁眼。卧室的门关上了,门锁咔嗒一声,不是锁上,是关上,没有锁。

对面那栋楼,那扇窗还是黑的。

记事本最后一行:九月二十四日。被看见了。但不确定这意味着什么。

保存的时候,邮件提示跳出来一封新会议邀请,发件人纪衡:

「对账模块重构方案技术决策会——周四上午十点,三楼会议室。参会:架构组顾源。」

他把这封邀请点了接受,然后把那份三千字的方案又打开,从第一页开始读。


← 第十七章 凌晨三点 · 目录 · 第十九章 三句话 →