首页 第18章

第18章

周六早上七点,陈渡被手机震醒。
不是闹钟。是连续三条微信。方旭发的。第一条:“赵工把时钟补偿配置项移植完了。”第二条:“凌晨四点跑完测试。”第三条:“他让我问林鹤——这个配置项能不能写进蜂巢的正式文档。不是Wiki。是代码仓库根目录的README。”
陈渡翻了个身。左脚踩在地板上,凉意窜上来。他打了几个字:“他为什么不自己问。”
方旭秒回:“他说不好意思。怕林鹤觉得他手伸太长。”
“他都在Issue区跟林鹤吵过零点二毫秒的事了。还有什么不好意思的。”
“那是技术讨论。这是改文档。不一样。赵工说文档是作者的领地。外人动README等于进别人家翻冰箱——能翻,但不礼貌。”
陈渡光脚走到门口。门垫上的塑料袋照例放着。今天的纸条压在豆浆杯底下,字迹比平时潦草,大概凌晨写的:
“赵工移植完了?让他直接提Pull Request。README可以改。——L”
陈渡把纸条翻过来。背面多写了一行:“他翻冰箱我不介意。冰箱里没什么好东西。”
他把包子咬开。今天换了韭菜鸡蛋馅。烫。舌头被烫了一下。
八点十分。手机又震。
余小舟在企业微信里发了条消息:“陈哥,信息中心那边今早收到一封邮件。发件人是**的一家数据公司——‘澜数科技’。问蜂巢的商用授权怎么申请。邮件抄送了郭远明。”
陈渡放下包子。“澜数科技。做什么的。”
“金融数据中台。规模不大。大概三十个人。创始人姓陆。”余小舟发过来一张邮件截图。截图里有一行字被高亮标黄:“我司技术负责人在GitHu*上看到蜂巢项目。代码架构与三年前接触过的某套商业系统思路相近。想确认贵司是否对外提供技术授权。”
思路相近。不是代码相似。措辞很讲究。
“郭远明怎么回的。”
“还没回。他转发给法务了。”余小舟停顿了几秒,“但澜数的技术负责人,名字我认识——陆知遥。以前在云舟待过。后来换了城市。去了**。”
陈渡盯着那三个字。陆知遥。云舟八个人里的后端开发。三年前散伙饭吃了两盘花生米。之后说要去**。临走之前把工位上的机械键盘送给了余小舟——那时候余小舟还没去星云,还在信息中心值夜班。
手机又震。这次是林鹤。
“澜数的邮件你看到了没。”
“刚看到。”
“陆知遥。他用了三年才找过来。比我想的慢。”林鹤发过来一个GitHu*截图。蜂巢的Issue区多了一个新帖子。标题是“关于商用授权的咨询”。发帖人:LuZY_dev。头像是一个深蓝色六边形——放大看,是当年云舟门牌上的那个logo翻拍的,颜色褪了一点。
帖子的最后一句:“我是陆知遥。云舟科技前员工。想问一下蜂巢的作者——这个项目能不能接商用授权。我们的客户需要一个干净的数据中台。你的架构我读了一周。跟当年那套东西不一样。但影子还在。如果方便,可否邮件联系。”
下面已经有了一条回复。林鹤发的。时间:今天早上七点零九分。
“可以商用。Apache 2.0协议无限制。不需要额外授权。”另起一行。“陆知遥,你的机械键盘还在余小舟那里。没坏。要的话寄给你。”
陈渡看着那段回复。Apache 2.0协议。不需要额外授权。技术问题一秒回。机械键盘的事他也记得。
他给林鹤发了条消息:“你记键盘的事比记协议条款还清楚。”
“键盘是Cherry青轴的。六百块。他攒了两个月的工资买的。”林鹤回得很快,“协议条款网上抄的。键盘是他自己挑的。”
九点整。张恒在企业微信里发了个链接。澜数科技的官网。页面简洁,没有花哨的动画。产品介绍那一栏写着:“澜数金融数据中台——轻量化、开源兼容、合规审计。”官网底部署名:技术负责人陆知遥。
“他用了开源兼容四个字。”张恒发了一条语音,“蜂巢还没正式发布商用版。他已经把自己公司的产品定位写成了‘开源兼容’。这等于提前**。”
陈渡点进官网的产品文档页。架构图画得干净。消息队列分片——五副本。容灾恢复时间——目标八秒。操作时间戳格式——国标兼容,毫秒补位。每一个指标都跟蜂巢对齐。不是巧合。是读了一周的代码之后重新画了一遍架构图。
“他读完蜂巢的代码只花了一周。”陈渡靠在椅背上,“三年没碰我们那套架构。一周就追上了。”
“不是追上。”张恒打完字停顿了一下,“他本来就会。只是三年没人跟他聊这个。”
上午十点。郭远明在企业微信里发了条消息:“澜数的邮件法务看过了。Apache 2.0协议不需要额外授权。商用无限制。我已经回邮件告知对方。同时抄送了蜂巢的公开邮箱。”
后面跟了一句:“陆知遥这个名字,你们谁认识。”
陈渡回:“前云舟员工。我的。”
“那就好解释了。他邮件里说的‘思路相近’——不是客套。是认出了代码里的东西。”
“他认出什么了。”
“消息队列分片的副本数默认值。你上次跟我说云舟当年用的是三副本。蜂巢改成了五副本。但代码注释里留了一行——‘原方案三副本。云舟时期方案。’”郭远明打字不快,一行一行往外跳,“陆知遥大概看到这行注释了。”
陈渡把手机放在桌上。那行注释是林鹤写的。三副本到五副本的改动,注释里留了云舟两个字。不是疏忽。是故意留的。等着有人读到。
中午十一点半。方旭在群里发了条消息。群名叫“别被抓到”。不是陈渡建的那个——是林鹤和余小舟和方旭三个人的。陈渡不在里面。
方旭把群聊截图发给了陈渡。林鹤在群里说:“陆知遥找来了。还差四个。下一个可能是**的另一个——沈言。他也在**。做前端。”
方旭回:“沈言的GitHu*账号三年没更新了。”
余小舟回:“不一定。有的人只看不写。我认识沈言。他以前说开源社区太吵。宁愿看代码不发言。”
林鹤:“那他会看蜂巢。看完会找到陆知遥。找到陆知遥就会找到我们。”
方旭:“你怎么确定。”
林鹤隔了几秒才回。“不确定。但他那年在散伙饭上喝多了。跟我说了一句话——‘下次再做中台,前端框架别用Vue了。用React。’他连前端框架都替我想好了。他会回来。”
陈渡退出截图。他打开手机通讯录,往下翻了好久。找到一个很久没联系的号码。备注名:沈言。最后一条消息是去年春节发的“新年快乐”。沈言没回。
他打了几个字:“蜂巢。GitHu*。你看了没。”
发送。没指望马上回。
结果沈言在十二秒后回复了:“看了。陆知遥上周发给我的。前端部分我看了两遍。路由懒加载那块还是老样子——林鹤写的前端永远比后端差半个档次。”
陈渡坐在工位上。食堂阿姨多给的麻婆豆腐还搁在桌上,凉了。辣油凝成一层薄皮。
他回:“你俩在**见过了。”
“见过。他在城西。我在滨江。隔了三十公里。上周他跑来找我,带了个移动硬盘。里面是蜂巢的全部代码。让我看前端模块。我看完说——林鹤这几年架构水平进步了。前端还是烂。”
“他前端的活一直是短板。”
“知道。所以我看的时候就在想——他会不会在README里加个Issue求前端优化。”沈言又发了一条,“果然。昨天他开了个新Issue。标题是‘前端路由懒加载需要优化。求贡献者。’没人回。我就注册了个账号。回了一句——‘React重写可以吗。’”
“他怎么说。”
“‘先把Vue版优化完再谈React。步子别跨太大。’——三年了,他说话还是这个调调。”沈言发了一个表情,系统自带的那个微笑。嘴角弧度是平的。“这个调调没变。挺好的。”
下午一点。陈渡把沈言的消息截图发给林鹤。
林鹤隔了很久没回。久到陈渡以为他去睡了。然后手机震了。回复只有两个字。
“他回了。”
“嗯。”
“他知道路由懒加载那块缺什么。别让他一个人改。让他找我。”
陈渡看着那行字。嘴角动了一下。打了两个字发过去。
“那你开Issue。”
“已经开了。标题——‘前端重构讨论。邀请沈言。’”
一点半。蜂巢的Issue区挂出了新帖子。林鹤发的。内容只有三段。第一段列出前端模块的八个优化点。第二段问沈言有没有空。第三段是最后一行——“Vue可以。React也行。你来定。”
评论区第一条。沈言的回复:“Vue先改。React下个版本。我今天晚上开始。改完提PR。你的代码风格检查太严格的话我就骂人。”
林鹤回:“随便骂。代码得对。”
赵工在下面插了一楼:“这个Issue是前端讨论。我后端就不掺和了。但林鹤——你前端确实烂。三年前就是。”
林鹤回复赵工:“你三年前没看过我前端代码。”
赵工:“看过。那时候星云抄你们产品,我负责审代码。后端抄明白了。前端我们重写了。”
林鹤:“你抄就抄。别告诉我。”
赵工:“现在告诉你是因为——你的前端水平配不**的后端架构。沈言来了正好。补短板。”
方旭在下面发了一个表情。系统自带的那个捂脸。圆圆的**脸上两只手捂着眼睛。
下午三点。陈渡坐在工位上翻蜂巢的Issue区。前端讨论帖已经盖了四十多楼。沈言贴了三个优化方案的草图。林鹤逐条回了。赵工偶尔插几句。方旭发了一串“+1”。陆知遥也出现了,在第三十七楼写了一行:“如果需要后端配合改接口定义,澜数这边我们可以接。反正业务还没那么满,腾得出手。”
Issue区的话题从技术讨论变成了人员分工。没有人提这是周末。没有人提加班费。没有人提产出KPI。几行的讨论串里,除了技术细节,就是“行”、“好的”、“交给你了”和“我试试”。
三点四十分。张恒从走廊那头过来,把手机放在陈渡桌上。屏幕上是林鹤刚更新的一条GitHu*动态。
“蜂巢贡献者名单更新。”
陈渡点开。贡献者那一栏多了一个名字:Shen Yan - 前端架构优化。
下面一行小字:“前云舟科技前端开发。三年没写代码。回来了。”
他往下翻。沈言的GitHu*头像是一张老照片。放大看,是当年云舟办公室的那个角落——窗边第二个工位。桌上摆着一盆快旱死的绿萝。
晚上七点。食堂刷卡机显示余额:3.00元。打菜阿姨给他舀了勺番茄炒蛋。又多扣了半勺***。
“阿姨。卡里没钱了。”
“月底。撑几天。下月一号就有钱了。”阿姨把餐盘推过来,“我看你天天加班。多吃点。”
陈渡端着餐盘坐下。手机又震了。
不是任何人。是他的手机银行扣款提醒。本月工资到账——扣除社保公积金,实发六千三百块。加上上月结余,一共六千三百四十七块零八毛。
他盯着余额看了几秒,打开**平台。搜索“皮鞋男款”。翻了几页。找到一双牛津鞋,头层牛皮,黑色,三百二十块。加入了购物车。然后想起林鹤给的那三万块和一百二十块利息还放在抽屉里,他一分没动。
他把皮鞋从购物车**。重新搜了一下,找到了同一家鞋店的一双防滑拖鞋。厚底,灰色,三十八块。选了四十二码。
提交订单。给林鹤发了一条消息。
“抽屉里那三万零一百二十块——我补你一双鞋。三十八块的拖鞋。比那双蓝色塑胶的好。别穿凉鞋了。冬天冷。”
隔了半分钟。林鹤回:“那双蓝色的是你的。我穿了一年还给你。”
“那就买新的。”
“为什么不是皮鞋。”
“你先学会穿拖鞋别光脚再说皮鞋。”
对面隔了更久。最后发过来一行字。
“买两双。”
“成交。”
晚上九点。陈渡走到五零二门口。手举起来,没敲。从裤兜里掏出钥匙。
他自己那间五零一的钥匙。跟林鹤上周放在脚垫底下的五零二的钥匙——形状一样,锁芯一样。同一栋老楼,同一个房东,同款防盗门。
他把钥匙***。锁舌弹开了。门没锁。
屋里灯开着。林鹤坐在地上,背靠床边,笔记本搁在膝盖上。屏幕的光映在他脸上。没扎头发,散在肩膀上。脚上穿着一双蓝色塑胶凉鞋。陈渡那款。鞋底磨薄了。
“你门没锁。”
“等你。”林鹤把笔记本合上,“我听见你过来了。皮鞋走路的声音我听了十三个月。不会认错。”
陈渡从塑料袋里把那双新买的防滑拖鞋倒出来。灰色。鞋底有一圈防滑纹。塑料袋在王姨便利店买的,三毛一个。
“穿。”
林鹤看着那双鞋。手伸过去,拿起来翻过来看鞋底。防滑纹路是波浪形的。
“你说你那双底太硬。这双软的。”陈渡在他床边的地上坐下。**石地板,凉意隔着裤子透上来。“三十八块。不贵。”
“你说买两双。”
“那双在快递路上。同款。四十三码。”
林鹤低头换鞋。脚从旧凉鞋里抽出来,光脚踩在**石地面上。然后把防滑拖鞋套上去,踩了两下。鞋底软,踩在地面上没声音。
他站起来走了两步,没声音,脚感是软的。走了两步。然后开口了。语调没变,像在说一个技术参数。
“鞋底软和。十七步外你听不见我过来了。”
陈渡靠在床边。“不用听。五零二的门没关过。”
“你怎么知道。”
“走廊声控灯。十点半之前你门缝底下都有光。灭灯时间比我晚。有时候凌晨一两点还亮着。”
林鹤坐回地上,拧开水龙头接了两杯凉水,递了一杯过来。手指上有创可贴。不是受伤。创可贴下面鼓起来的形状是方方正正的小块——大概是个U盘。微型的那种。贴在手指上以防弄丢。
两个人靠着床沿坐在地上。窗户开着半扇,晚风灌进来凉飕飕的。巷子里**摊今天没出。安静得只剩下水龙头隔几秒滴一滴的声音。
“沈言开始改前端。路由懒加载那块他说先拆成三个异步模块。”林鹤先开口了,声音低了些,没那么绷着了,“拆完之后首屏加载能快一点二秒。我问他要不要帮忙。他说不用。让我专心写后端的监控告警。”
“监控告警模块写了多少。”
“一半。邮件通道通了。短信通道还在调。***那边接口改了。文档没更新。”林鹤把创可贴从手指上撕下来,微型U盘放在床头柜上,“方旭说今晚帮我测短信告警。”
“他周末不休息。”
“他不休。他说试运行下周结束,告警模块要赶在结束之前上线。不然试运行结束之后的运维交接会缺东西。”林鹤端起水杯又放下,“他开始主动赶进度了。半年前在地下室,每天只做最低限度的事。”
“半年前你的地下室还没有机柜。”
“嗯,那时候只有一台旧服务器和一个路由器。他给我带泡面。我给他看代码。”林鹤把创可贴重新贴回手指上,“现在他在星云,工作之余帮蜂巢做测试、回用户消息,没有加班费。他还跟赵工商量好,每周三下班后一起讨论改进点。赵工说这个会不算加班,算兴趣小组。”
“你的兴趣小组。星云的赵工。方旭。余小舟。沈言。陆知遥——”陈渡把杯子放在地上,“六个人。还差两个。”
“剩下两个不在**。一个在北京,一个在**。”林鹤说,“北京的叫宋知渔。做运维的。**的叫纪鸣。做测试。宋知渔去年给我发过一封邮件。说在北京一家云服务商做运维。忙得没空看手机。纪鸣没消息。不知道他还在不在这个行业。”
“宋知渔还回你邮件。”
“回了。标题是‘收到’。正文是‘有空再联系’。总共八个字。运维的风格。”
陈渡站起来。床头柜上微型U盘旁边搁着那张照片。三年前云舟开业那天拍的。他拿起来翻到背面。那行字还在——“如果你看到这个,说明我还没跟你绝交。”
“这句话你是什么时候写的。”
“搬进五零二的第一天。”林鹤把杯子放在地上,“那时候不知道你会不会发现我在隔壁。也不知道你发现之后会什么反应。”
“你猜我会什么反应。”
“我猜你会敲门。然后站在门口骂我一顿。说我这三年不联系是**。”他把拖鞋套上。走了两步。鞋底摩擦地面的声音轻到几乎听不见。“你没骂。”
“你没道歉。”
“嗯。扯平了。”
窗外的风停了。巷子里安静了一阵。远处传来电动车报警器的蜂鸣,响了大概五秒就停了。
林鹤站起来走到窗边。他望着对面楼黑掉的窗户开了口。语调还是那种不咸不淡的技术讨论调子,但每个字都咬得很稳。
“你入职嘉和之前。我最后一次在隔壁听你走路是周五晚上——跟今天一样是周五。你回来得比平时晚,大概十二点。脚步声比平时重。我猜你那天跑了一天网约车。脚疼。”他停了一下,“我在隔壁坐着。手里有一双新凉鞋。想放到你门口。又怕你发现是我放的。最后没放。第二天我把鞋扔垃圾桶边上了——王姨捡走了。”
陈渡靠在他旁边的墙上,听着。没插话。
“后来余小舟跟我说在嘉和看见你的时候,我在仓库里坐了一整晚。方旭以为我病了,问我去不去医院。我说不去。他问那你在想什么。我说在想一件事——这一次要不要提前把鞋放过去。”
他从窗台上把手放下来。转过头。
“放了。你拿到了。”
陈渡把手里的杯子放在地上,站起来。
“拿到了。那双凉鞋——是你买的。”
“嗯。”
“那双是几码的。”
“四十二。试过你的旧鞋。在门口。你睡觉的时候。”林鹤把拖鞋套上,走了两步。鞋底摩擦地面的声音轻到几乎听不见。“这次不用试。三十八块那双买大了。这双正好。”
陈渡往门口走。手放在门把手上。回头看了一眼。林鹤穿着那双灰色拖鞋站在屋里。蓝色塑胶凉鞋搁在床边。鞋底磨薄了,鞋面上有**市场的灰。
“周一试运行结束。监控告警模块上线。前端优化提第一个PR。贡献者名单再加三个名字——沈言、陆知遥、方旭。”陈渡拉开门,“然后你署名的事——改不改。”
“改。”林鹤把微型U盘从手指上撕下来,放在床头柜上,“试运行结束那天改。”
陈渡站在门口。走廊声控灯亮了。黄光打在**石地砖上。
“好。”
他带上门。回到五零一。把皮鞋脱在门口。光脚踩在地板上。窗帘没拉。霓虹灯的光透过玻璃照进来,红蓝交替。
桌上那盒胃药旁边多了一样东西——一把钥匙。银色。新的。上面贴着一小条白色医用胶带。胶带上有几个字。字迹潦草。
“五零二的备份钥匙。不用翻脚垫了。——L”
他把钥匙放进裤兜里。手机在床头震了一下。
林鹤的消息。没有文字。发了一张GitHu*截图——贡献者列表。现在有两行:一行是作者的“Lin He”,一行是“Shen Yan - 前端架构优化”。后面空着四个位置。再往下还有一行新字,状态是“待添加”,名字是“Lu Zhiyao - 商用适配与接口测试”,状态栏写着:等待首次PR合并后添加。
截图下面有一句话。
“四个位置。留给宋知渔、纪鸣、方旭、赵工。”
陈渡回了两个字。
“够了。”
他把手机扣在枕头旁边。闭上眼睛。隔壁五零二拖鞋走在地板上的声音轻轻响了两下,然后灭了灯。走廊声控灯也灭了。整栋楼安静下来。

==>戳我阅读全本<===

设置
手机
书页