Appearance
第 14 章 · 中段清算
背景:审计中段需盘点已修复项与剩余风险
过程:中段复盘、高风险清零转低优收尾
审计官翻开审计报告的时候,桌面壳正站在旁边,手里抱着一摞已经盖了章的修复单。
“数一下。”审计官说。
桌面壳把单子一张张摊在桌上。
XSS。路径穿越。消失的头发。空白的一秒。证件照。织布机里的垃圾。会变形的护盾。调光器的最小档位。
八张。
审计官用指节敲了敲桌面:“从头说。”
桌面壳指着第一张:“XSS。settings.ts 几十处 innerHTML,全是敞着的门。最高风险——堵了。”
“路径穿越。”
“第二张。文件服务的路径归一化少一道校验,../ 能钻空子。补上了。”
“头发。”
“物理之城送来的——碰撞胶囊按固定尺寸做,小模型的头发被护盾顶飞。改成从骨骼读尺寸,头发回来了。”
“空白的一秒。”
“VMD 加载和 runtime 创建差一拍,模型在那一秒里是空的。对齐了。”
审计官点点头,目光落到后面四张:“这几个呢?”
“证件照——缩略图捕获太早,低端 GPU 上黑屏,延后到首帧渲染之后。织布机垃圾——布料每帧 new 一个 Float32Array,GC 喘不过气,改成复用。快递员的护盾——碰撞器每帧归一化方向向量,加容差跳过 sqrt。调光器——时间流转每帧重算光照,加 0.5° 阈值。”
桌面壳一口气说完,把八张单子理齐,推到桌子中间。
“都验过了?”
“都验过了。”
审计官沉默了一会儿。
“高风险的,”审计官说,“全清了。”
“是。安全和数据损失类的,一项不剩。”
“黄石子清了几颗?”
“五颗。都从性能和体验那堆里挑的。”
审计官从抽屉里拿出一张未完成清单,上面还密密麻麻写着字。他把已完成的逐项划掉,剩下的摊开。
“还剩多少?”
桌面壳凑过去看了一眼:“十来项。大部分是中低优——代码整洁、UI 细节、架构重构。”
“有没有看着小、可能藏着东西的?”
桌面壳犹豫了一下:“有几颗不好说。看着都是小事——一个跳变、一个列表、一个状态——但牵一发动全身的,往往就藏在这种‘小事’里。”
“留着慢慢看。”审计官把清单折起来,“高风险的不允许拖,中低优的反而要沉住气——急了容易改出新 bug。”
审计官站起来,走到窗边。
窗外是八座城邦。物理之城的织布机还在转,环境之城的调光器安静地每两秒咔哒一次,场景之城的新模型正被加载进来。
“走了多远?”桌面壳问。
“一百多项里,当场修了八十,遗留四十八。到现在又清了八项核心的。”审计官没回头,“高风险的都修完了。剩下的——”
他顿了顿。
“剩下的不是不严重。是它们有时间等你。”
桌面壳把那张折好的清单收进口袋。
“那继续?”
“继续,”审计官说,“但节奏可以慢一点了。前面是赶路,后面是收尾。赶路怕漏,收尾怕急。”
审计官重新坐下,翻开清单的下一页。
第一行写着:夕阳的影子。
“这个先来。”他说。
教训:审计不只是找到 bug。还有同样重要的一件事——确认哪些地方不需要修。前者是减法,后者是定心。知道哪里不用动,才知道力气该往哪儿使。