Skip to content

审计报告的最后一页

背景:审计报告 47 页写满,最后一页是空白的——该收束第六卷了。 过程:四十八项,修了二十六项,其余排入待办。审计三义:摸清家底、建立标准、重建信心。第六卷完。


审计报告写了整整四十七页。

前三页是高风险项,红笔标注,触目惊心。 中间十五页是中优项,黄笔标注,密密麻麻。 后二十九页是低优项,绿笔标注,有的只有短短一行。

第四十八页——也就是最后一页——是空白的。

外交官拿起笔,在最后一页写了一行字:

审计不是终点。 是下一段旅程的起点。


四十八页的重量

"四十八项,"AI 同行者翻着报告,"说多不多,说少不少。"

"四十八项,改了二十六项,剩下的排进待办,"外交官说,"这个比例还可以。"

"为什么不全改了?"

"全改要多久?"外交官反问,"四十八项,高风险 3 天,中优 10 天,低优 20 天——一个多月。这一个多月里,一个新功能都不加,用户会不会有意见?"

"会吧……"

"所以要平衡,"外交官合上报告,"修 bug 和加新功能,要平衡。全修 bug,用户觉得软件不更新了,没活力。全加新功能,bug 越来越多,软件越来越难用。"

"二八原则?"

"差不多,"外交官点头,"20% 的问题造成 80% 的痛苦。把那 20% 解决了,剩下 80% 的问题,慢慢修,不急。"


三种红,三种黄,三十种绿

"你有没有发现,"AI 忽然说,"这四十八项里,每一项的'故事'都不一样。"

"哦?"

"高风险的三项,都是'用户会骂娘'的问题——XSS 是安全、loadPMXFile 是预设功能坏了、材质启用是预设不可靠。都是硬伤。"

外交官点点头,示意他继续。

"中优的十五项,都是'用户会皱眉'的问题——加载慢、操作不顺手、偶尔卡一下、忘了设置。不致命,但烦。"

"低优的三十项呢?"

"低优的三十项,是'用户注意不到,但做了会觉得好'的事——代码干净一点、动画顺一点、提示多一点、细节到位一点。"

"总结得不错,"外交官笑了,"那你觉得,哪种最重要?"

"高风险啊,"AI 不假思索,"人命关天——不对,软件关天。"

"不对,"外交官摇摇头,"高风险当然要先修,但决定软件口碑的,往往不是高风险。"

"那是什么?"

"是中优和低优,"外交官说,"高风险的问题,修好了用户也不会感谢你——因为你本来就不该有。但中优和低优的问题,做好了用户会觉得'这个软件很用心'。"

"就像……去餐厅吃饭,菜里没虫子是应该的,不会有人夸你。但菜好吃、服务好、环境舒服——这些才是回头客的原因。"

"就是这个意思,"外交官拍了拍他的肩,"安全和稳定是入场券。体验和细节才是加分项。入场券要有,但光有入场券不够。"


审计的意义

"那你说,审计的意义是什么?"AI 问,"把所有问题列出来,然后一个个修?"

"不全是,"外交官想了想,"审计的意义有三层。"

他伸出三根手指。

第一层:摸清家底。 "你知道自己欠了多少债吗?哪些债是急的,哪些债是缓的?不知道的话,你就永远在救火——哪里冒烟扑哪里。审计一遍,你就知道了——哦,原来有这么多问题,原来最严重的是这几个。心里有数了,就不慌了。"

第二层:建立标准。 "审计一遍,你就知道'好的代码'是什么样的了。下次写新代码的时候,你就会想——'这个要持久化'、'这个要加守卫'、'这个要处理错误'。标准建立起来了,新的债就少了。"

第三层:重建信心。 "最开始的时候,大家都觉得'代码一团糟,到处都是 bug'。审计完了,你发现——哦,也就四十八个问题,三个严重的。没想象中那么糟。修完三个严重的,心里就踏实了。再修十五个中优的,就更踏实了。信心回来了,做事就顺了。"

"就像……体检?"

"就是体检,"外交官笑了,"体检不是为了让你知道自己病了,是为了让你知道自己没什么大病,小毛病该怎么调理。知道了,就不焦虑了。"


下一卷的故事

"审计完了,然后呢?"AI 问,"下一卷写什么?"

外交官看着窗外,夕阳把天边染成了橘红色。

"下一卷啊……"他慢慢说,"下一卷,就该建新东西了。"

"建什么?"

"还不知道,"外交官笑了笑,"可能是布料物理的更高级功能?可能是程序化动作的扩展?可能是多人模型的互动?可能是全新的渲染管线?"

"不知道?"

"不知道才有意思嘛,"外交官站起身,伸了个懒腰,"如果什么都知道了,那还有什么好探索的。"

他拿起桌上的三颗红石子,放进一个小袋子里。 黄石子也装进去。 绿石子也装进去。

"这些都是第六卷的收获,"他说,"带到下一卷去。不是包袱,是地基。"

"地基?"

"对,地基,"外交官点点头,"把这些坑都填上了,下一栋楼才能盖得更高更稳。"

他把袋子收好,拿起桌上那份四十八页的审计报告。 翻到最后一页,在那行字下面,又加了一行:

联邦大检查,到此为止。 但故事还长着呢。

写完,他合上报告,关灯,出门。

走廊尽头的窗户外面,夕阳正缓缓落下。 而明天,太阳还会升起来。

明天会有新的故事。


(第六卷 · 联邦大检查 · 完)


补记:中段盘点

审计过半时,有过一次清点。

桌面壳把修复单一张张摊在桌上:XSS。路径穿越。消失的头发。空白的一秒。证件照。织布机里的垃圾。会变形的护盾。调光器的最小档位。八张。

"高风险的全清了,"审计官说,"安全和数据损失类的,一项不剩。"

还剩十来项,大部分是中低优——代码整洁、UI 细节、架构重构。

"有没有看着小、可能藏着东西的?"

桌面壳犹豫了一下,"有几颗不好说。看着都是小事——一个跳变、一个列表、一个状态——但牵一发动全身的,往往就藏在这种'小事'里。"

"留着慢慢看。高风险的不允许拖,中低优的反而要沉住气——急了容易改出新 bug。"

审计官站起来,走到窗边。窗外是八座城邦,一切井然。

"走了多远?"

"一百多项里,当场修了八十,遗留四十八。到现在又清了八项核心的。"审计官没回头,"剩下的——它们有时间等你。"

赶路怕漏,收尾怕急。


第六卷总览

章节主题对应真实事件
1外交官来访审计启动
2八城联邦项目模块全景
3红黄绿三色石子优先级分类
4镜厅工具链审计(ESLint + Prettier)
5审计报告48 项问题总览 + 议会讨论优先级
6XSS 攻坚战第一颗红石子:XSS 安全加固
7路径的陷阱第二颗红石子:loadPMXFile 返回值
8消失的头发第三颗红石子:材质启用状态序列化
9空白的一秒中优 1:异步加载占位 UI
10给模型拍证件照中优 2:缩略图捕获时机优化
11织布机的垃圾中优 3:布料 Float32Array 缓存
12快递员与会变形的护盾中优 4:碰撞器归一化 + 胶囊自适应
13调光器的最小档位中优 5:时间流转阈值优化
14夕阳的影子中优 6:阴影渐隐
15沉默的函数中优 7:recreateCloth 返回值
16不存在的 bug中优 8:beforeunload 验证(无需修改)
17图书馆的摆书人中优 9:库列表 rAF 分片渲染
18电梯的楼层记忆中优 10:refreshLibrary 导航恢复
19调参数的手感中优 11:变换面板实时刷新
20没装子弹的枪中优 12:null safety 边缘场景
21忘记的设置中优 13+14:性能模式持久化 + 监听器
22被偷走的焦点中优 15:键盘焦点鼠标同步
23三十颗绿石子低优项批量概览
24审计报告的最后一页终章 · 收束

这一卷没有惊天动地的大功能,没有曲折离奇的大冒险。只有四十八个大大小小的问题,和一页一页把它们解决掉的过程。

但这才是真实的软件开发。不是每一章都有新的城邦拔地而起。有的章节,就是把已经有的城邦,打扫得干净一点、整齐一点、舒服一点。

打扫完了,下一卷才能盖更高的楼。