我,一个顶级程序员,穿成了大景朝一个卑微的假太监,季从云。本想苟着活命,
却发现年轻的女帝萧元君,就是个被权臣架空的傀儡CEO。整个王朝,
在她眼里是一盘复杂的棋局。在我眼里,却是一个漏洞百出、亟待重构的垃圾系统。
国库账目乱?那是数据库冗余,得做个数据清洗。政令不出宫?那是中间件堵塞,
得优化API接口。权臣结党营私?那是权限管理混乱,得重设访问控制列表。
他们跟我玩心机,我跟他们讲逻辑。他们跟我玩权谋,我跟他们讲算法。
当宰相赵思贤拿着所谓的铁证,在朝堂上逼宫时,我只是默默拿出我的算盘和账本。
不好意思,你的证据链里,有一个致命的逻辑死循环。现在,由我这个程序员,
来给你们这些古人,上一堂名为“降维打击”的课。1我叫季从云,醒来第三天,
我确定了一件事。我,一个996的程序员,穿了。穿成了一个假太监。地点,大景朝,
皇宫,浣衣局。身份,一个三个月前被送进宫,准备净化“秽气”,给新帝冲喜的倒霉蛋。
结果喜没冲成,新帝驾崩了,太子女扮男装的身份暴露,被推上了皇位。
成了大景朝开国以来第一位女帝,萧元君。而我,就这么不上不下地卡在了宫里。真的,
物理意义上的“不上不下”。还好,检查我身体的那个老太监眼神不好,又急着收钱,
给我盖了个“合格”的戳。不然,我面临的第一个技术难题,就是如何给自己的身体硬件,
做一个不可逆的物理删除操作。此刻,我正跪在冰冷的石板上,
用手搓着一件绣着金龙的袍子。水很冷,手已经没了知觉。旁边一个叫小春子的太监,
一边搓,一边压低声音跟我说话。“从云,机灵点,待会儿见了赵总管,千万别抬头。
”“他问什么,你就答什么,多一个字都别说。”我嘴里“嗯”了一声。
脑子里却在飞速运转。这三天,我像一块干瘪的海绵,疯狂吸收着这个世界的信息。
这个皇宫,或者说这个王朝,在我看来,就是一个代码写得稀烂的系统。最高权限用户,
也就是女帝萧元君,只有名义上的root权限,实际上手里的令牌全是假的。
真正的超级管理员,是当朝宰相,赵思贤。他和他手下那帮大臣,
就是一群后门程序和流氓软件,占据了系统绝大部分的运算资源。而我们这些太监宫女,
就是系统里最低级的进程,随时可能因为系统资源不足,被强制关闭。小春子嘴里的赵总管,
就是宰相赵思賢安插在宫里的一个木马程序,专门监控女帝。“行了,都起来吧,
赵总管来了。”一个尖利的声音响起。我跟着小春子他们站起来,低着头,
眼角余光看到一双黑色的官靴停在我们面前。“哪个是季从云?”那个声音问。
我心里咯噔一下。一个最低级的进程,怎么会被木马程序点名?出bug了。“奴才在。
”我往前挪了一小步,头埋得更低了。“抬起头来。”我慢慢抬头。一张白净无须的脸,
看着也就三十来岁,眼睛像鹰一样,死死盯着我。这就是赵总管,赵全。他看了我几秒钟,
突然笑了。“长得倒还算周正。识字吗?”“回总管,在乡下时,跟先生读过几年书。
”我老实回答。这具身体的记忆告诉我,他确实是个落魄书生。“很好。”赵全点点头,
“浣衣局不需要识字的。陛下身边缺个研墨的,我看你就不错。”他这话一出,
周围响起一片倒吸冷气的声音。小春子的脸都白了。去陛下身边当差,那是天大的恩宠。
但这恩宠是赵总管给的,那就不是恩宠,是催命符。谁都知道,女帝萧元君的日子不好过。
宰相赵思賢巴不得她早点死,你好我好大家好。过去三个月,她身边换了七八个贴身太监。
两个“失足”落水,三个“误食”毒点心,还有两个干脆就人间蒸发了。现在,轮到我了。
我瞬间就明白了。这哪是去研墨,这是把我这个进程,直接丢到CPU核心旁边,
一旦系统过热,第一个烧毁的就是我。这是一个死局。拒绝,当场就会被赵全找个由头打死。
接受,不出十天,我就会成为第八个失踪人口。我的大脑开始疯狂运算,分析所有可能性,
寻找代码里的漏洞。“怎么?你不愿意?”赵全的语气冷了下来。周围的空气都好像凝固了。
我深吸一口气,再次抬头,看着他。这一次,我没有表现出害怕,反而挤出一个有点憨,
又有点受宠若惊的笑容。“愿意!奴才当然愿意!谢总管提拔!”我一边说,
一边重重地磕了个头。额头撞在石板上,发出“砰”的一声。再抬起来时,已经是一片红肿。
赵全很满意我的反应。在他看来,我就是一个被突如其来的好运砸晕了头的蠢货。
“算你识相。收拾一下,跟我走吧。”他转身,带着我离开了浣衣局。
小春子他们看着我的眼神,充满了同情和怜悯。我跟在赵全身后,低着头,嘴角却微微向上。
他们都以为我进了死局。但他们不知道,程序员的天职,就是在看似无解的代码里,
找到那个能让整个程序活过来的唯一解。去女帝身边,确实危险。但留在浣衣局,
我这个最低级的进程,迟早也会被系统清理掉。两害相权取其轻。更重要的是,
只有靠近核心,我才有机会接触到这个系统的源代码。赵思贤,你这个巨大的bug。我,
季从云,来给你做代码审查了。2养心殿。听起来是个好地方,实际上比浣衣局还要冷。
殿里很空,没什么多余的装饰,显得冷冷清清。一个穿着龙袍,但身形看起来很单薄的女孩,
正坐在书案后批阅奏折。她就是萧元君。我们大景朝的女皇帝。
她看起来也就十六七岁的样子,脸上还有点婴儿肥,但眼神却异常平静,甚至有些……空洞。
像是服务器的指示灯,虽然亮着,但没有任何数据在传输。赵全把我带到她面前,躬身行礼。
“陛下,奴才给您挑了个研墨的。叫季从云。”萧元君连头都没抬。“放那吧。
”她的声音和她的人一样,没什么温度。赵全给我使了个眼色,我赶紧走到书案旁,
拿起墨锭,开始在砚台里慢慢地磨。我不敢看她,只能看着墨锭在我手里一圈圈地转。
整个大殿里,只有我磨墨的沙沙声。赵全没有走,就那么站在殿中,像一尊雕像,
也像一个监视器。我明白了,他是在用这种方式告诉女帝:你的一举一动,
都在我的监控之下。大概过了一炷香的时间,萧元君终于放下了手里的朱笔。她抬起头,
看向赵全。“赵总管还有事?”“奴才没事,就是担心陛下劳累。”赵全笑眯眯地说。
“朕不累。你退下吧。”“是。”赵全躬了躬身,退了出去。他一走,
我感觉大殿里的空气都流通了一点。萧元君的目光,落在了我身上。那是一种审视的目光,
像是在检查一段新写入的代码。“你叫季从云?”“是,陛下。”“赵全送来的人?”“是。
”她沉默了。我能感觉到,她的不信任,像一堵墙,横在我们之间。也是,
对于一个傀儡CEO来说,任何一个由竞争对手公司派来的员工,都可能是商业间谍。
她拿起一本奏折,丢在我面前。“你识字,给朕念念。”我拿起奏折。是户部尚书写的,
关于今年秋收后,各地粮仓的储备统计。上面密密麻麻全是数字,看得人头大。
我清了清嗓子,开始念。“户部尚书陈景明奏,本年秋收,全国共计收粮……”我念得很慢,
很清晰。但念着念着,我停住了。“怎么不念了?”萧元君问。“陛下,这奏折……有问题。
”我小声说。我说完就后悔了。我疯了?我一个新来的进程,凭什么去质疑系统的核心数据?
萧元君的眼睛眯了起来。“哦?有什么问题?”我死死地盯着奏折上的数字,大脑飞速运转。
这些数字太多,太乱了。但在我眼里,它们自动组成了一张张数据表。
我看到了一个极其明显的逻辑错误。“陛下,这上面说,江南三州,今年风调雨顺,
粮食大丰收,总产量比去年增加了三成。所以上缴国库的粮食,也比去年多了三成。
”“这不对吗?”“不对。”我摇摇头,指着奏折上的另一处。“这里写着,
为了转运这批粮食,户部雇佣了五千名民夫,调用了八百艘漕船,耗时两个月才运到京城。
”我抬起头,看着她。“陛下,问题就在这。去年江南也丰收,产量只比今年少三成,
但户部只用了一千民夫,两百艘船,一个月就运到了。”我顿了顿,说出了我的结论。
“产量只增加了三成,但运力却增加了四到五倍,时间还多了一倍。这不合逻辑。
”“这就像……一个程序,只是多处理了30%的数据,运行时间却慢了200%,
资源占用还翻了五倍。这说明,程序本身有巨大的问题,或者,输入的数据,是假的。
”我说完,大殿里一片死寂。萧元君死死地盯着我,眼神里第一次有了波动。
那是一种混杂着震惊、怀疑,还有一丝……亮光的情绪。她肯定听不懂什么程序、数据。
但她听懂了我的核心意思。账目,是假的。过了很久,她才开口,声音有点干涩。
“你的意思是,户部尚书陈景明,在奏折上撒了谎?他虚报了粮食产量?”“奴才不敢妄言。
”我低下头,“奴才只是觉得,这些数字,对不上。”她拿起那本奏折,又看了很久。然后,
她做了一个让我意想不到的动作。她把奏折递给了我。“这上面的数,太乱了。你,
给朕重新算一遍。把所有州府的产量、运力、时间,都给朕列出来。朕要看,
到底还有多少地方,是‘对不上’的。”我愣住了。她这是……给我授权了?一个新来的,
身份可疑的进程,她居然愿意让我去访问核心数据库?我看着她。在她的眼睛里,
我看到了一个CEO在面对公司即将破产时的绝望,和抓住最后一根稻草时的决然。
她别无选择。整个朝廷都是赵思贤的人。她能信任的,只有她自己。而现在,她决定赌一把。
赌我这个来历不明的太监,不是另一个病毒,而是一个……杀毒软件。我接过奏折,
感觉它有千斤重。“遵命,陛下。”我知道,我的试用期,开始了。第一次代码审查,
也正式开始了。3我花了一个通宵。没有电脑,没有Excel,我就用毛笔和草纸。
我把那本厚厚的户部奏折,当成了一个原始的数据库文件。我的任务,
就是把这些非结构化的数据,进行整理、归纳、分析,然后可视化。首先,
我创建了我的“数据表”。一张大草纸,用毛笔画出格子。
表头是:州府、上报产量、去年产量、产量增幅、调用民夫、调用漕船、运输耗时。然后,
我开始一条一条地录入数据。这是一个枯燥但必须的过程,就像做数据清洗。萧元君没有睡。
她就坐在我对面,静静地看着我。她看不懂我在做什么,那些表格在她眼里,
可能就是一堆毫无意义的鬼画符。但她没有打扰我。天快亮的时候,
我的第一份“数据分析报告”完成了。我把那张画满了表格和箭头的草纸,铺在萧元君面前。
“陛下,请看。”我指着表格的第一行。“这是江南三州的数据。产量增幅31%,
民夫调用增幅400%,漕船调用增幅300%,运输耗时增幅100%。
”然后我指向另一行。“这是西北五州。今年大旱,奏报减产四成。但他们的运输队,
规模和时间,都和去年持平。”萧元君顺着我的手指看过去,眉头紧锁。“这说明什么?
”“陛下,丰收的地方,运力成本高得离谱。受灾的地方,明明粮食少了,
运力成本却一点没降。这说明,有人在这两个环节上,都动了手脚。”我拿起朱笔,
在“江南三州”和“宰相赵思贤”之间画了一条线。赵思贤的祖籍,就在江南。
我又在“西北五州”和“兵部尚书”之间画了一条线。兵部尚书,是赵思賢的头号心腹。
“丰收的地方,他们夸大运力成本,把多出来的粮食和银子,装进了自己口袋。
”“受灾的地方,他们谎报灾情,把朝廷拨下去的赈灾粮,也装进了自己口袋。
”“一来一回,国库空了,他们的私库满了。”我用最简单直白的方式,向我的CEO,
解释了这个系统的核心漏洞。一个巨大的,涉及贪腐的后门程序。萧元君的脸,
一瞬间变得惨白。她的手在发抖。她不是傻,她只是被无数虚假的信息包围了。而我,
把最真实、最残酷的数据,血淋淋地摆在了她面前。
“陈景明……兵部尚书……他们……他们都该死!”她的声音里带着哭腔。
一个十六岁的女孩,要面对这么一个烂摊子,太难了。我没有安慰她。程序员的职责,
是解决问题,不是提供情绪价值。“陛下,现在不是生气的时候。”我冷静地说,
“我们只看到了bug现象,还没找到bug的根源。而且,我们没有证据。”“证据?
”她抬头看我,“这些不是证据吗?”“不是。”我摇摇头,“这只是基于数据的逻辑推理。
赵思賢完全可以说,是统计口径不同,或者有其他临时状况。他们有一万种方法,
把这些数据解释过去。”“那怎么办?”她显得有些无助。“我们需要一个g文件。
”“g……文件?”她不懂。“就是……一份原始的操作记录。一份他们无法抵赖的,
最详细的账本。”我解释道。“去哪找?”“户部的库房。所有州府上缴税粮的原始凭证,
都存放在那里。那上面有最详细的日期、数量、交接人签字。只要拿到那个,
和奏折上的总数一对比,他们贪了多少,一目了然。”萧元君的眼睛亮了。但很快,
又暗了下去。“没用的。户部库房,是陈景明管着,守卫森严,我们的人根本进不去。
”“硬闯当然不行。”我笑了,“但如果是陛下您,
要去核对一下历代先皇的祭天贡品清单呢?”她的眼睛,再次亮了起来。
这是一个合理的借口。一个无法拒绝的,系统最高权限用户的合理请求。“朕……朕明白了!
”“陛下,您去户部库房,不需要真的找什么清单。您只需要做一件事。”“什么事?
”“记住库房里,所有卷宗的摆放位置。越详细越好。最好能画下来。”“记住位置?
这有什么用?”她不解。“陛下,有时候,要找到一个bug,不需要看懂全部代码。
你只需要知道,哪个程序员,在哪个时间点,偷偷修改了哪一行代码。”我看着她,
一字一句地说。“我要做的,就是一次‘差异对比’。”他们以为,账本是最安全的地方。
但他们忘了,任何数据的修改,都会留下痕迹。而我,最擅长的,就是从海量的数据里,
找到那一点点微不足道的,却足以致命的,修改痕迹。萧元君深深地看了我一眼。
她没再问什么。她站起身,眼神恢复了帝王的威严。“来人,摆驾,朕要去户部。
”4萧元君去了户部。以“核对祭天贡品”的名义。户部尚书陈景明,虽然是赵思贤的人,
但也不敢公然违抗皇帝。他亲自陪着萧元君进了库房。一个时辰后,萧元君回来了。
她脸色平静,看不出什么。回到养心殿,她屏退了所有人,只留下我。然后,她从袖子里,
拿出了一张叠得整整齐齐的草纸。上面用炭笔,画着一幅潦草的地图。
是户部库房的内部结构图。哪个架子上是什么卷宗,哪个箱子里是什么凭证,
都标注得清清楚楚。我不得不佩服她。一个十六岁的女孩,在那种高压环境下,
只用眼睛看了一遍,就记下了所有细节。她的CPU和内存,性能都相当不错。“季从云,
你要的东西,都在这了。”我接过图纸,如获至宝。“陛下,辛苦了。接下来,
请您再帮我一个忙。”“说。”“请您下一道旨意,就说宫中用度紧张,
要彻查内务府的账目,所有账本,全部封存,送到养心殿,由您亲自审查。
”萧元君愣了一下。“查内务府?我们不是要查户部吗?”“陛下,这就是声东击西。
”我解释道,“我们大张旗鼓地查内务府,所有人,包括赵思贤,都会以为您是在敲山震虎,
想从宫内整顿起。他们会把所有注意力,都放在内务府上。”“而这,恰好给了我们时间。
他们越是觉得我们在做无用功,防备心就越松懈。”“等他们发现,
我们真正的目标是户部时,一切都晚了。”萧元君想了想,点了点头。“好,朕信你。
”很快,皇帝要彻查内务府的消息,像风一样传遍了整个皇宫。赵全来看过我两次。
眼神里充满了探究。他大概想不明白,我这个他亲手安插的棋子,
怎么好像真的在为女帝办事。我表现得诚惶诚恐,跟他说,自己只是听命行事,
每天帮陛下整理那些旧账本,头都大了。赵全没发现什么异常,只是警告我,
要搞清楚谁才是自己的主子。我点头如捣蒜。他走后,我继续我的工作。接下来的三天,
我把自己关在养心殿的偏殿里。我面前,摆着两样东西。一样,
是萧元君从户部带回来的库房结构图。另一样,是内务府送来的,过去十年,
皇宫采购所有物资的清单。包括粮食。我做的事情很简单。把内务府十年来的粮食采购记录,
和户部奏折上,京城地区的粮食消耗记录,做交叉对比。这是一个庞大的工程。
相当于在两个完全独立的数据库之间,寻找关联字段。我把自己变成了一个人肉搜索引擎。
到了第三天夜里,我终于找到了那个“关联字段”。那是一批特殊的“贡米”。每年,
江南都会上缴一批最顶级的贡米,专供皇室。这批米,数量不多,但价格极高。
在内务府的账本上,这批贡米每年的入库记录,都非常稳定。但在户部的奏折上,
关于这批贡米的记录,却在三年前,有过一次非常微小的修改。只是把贡米的计量单位,
从“石”,改成了“担”。一石,约等于一百二十斤。一担,约等于一百斤。一个字的区别,
神不知鬼不觉地,就抹掉了六分之一的粮食。而负责修改奏折格式的,正是户部尚书,
陈景明。我找到了bug的源头。一个持续了三年的,利用计量单位差异进行贪腐的漏洞。
我立刻拿着我的“debug报告”,去见萧元君。她听完我的分析,整个人都呆住了。
“就……就因为一个字?”“陛下,有时候,一个最不起眼的字符,
就能导致整个系统的崩溃。”我沉声说,“陈景明很聪明,
他知道没人会去注意一个计量单位的变化。但他忘了,任何操作,都会留下日志。
”“那我们现在怎么办?直接拿着这个去揭发他?”“不行。”我还是摇头,
“他可以说这是笔误。我们需要让他自己,把证据送到我们手上。”“怎么送?”“陛下,
还记得您画的那张库房地图吗?”我把地图铺开,指着一个角落。“这个地方,
存放的是三年前的贡米入库凭证。如果我的推测没错,陈景明做假账的时候,
一定把原始凭证销毁了,换上了一份伪造的。”“我们只要拿到那份伪造的凭证,
他就是铁证如山。”“可我们还是进不去啊。”“陛下,我们不用进去。”我笑了,
“我们要让陈景明自己,把那份凭证拿出来,送到我们面前。”我凑到萧元君耳边,
低声说出了我的计划。她听着听着,眼睛越睁越大。最后,她看着我,眼神复杂。“季从云,
你……你的脑子到底是怎么长的?”我笑了笑,没说话。没什么特别的。我只是习惯了,
用最优的算法,去解决最复杂的问题而已。现在,该执行我的代码了。5我的计划,
其实很简单。是一个阳谋。第二天一早,
萧元君突然颁布了一道让所有人都摸不着头脑的旨意。她要效仿古圣先贤,于三日后,
在太庙举行一场祈福大典。祈求风调雨顺,国泰民安。这道旨意本身没什么问题。
有问题的是祭品清单。清单上,指名道姓,要求用三年前,江南进贡的那批“头等贡米”,
作为主祭品。而且,点明了要用原始的入库石契,也就是凭证,一同焚烧,以告慰先祖。
旨意一出,朝野哗然。谁都觉得这位年轻的女帝是疯了。放着今年的新米不用,
非要用三年前的陈米去祭天。这不是胡闹吗?只有我知道,这不是胡闹。
这是一封“最后通牒”。一封专门写给户部尚书陈景明的最后通牒。
我赌他三年前销毁了原始凭证,换上了一份伪造的。那么现在,他面临一个两难的选择。
选择一,他可以说,那批米和凭证已经找不到了。但这等同于承认自己失职。
祭天是国之大事,弄丢了关键的祭品和凭证,这个罪名可不小。选择二,他只能硬着头皮,
把他伪造的那份凭证,和随便找来的一批米,当成三年前的贡品,送到太庙。
但他心里一定没底。他不知道,女帝为什么偏偏要这批三年前的米。
这里面是不是有什么圈套?他会怀疑,会害怕。这就是人性的bug。当一个程序员,
对一段代码产生了怀疑,他就会忍不住,想再去检查一遍。陈景明也一样。
他一定会偷偷潜入户部库房,把他伪造的那份凭证再拿出来,仔细检查,确保万无一失。
而那一刻,就是我们收网的时候。萧元君听完我的计划,问我:“你凭什么肯定,
他会亲自去?”我说:“陛下,因为那份伪造的凭证,就是整个贪腐链条的‘密钥’。
这种东西,一个谨慎的黑客,是绝不会交给别人保管的。它一定在陈景明自己手里,
或者一个他认为最安全的地方。”而现在,这个“最安全的地方”,马上就要被公开展示了。
他能不急吗?接下来两天,风平浪静。陈景明在朝堂上,领了旨,满口答应,
说一定会把东西准备好。看不出任何异常。但我知道,水面越是平静,
水下的暗流就越是汹涌。他在等。等一个最合适的时间。我在养心殿,也没闲着。
我找来几个宫里最不起眼的小太监,给了他们一些碎银子。让他们帮我办一件事。
去宫里各个角落,散播一个谣言。就说,陛下之所以要用三年前的贡米祭天,
是因为前几天夜里,她梦到了先帝。先帝在梦里告诉她,三年前的那批贡米,
沾染了“龙气”,用它祭天,功效非凡。这个谣言,很蠢,很迷信。但在这个时代,很好用。
它的作用,是给我的阳谋,打上最后一个补丁。它会彻底打消陈景明的疑虑。他会认为,
女帝此举,不过是小女孩的胡思乱想,是封建迷信,而不是冲着他来的。这样,
他就会安心地,走进我为他准备好的陷阱。第三天,深夜。祈福大典的前一夜。我和萧元君,
穿着夜行衣,藏在户部库房对面的一个假山后面。宫里已经下了钥,四周一片漆黑,
只有巡逻的禁军偶尔走过。“他……真的会来吗?”萧元君的声音有点紧张。“会的。
”我笃定地说。我们等了大概一个时辰。就在我感觉腿都快麻了的时候。
