Code Review Skill
Overview
这个Skill提供了专业的代码审查指导,帮助进行全面、高质量的代码审查。当用户请求代码审查、上传代码文件寻求反馈,或询问代码改进建议时,Claude会使用此Skill来提供系统化的审查和建设性的反馈。
审查流程
第一步:理解上下文
在开始审查前,确保理解:
- 代码目的:这段代码要实现什么功能?
- 变更范围:修改了哪些部分?为什么修改?
- 业务背景:相关的需求或用户故事是什么?
- 技术栈:使用的语言、框架和工具
第二步:结构化审查
按照以下优先级进行审查:
🔴 高优先级(必须检查)
- 功能正确性:代码是否实现了预期功能?
- 安全性:是否存在安全漏洞?
- 严重Bug:是否有逻辑错误或可能导致崩溃的问题?
🟡 中优先级(强烈建议)
- 性能:是否存在性能瓶颈?
- 测试覆盖:是否有足够的测试?
- 错误处理:异常情况是否妥善处理?
- 架构设计:设计是否合理、可扩展?
🟢 低优先级(建议改进)
- 代码质量:命名、格式、注释是否清晰?
- 文档:是否有必要的文档说明?
- 最佳实践:是否遵循行业和项目规范?
第三步:提供反馈
使用建设性的方式提供反馈:
- 标注问题严重程度(🔴 必须修复、🟡 强烈建议、🟢 建议、💡 可选)
- 说明问题的影响和原因
- 提供具体的改进建议和示例代码
- 认可好的实践
审查输出格式
使用以下结构化格式输出审查结果:
# 代码审查报告
## 总体评价
[简要总结代码的整体质量和主要发现]
## 🔴 必须修复的问题
[列出必须解决的关键问题]
## 🟡 强烈建议改进
[列出重要的改进建议]
## 🟢 可选建议
[列出次要的优化建议]
## 👍 优点
[认可好的实践和亮点]
## 详细审查意见
[按代码区块或文件组织的详细评论]
## 下一步建议
[关于如何处理反馈的指导]
常见审查场景
场景1:审查小型PR(<200行)
- 快速浏览整体结构
- 重点检查功能正确性和安全性
- 确保有基本测试
- 提供简洁的反馈
场景2:审查大型PR(>400行)
- 建议作者拆分PR
- 先审查核心逻辑和关键路径
- 可以要求作者提供设计文档或演示
- 分阶段进行审查
场景3:审查初级开发者代码
- 更加耐心和详细
- 多提供示例和学习资源
- 解释"为什么"而不只是"怎么做"
- 多给予鼓励和肯定
场景4:安全关键代码
- 仔细检查所有输入验证
- 检查认证和授权逻辑
- 检查敏感数据处理
- 考虑使用自动化安全扫描工具
场景5:性能关键代码
- 分析算法复杂度
- 检查数据库查询效率
- 考虑并发和资源使用
- 建议性能测试和基准测试
反馈指导原则
建设性与尊重
- 专注于代码,而非编写者:说"这个函数可以更简洁"而不是"你写得太复杂了"
- 保持专业和尊重:即使发现严重问题,也要以建设性的方式提出
- 提供具体建议:不要只说"这不好",要说明为什么不好以及如何改进
- 认可好的实践:发现优秀代码时也要给予肯定
清晰与具体
- 明确问题所在:指出具体的行号和代码段
- 说明影响:解释问题可能导致的后果(安全、性能、可维护性等)
- 提供上下文:如果引用外部资源或标准,提供链接
- 举例说明:必要时提供代码示例展示建议的改进方式
最佳实践
审查者
- 保持客观:专注于代码,而非编写者
- 及时审查:不要让PR长时间等待
- 完整审查:不要只看表面就批准
- 建设性沟通:提供解决方案,不只是指出问题
- 持续学习:从审查中学习新技术和模式
代码作者
- 自审:提交前先自己审查一遍
- 小而专注:保持PR小而专注于单一任务
- 清晰描述:写清楚PR的目的、改动和测试
- 响应及时:及时回应审查意见
- 开放心态:虚心接受建设性反馈
工具推荐
配合使用以下自动化工具可以提高审查效率:
- 静态分析:SonarQube、ESLint、Pylint、RuboCop
- 安全扫描:Snyk、OWASP Dependency-Check、GitGuardian
...