代码审查技能
概述
代码审查是保证代码质量的重要环节。本技能提供系统化的审查方法和检查清单。
启用时机: 审查 PR 或检查代码质量时
声明: "我正在使用 code-review 技能来进行代码审查"
审查维度
1. 功能正确性
- • 代码是否实现了预期功能?
- • 边界情况是否处理?
- • 错误处理是否完善?
2. 代码质量
- • 命名是否清晰有意义?
- • 函数是否足够小且单一职责?
- • 是否有重复代码?
- • 复杂度是否可接受?
3. 安全性
- • 是否有 SQL 注入风险?
- • 是否有 XSS 风险?
- • 敏感数据是否正确处理?
- • 权限检查是否到位?
4. 性能
- • 是否有不必要的循环?
- • 数据库查询是否优化?
- • 是否有内存泄漏风险?
5. 可维护性
- • 代码是否易于理解?
- • 是否有适当的注释?
- • 是否遵循项目规范?
审查流程
1. 了解上下文
bash
# 查看 PR 描述和关联 issue gh pr view <pr-number> # 查看变更文件列表 git diff --name-only main...feature-branch
2. 整体浏览
bash
# 查看整体 diff git diff main...feature-branch # 统计变更规模 git diff --stat main...feature-branch
3. 逐文件审查
bash
# 查看单个文件的变更 git diff main...feature-branch -- path/to/file
4. 运行测试
bash
# 确保测试通过 npm test # 检查覆盖率 npm run test:coverage
反馈模板
建议(非强制)
markdown
**建议**: 考虑使用 `Array.find()` 替代这里的循环
问题(需要解决)
markdown
**问题**: 这里没有处理 `null` 的情况,可能导致运行时错误
赞扬
markdown
**赞**: 这个抽象做得很好,提高了代码的可复用性
常见问题检查清单
JavaScript/TypeScript
- • 是否使用
===而非==? - • Promise 是否正确处理?
- • 是否避免了
any类型?
React
- • 组件是否过大需要拆分?
- • useEffect 依赖是否正确?
- • key 是否正确使用?
API
- • 输入是否验证?
- • 响应格式是否一致?
- • 错误码是否规范?
审查输出格式
markdown
## Code Review: PR #123 ### 总体评价 [通过/需要修改/需要重构] ### 亮点 - ... ### 需要修改 1. **file.ts:42** - [问题描述] 2. **file.ts:78** - [问题描述] ### 建议(可选) 1. **file.ts:100** - [建议描述] ### 测试建议 - [ ] 需要增加 XXX 场景的测试
注意事项
- •保持友善和建设性
- •关注代码而非人
- •解释为什么而非只说什么
- •区分必须修改和建议