代码审查专家助手技能,对AI生成的代码进行多维度系统性审查,涵盖正确性、安全性、健壮性、性能、可维护性、规范一致性六大维度。输出标准化审查报告,标记必须修改项和建议修改项,有效减少AI生成代码的错误率和潜在缺陷。
代码审查技能:六维度AI生成代码审查减少缺陷的操作指南
【适用场景】
Step 1:AI生成代码的全面审查
当你使用AI助手生成了一段代码,在将其应用到项目之前,需要进行全面的代码审查。例如:AI生成了一段后端API代码,需要审查其正确性、安全性、性能等各个维度。Step 2:上线前的质量把关
在代码即将合并或上线前,按照标准化审查清单逐项检查,确保没有遗漏重要问题。Step 3:代码问题的诊断与修复
当代码出现Bug或安全问题时,使用审查清单快速定位问题类型(是正确性问题、安全性还是性能问题),并给出具体的修改方案。Step 4:团队代码质量标准化
团队统一使用六维度审查模板,确保每一段代码都经过相同标准的检查,避免质量参差不齐。【操作步骤】
第一维度:正确性审查
逻辑正确性: - 业务逻辑是否与需求一致 - 条件判断是否覆盖所有分支 - 循环边界是否正确(off-by-one) - 返回值是否正确处理 - 状态转换是否完整
数据正确性: - 数据类型是否匹配 - 数值精度是否满足要求 - 字符编码是否正确处理 - 时区是否统一处理 - 空值/null是否正确处理
并发正确性: - 共享资源是否有竞态条件 - 锁的获取和释放是否配对 - 是否存在死锁风险
第二维度:安全性审查
注入攻击: - SQL是否使用参数化查询,禁止拼接 - 是否存在XSS风险,输出是否转义 - 是否存在命令注入风险 - 是否存在路径遍历风险
认证授权: - 敏感接口是否有权限校验 - Token是否正确验证 - 是否存在越权访问风险 - 密码是否安全存储
数据安全: - 敏感数据是否加密存储 - 日志中是否泄露敏感信息 - API响应是否暴露内部信息
第三维度:健壮性审查
异常处理: - 是否捕获了所有可能的异常 - 异常处理是否合理(禁止空catch) - 异常信息是否包含足够上下文 - 资源是否在finally/try-with-resources中释放
边界条件: - 空集合/空数组是否处理 - 零值/负值是否处理 - 超大值是否处理 - 超长字符串是否处理
容错机制: - 外部服务调用是否有超时设置 - 是否有重试机制(含退避策略) - 是否有降级方案 - 是否有熔断机制
第四维度:性能审查
数据库: - 是否存在N+1查询 - 查询是否使用索引 - 批量操作是否使用批量语法 - 大查询是否分页
内存: - 是否存在内存泄漏风险 - 大对象是否及时释放 - 集合是否预分配大小
计算: - 是否存在不必要的重复计算 - 循环内是否有可外提的计算 - 是否可以使用缓存
第五维度:可维护性审查
可读性: - 命名是否语义化,望文知义 - 函数长度是否超过80行 - 嵌套深度是否超过3层 - 是否有魔法值
可扩展性: - 是否符合开闭原则 - 硬编码是否可配置化 - 是否便于添加新功能
可测试性: - 依赖是否可Mock - 函数是否纯函数(无副作用) - 是否便于编写单元测试
第六维度:规范一致性审查
命名规范:是否符合项目语言命名规范,命名风格是否与现有代码一致
格式规范:缩进是否统一,代码风格是否与项目一致
注释规范:公共方法是否有注释,复杂逻辑是否有注释,注释是否与代码一致
【代码模板】
审查报告模板: ```
审查报告
✅ 通过项
- [项目]:说明⚠️ 警告项
- [项目]:说明 → 建议修改❌ 必须修改
- [项目]:说明 → 修改方案审查结论:通过 / 有条件通过 / 不通过
```审查强度等级:
| 等级 | 适用场景 | 要求 |
|---|---|---|
| 严格 | 生产代码、核心模块 | 全部6项审查,❌项必须修改 |
| 标准 | 常规业务代码 | 全部6项审查,❌项必须修改,⚠️项建议修改 |
| 宽松 | 原型验证、临时脚本 | 正确性+安全性审查,❌项必须修改 |
常见AI生成代码问题清单: 1. 幻觉API:调用了不存在的库方法或函数 2. 版本过时:使用了已废弃的API或语法 3. 导入缺失:缺少必要的import/require语句 4. 类型错误:参数类型与函数签名不匹配 5. 逻辑遗漏:边界条件或异常分支未处理 6. 硬编码:配置值、密钥等直接写在代码中 7. 资源泄漏:文件/连接未关闭 8. 空值未处理:Optional/null/undefined未检查 9. 竞态条件:并发场景缺少同步 10. 过度工程:简单问题复杂化
【复盘要点】
1. 审查顺序不可跳:必须按正确性→安全性→健壮性→性能→可维护性→规范一致性的顺序执行,前一维度的问题会影响后续判断。
2. AI生成代码高频问题:幻觉API(调用不存在的库方法)、版本过时(使用已废弃API)、导入缺失、类型错误、硬编码配置值/密钥、资源泄漏(文件/连接未关闭)是最常见的问题类型。
3. 根据场景选择审查强度:生产代码用严格模式,原型验证可用宽松模式,但无论哪种模式,正确性和安全性审查不可省略。
来源:dkbnull/hello-skill (GitHub) | https://raw.githubusercontent.com/dkbnull/hello-skill/main/common/skills/code-review/SKILL.md