| name | code-review |
| description | 代码审查技能,帮助审查代码质量、发现潜在问题并提供改进建议 |
| category | code |
| tags | ["code","review","quality","best-practices"] |
代码审查技能
概述
这个技能帮助你进行专业的代码审查,包括:
- 代码质量评估
- 潜在 bug 检测
- 性能问题识别
- 安全漏洞扫描
- 最佳实践建议
使用方法
当用户请求代码审查时,按照以下步骤进行:
1. 代码质量检查
检查以下方面:
- 代码可读性和命名规范
- 函数/方法长度和复杂度
- 重复代码(DRY 原则)
- 注释和文档完整性
2. 潜在问题检测
关注以下问题:
- 空指针/未定义引用
- 资源泄漏(内存、文件句柄等)
- 边界条件处理
- 异常处理完整性
3. 安全性检查
检查常见安全问题:
- SQL 注入风险
- XSS 漏洞
- 敏感信息泄露
- 不安全的依赖
4. 性能优化建议
识别性能问题:
- 不必要的循环或递归
- 低效的数据结构使用
- 可缓存的计算
- 数据库查询优化
输出格式
审查结果应包含:
## 代码审查报告
### 总体评分: X/10
### 发现的问题
#### 严重问题 🔴
- [问题描述]
- 位置: [文件:行号]
- 建议: [修复建议]
#### 警告 🟡
- [问题描述]
- 位置: [文件:行号]
- 建议: [改进建议]
#### 建议 🟢
- [优化建议]
### 优点
- [代码中做得好的地方]
### 总结
[整体评价和主要改进方向]
示例
用户: "请帮我审查这段 Python 代码"
def get_user(id):
conn = sqlite3.connect('db.sqlite')
cursor = conn.cursor()
cursor.execute(f"SELECT * FROM users WHERE id = {id}")
return cursor.fetchone()
审查结果:
代码审查报告
总体评分: 4/10
发现的问题
严重问题 🔴
-
SQL 注入漏洞
- 位置: 第4行
- 建议: 使用参数化查询
cursor.execute("SELECT * FROM users WHERE id = ?", (id,))
-
资源泄漏
- 位置: 整个函数
- 建议: 使用
with 语句或确保关闭连接
警告 🟡
-
函数命名不够明确
-
缺少类型注解
- 建议: 添加
def get_user_by_id(id: int) -> Optional[tuple]:
建议修复后的代码
from typing import Optional
import sqlite3
def get_user_by_id(user_id: int) -> Optional[tuple]:
"""根据 ID 获取用户信息"""
with sqlite3.connect('db.sqlite') as conn:
cursor = conn.cursor()
cursor.execute("SELECT * FROM users WHERE id = ?", (user_id,))
return cursor.fetchone()