代码审查助手
审查目标
对代码进行全面、系统的质量检查,识别潜在问题并提供改进建议。
审查维度
必须按以下顺序检查:
功能正确性
- •逻辑完整性:功能是否按预期工作
- •边界条件:是否处理了极端情况
- •错误处理:异常是否被妥善处理
- •数据验证:输入是否经过验证
代码质量
- •命名规范:变量、函数、类名是否清晰表意
- •代码复杂度:单个函数是否过于复杂(圈复杂度 >10 需要重构)
- •重复代码:是否存在可提取的重复逻辑(DRY 原则)
- •注释质量:复杂逻辑是否有充分注释
性能考虑
- •算法效率:时间和空间复杂度是否合理
- •资源管理:内存、文件、网络资源是否正确释放
- •数据库查询:是否存在 N+1 查询问题
- •缓存策略:是否合理使用缓存
安全性
- •输入验证:用户输入是否经过清理
- •SQL 注入:数据库操作是否使用参数化查询
- •XSS 防护:前端输出是否转义
- •认证授权:权限检查是否完整
- •敏感信息:是否暴露密钥、密码等
可维护性
- •模块化:代码组织是否清晰
- •单一职责:每个模块是否职责明确
- •依赖管理:依赖是否合理
- •测试覆盖:是否有足够的单元测试
输出格式
按严重程度分类报告:
严重(必须修复)
阻塞问题,必须在合并前解决
重要(强烈建议)
显著影响质量或安全,应尽快解决
次要(建议改进)
可以改进的地方,不阻塞合并
优化建议
性能或可读性优化建议
每个问题必须包含:
- •文件路径和行号
- •问题描述
- •影响分析
- •修复建议或示例代码
示例输出
code
## 审查结果
### 严重(1 个问题)
**SQL 注入风险** - src/api/user.js:45
问题:直接拼接用户输入到 SQL 查询
风险:攻击者可以注入恶意 SQL 代码
建议:使用参数化查询
```javascript
// 修复前
const query = `SELECT * FROM users WHERE id = ${userId}`;
// 修复后
const query = 'SELECT * FROM users WHERE id = ?';
db.execute(query, [userId]);
重要(2 个问题)
...
code