软件也需要「盖章」:批准一段你没亲手写的代码意味着什么
来源:dev.to — 2026-11-05
📋 概述
作者让编码代理给小应用实现密码重置,五分钟就跑通,他审阅、批准、合并,一切正常——直到发现重置链接第二次仍然可用。代码满足了他当时想到要检查的每一个行为,却漏掉了底下那条不变量:重置成功后令牌必须失效。他由此提出一个其实不属于软件的问题:人类怎么为不是自己直接产出的工作承担可信责任?他援引建筑与结构工程的执照盖章制度:盖章不是「读过一遍没发现明显错误」,而是对工程师与工作之间特定关系的专业声明,乱盖(plan stamping)在不少辖区可以被罚款、停牌甚至吊销执照。软件有 PR 批准、有审计日志、有审查人字段,缺的正是「这个批准到底证明了什么」的共同定义。最危险的不是不审批,而是仪式性审批:日志里有名字、勾选框打了勾,审查人却没有时间、权限和信息。
🔑 核心要点
- 他的批准什么都没建立:一次走过的代码审查不构成问责,只是把责任分配给了签字的人。
- 代理实现的重置功能满足了他检查过的每条行为,唯独漏掉「令牌用一次就该作废」这条不变量。
- 工程界一个世纪前就想清楚了:签名必须认证签字人与工作之间的特定关系,否则盖章只是仪式。
- 最隐蔽的失败模式是仪式性批准——日志里有名字、框打了勾,而审查者没时间、没权限、看不到假设。
- 没有相称权限的责任不是治理,而是责任转嫁。
💡 金句
“Responsibility without corresponding authority is not governance. It's liability assignment.”
译:没有相称权限的责任不是治理,而是责任转嫁。
👍 0
👎 0
← 返回 dev.to 首页