第6章

更新时间:2026-02-10 06:42:19

最下面是核心引擎层。

调度算法。数据处理管线。索引系统。负载均衡的核心策略。

这一层,是我在2015年写的。十年来陆陆续续迭代了几百个版本。

这一层的代码——

从来没有提交到公司的Git仓库。

公司仓库里有一个叫"core-engine"的仓库。里面有什么呢?

一个README文件。

几个接口定义文件——.proto文件,gRPC的接口描述。

还有一个/lib目录,里面放着编译好的二进制文件——.so文件。

所有上层服务调用核心引擎,都是通过gRPC接口调用这些二进制文件。

没有人看过这些二进制文件的源代码。

因为源代码不在那里。

源代码在我的本地。在我自己的笔记本电脑上。在三个加密的移动硬盘里。

每次核心引擎需要更新,都是我在本地编译好,把新的。so文件替换到服务器上。

这个流程,十年来没有变过。

为什么没有人质疑?

因为没有人在意。

核心引擎是一个黑盒子。它工作正常,输入数据,输出结果,性能稳定。上层开发只需要调用API就行了。

贺鹏来了之后,做过一次代码审计。审的是服务层和业务层。

核心引擎?

“这块是建明负责的嘛,他在就行了,不用审。”

他自己说的。

在管理会上说的。

因为他打开那些。so文件也看不出什么。他需要源代码才能审。但他不知道源代码不在仓库里。

他从来没点开过那个仓库看一眼。

或者他点开了,看到一个README和几个接口文件,以为源代码在某个子模块里,懒得深究。

不重要了。

我坐在家里,打开了那个仓库的提交记录。

最后一次提交:2019年3月17日。张建明。“初始化项目结构。”

五年了。

五年没有任何提交。

如果有人认真看一眼——哪怕只是看一眼——就会发现,这个支撑着整个系统的核心模块,在公司的代码仓库里只是一个空壳。

但没有人看。

我关掉电脑。

坐了一会儿。

给老马打了个电话。

“马哥,你下午有空吗?出来坐坐。”

“行。在哪?”

“老地方,楼下那个苍蝇馆。”

下午三点,我和老马坐在苍蝇馆里喝啤酒。

老马比我大两岁。工号005。做了八年测试总监。

去年,贺鹏把测试团队“扁平化”了。测试总监这个岗位取消,老马变成了普通的高级测试工程师。

降级。

老马没闹。他老婆刚查出甲状腺结节,正在治疗。他不能丢工作。

“想好了?”我问他。

老马看着我。

他太了解我了。坐了八年对面工位的人。

“你想走?”

“嗯。”

他喝了口酒。

“早该走了。”

“你呢?”

“我再撑撑。等我老婆那边稳了。”

我点了点头。

“建明,”老马放下杯子,“你走之后,核心引擎那块……”

他没说完。

我看着他。

他也看着我。

然后他笑了。

“行,我不问了。”

我们碰了一下杯。

回家以后,我打开我的三个加密硬盘,把所有核心引擎的源代码做了一次完整备份。

三份备份。一份放家里保险柜。一份放银行保险箱。一份上传到我的私人云盘,加密。