代码审查标准¶
目的¶
代码审查用于在代码合并之前确保质量、安全性和可维护性。本规则定义了代码审查的时机和方法。
审查时机¶
必须审查触发条件:
- 创建或修改代码后
- 提交到共享分支前
- 涉及安全的代码发生变更时(认证、支付、用户数据)
- 架构变更时
- 合并拉取请求前
审查前要求:
在请求审查之前,请确认以下事项:
- 所有自动检查(CI/CD)均已通过
- 合并冲突已解决
- 分支已与目标分支保持最新状态
审查检查清单¶
在将代码标记为完成之前:
- [ ] 代码可读且命名恰当
- [ ] 函数职责聚焦(少于 50 行)
- [ ] 文件内聚(少于 800 行)
- [ ] 没有深层嵌套(4 级以上)
- [ ] 错误已显式处理
- [ ] 没有硬编码的密钥或凭据
- [ ] 没有 console.log 或调试语句
- [ ] 新功能存在测试
- [ ] 测试覆盖率至少达到 80%
安全审查触发条件¶
在以下情况下请使用 security-reviewer 代理:
- 认证或授权代码
- 用户输入处理
- 数据库查询
- 文件系统操作
- 外部 API 调用
- 加密操作
- 支付或金融代码
审查严重级别¶
| 级别 | 含义 | 操作 |
|---|---|---|
| CRITICAL | 安全漏洞或数据丢失风险 | BLOCK - 合并前必须修复 |
| HIGH | 缺陷或重大质量问题 | WARN - 合并前应当修复 |
| MEDIUM | 可维护性顾虑 | INFO - 考虑修复 |
| LOW | 风格或轻微建议 | NOTE - 可选 |
使用代理¶
代码审查请使用以下代理:
| 代理 | 目的 |
|---|---|
| code-reviewer | 通用代码质量、模式和最佳实践 |
| security-reviewer | 安全漏洞、OWASP Top 10 |
| typescript-reviewer | TypeScript/JavaScript 特有问题 |
| python-reviewer | Python 特有问题 |
| go-reviewer | Go 特有问题 |
| rust-reviewer | Rust 特有问题 |
审查工作流¶
1. git diffを実行して変更を理解する
2. セキュリティチェックリストを最初に確認する
3. コード品質チェックリストをレビューする
4. 関連するテストを実行する
5. カバレッジ >= 80%を検証する
6. 詳細レビューに適切なエージェントを使用する
常见问题检测¶
安全¶
- 硬编码凭据(API 密钥、密码、token)
- SQL 注入(查询中的字符串拼接)
- XSS 漏洞(未转义的用户输入)
- 路径遍历(未净化的文件路径)
- 缺少 CSRF 保护
- 认证绕过
代码质量¶
- 大函数(超过 50 行)- 拆分为更小函数
- 大文件(超过 800 行)- 提取模块
- 深层嵌套(超过 4 级)- 使用提前返回
- 缺少错误处理 - 显式处理
- 可变模式 - 优先使用不可变操作
- 缺少测试 - 添加测试覆盖率
性能¶
- N+1 查询 - 使用 JOIN 或批处理
- 缺少分页 - 在查询中添加 LIMIT
- 无约束查询 - 添加约束
- 缺少缓存 - 缓存高成本操作
批准标准¶
- 批准:没有 CRITICAL 或 HIGH 问题
- 警告:仅有 HIGH 问题(谨慎合并)
- 阻止:检测到 CRITICAL 问题
与其他规则的集成¶
本规则与以下内容协同工作:
- testing.md - 测试覆盖率要求
- security.md - 安全检查清单
- git-workflow.md - 提交规范
- agents.md - 代理委派
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC