跳转到内容

信任校准

AI 生成的代码需要按风险等级进行对等验证。盲目接受所有输出或逐行审查每一行代码都是浪费时间。本教程帮助你校准信任度,建立高效的验证策略。


研究表明,AI 生成的代码缺陷率高于人工编写的代码:

指标AI vs 人工来源
逻辑错误多 1.75 倍ACM 研究,2025
安全缺陷45% 包含漏洞Veracode GenAI 报告,2025
XSS 漏洞多 2.74 倍CodeRabbit 研究,2025
PR 体积增长+18%Jellyfish,2025
每 PR 事故率+24%Cortex.io,2026
变更失败率+30%Cortex.io,2026

不同类型的代码需要不同程度的审查。将验证力度与风险匹配:

模板代码

验证等级: 快速浏览

配置文件、导入语句等。花 10-30 秒扫一眼,信任整体结构。

工具函数

验证等级: 快速测试

格式化、辅助函数等。花 1-2 分钟跑一个正常路径测试。

业务逻辑

验证等级: 深度审查 + 测试

花 5-15 分钟逐行审查,覆盖边界情况。

安全关键代码

验证等级: 最高级 + 工具辅助

认证、加密、输入验证等。花 15-30 分钟,使用静态分析、模糊测试、同行评审。

代码类型验证等级时间投入技术手段
模板代码(配置、导入)快速浏览10-30 秒扫一眼,信任结构
工具函数(格式化、辅助)快速测试1-2 分钟一个正常路径测试
业务逻辑深度审查 + 测试5-15 分钟逐行审查,边界情况
安全关键代码(认证、加密)最高级 + 工具15-30 分钟静态分析、模糊测试、同行评审
外部集成(API、数据库)集成测试10-20 分钟Mock + 真实端点测试

没有同行评审时,用以下方式弥补:

  1. 高测试覆盖率(>70%):你的安全网

  2. 快速审查(Vibe Review):介于”盲目接受”和”逐行审查”之间的中间层

    • 阅读提交信息/摘要
    • 扫一眼 diff 中是否有意外的文件变更
    • 运行测试
    • 在应用中快速检查
    • 如果通过就发布
  3. 静态分析工具:ESLint、SonarQube、Semgrep 捕捉你遗漏的问题

  4. 时间约束:不要花 30 分钟审查一个 10 行的工具函数

独立开发者工作流:
生成 → 快速审查 → 测试通过? → 发布
测试失败? → 深度审查 → 修复

在发布 AI 生成的代码前,逐项验证:

  • 正常路径可用(手动测试或自动化)
  • 边界情况已处理(null、空值、边界值)
  • 错误状态优雅处理(没有静默失败)

反模式问题所在更好的做法
”能编译就发布”语法正确不等于逻辑正确至少跑一个测试
”AI 写的一定安全”AI 优化的是合理性,不是安全性安全关键代码始终手动审查
”测试通过就完事”测试可能没有覆盖变更的部分检查修改行的测试覆盖率
”跟上次一样”上下文变了,AI 可能生成不同的代码每次生成都是独立的
”高级工程师写的提示词”资深不等于输出质量有保证审查输出,而非输入
”只是模板代码”即使模板代码也可能隐藏问题至少扫一眼看有没有意外

  1. 初始阶段:谨慎对待

    刚接触 Claude Code 时审查所有内容

  2. 追踪失败模式

    Bug 是从哪里溜进来的?记录问题模式

  3. 加强关键路径

    在有过事故的领域加倍投入审查力度

  4. 放松低风险领域

    对于稳定的、有测试的代码类型,可以更多信任 AI

  5. 定期审计

    偶尔抽查那些”被信任”的代码


┌─────────────────────────────────────────────────────────┐
│ 信任校准流程 │
├─────────────────────────────────────────────────────────┤
│ │
│ AI 生成代码 │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ 什么类型? │ │
│ └──────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 模板 业务 安全 │
│ 代码 逻辑 关键 │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ 扫一 测试+ 完整审查 │
│ 眼 审查 +工具 │
│ │ │ │ │
│ └────┴────┘ │
│ │ │
│ ▼ │
│ 测试通过? ──否──► 调试并修复 │
│ │ │
│ 是 │
│ │ │
│ ▼ │
│ 发布 │
│ │
└─────────────────────────────────────────────────────────┘