AI 生成代码的“债务清单”:哪些地方省下的时间,最后会加倍还

0 阅读5分钟

0、先破后立:别再只看“能跑/跑分/演示很顺”,AI 省下的往往是“写的时间”,不是“用的时间”。

AI 写代码快,快到你以为开发被彻底解放了。但线上从不奖励“写得快”,只惩罚“留了坑”。很多债务不是当场爆炸,而是三周后你改需求、补监控、查一次线上事故才发现:当初省的半天,现在要用两天把链路补齐。所谓“债务清单”,就是把这些必还款项提前列出来:哪些东西你不补,迟早用更贵的方式补。

下面按工程口径,把债务分成六个现实指标:交付、可控、复现、成本、安全、维护性。每段一句话中心论点,后面给你“怎么验”的测法,不给玄学结论。


1、交付债:AI 让你交出“代码”,却常常没交出“变更说明书”,最后所有人都靠猜。

中心论点:交付不完整,比写错更可怕,因为它让排查与协作失去入口。

常见欠款长相:

  1. PR 说明像聊天:没有影响面、没有验收步骤、没有回滚方式。
  2. 接口改了但没写契约:字段可空性、错误码、兼容策略一片空白。
  3. 只交“能跑的实现”,不交“为什么这样实现”,后续没人敢动。

怎么验:

  • 让一个没参与的人按 PR 描述复现功能;他卡住一次,就说明你欠了交付债。
  • 把“上线要的材料”列成清单:摘要、影响面、验收步骤、风险点、回滚方式;缺一项就算欠。

2、可控债:AI 最爱把改动写成“全量生效”,没开关、没范围、没刹车,事故来了只能硬扛。

中心论点:能关才叫上线能力,不能关只是把风险推迟。

常见欠款长相:

  1. 没有 feature flag:新逻辑一合并就全体用户生效。
  2. 写入路径直接上:数据一写进去,回滚也回不去了。
  3. 没有降级:依赖慢了、接口错了,就跟着一起死。

怎么验:

  • 自问一句:“现在出问题,我 30 秒内能让它停吗?”如果答案要靠发版,那就是欠债。
  • 对每个高风险改动做一次“刹车演练”:关开关/切旧路径/降级后,验证点写清。

3、复现债:AI 代码经常“看着合理”,但缺测试、缺最小复现路径,线上一出问题只能祈祷日志够用。

中心论点:不能复现的问题,等于不能修,只能碰运气。

常见欠款长相:

  1. 没补回归:修了 bug 但没加测试,下一次 AI 重构又把它带回来。
  2. 异常场景空白:超时、空数据、并发请求、权限不足都没覆盖。
  3. 环境依赖写死:本地能跑是因为你机器刚好有缓存/配置/历史数据。

怎么验:

  • 刻意制造三种坏事:依赖超时、返回空数据、并发触发两次请求;看系统是否稳定、错误是否可读。
  • 把复现写成脚本或清单:别人按步骤能 100% 复现,你才算不欠复现债。

4、成本债:AI 帮你省了“编码工时”,却可能把“排查工时、沟通轮次、返工次数”抬到更高。

中心论点:真正贵的不是写代码,是改代码与救火的时间。

常见欠款长相:

  1. 代码量变多:AI 喜欢铺开写,重复逻辑、重复分支遍地都是。
  2. 依赖变重:顺手引一堆库,构建变慢、体积变大、升级更痛。
  3. 迁移成本被隐藏:今天能用,三个月后你升级框架/改接口才发现到处绑死。

怎么验:

  • 统计一次 PR:重复代码比例、无关文件改动数、引入依赖数;这些都是未来维护账单。
  • 做“第五次改动测试”:给同一模块追加一个小需求,看看改动范围是否爆炸;爆炸就说明你欠了结构债,成本会滚起来。

5、安全债:AI 生成代码最危险的点在于“写得像对的”,但鉴权、校验、脱敏常被漏掉。

中心论点:安全债不讲概率,一次就够你写复盘。

常见欠款长相:

  1. 输入校验缺失:长度、类型、枚举范围没挡住,脏数据直接入库。
  2. 鉴权绕路:新接口没走统一中间件,权限在某些路径失效。
  3. 日志泄露:为了排查加日志,把 token、手机号、完整响应写进去了。

怎么验:

  • 做三类攻击式用例:超长字符串、非法枚举、越权访问;看是否被拒绝且错误信息不泄露内部细节。
  • 扫一遍日志字段:任何敏感信息必须脱敏或不落盘;这条不通过就别上线。

6、维护债(可读性/一致性/演进):AI 产出的最大隐形债,是“没人愿意接手”,因为读不懂、改不动、也不敢改。

中心论点:维护性差的代码,会把团队速度锁死在未来。

常见欠款长相:

  1. 命名漂移:同一个概念三种叫法,语义像雾,Review 也看不清。
  2. 约定不统一:错误处理、返回结构、状态管理各写各的。
  3. 抽象失衡:要么全是硬编码,要么抽得太早,后来需求一变全盘重写。

怎么验:

  • 让另一个同学用 15 分钟回答:这段逻辑的输入输出是什么、失败怎么处理、边界条件有哪些;答不上来就说明维护债很重。
  • 查一致性:同类模块是否共享同一套错误处理、同一套日志与埋点、同一套状态模式;不一致就是未来的返工源头。

——完——