SuperAPI AI 工具集

code-review

编程与开发

查看项目

更新于 10-15 03:54

技能介绍

用途

该技能用于按照 Sentry 工程实践执行代码审查,适合在审查 Pull Request、检查代码变更或对代码质量提供反馈时使用。

主要能力

审查清单包含以下方面:

识别问题:查找代码变更中的运行时错误(潜在异常、空指针问题、越界访问)、性能问题(无界的 O(n²) 操作、N+1 查询、不必要的内存分配)、副作用(影响其他组件的非预期行为变更)、向后兼容性(没有迁移路径的破坏性 API 变更)、ORM 查询(复杂 Django ORM 带来的意外查询性能)、安全漏洞(注入、XSS、访问控制缺口、密钥泄露)。

设计评估:判断组件交互是否合乎逻辑、变更是否与现有项目架构一致、是否与当前需求或目标存在冲突。

测试覆盖:每个 PR 都应有适当的测试覆盖,包括业务逻辑的功能测试、组件交互的集成测试、关键用户路径的端到端测试。需验证测试覆盖实际需求和边界情况,避免测试代码中出现过多分支或循环。

长期影响:当变更涉及数据库模式修改、API 契约变更、采用新框架或库、性能关键代码路径、安全敏感功能时,应标记给高级工程师审查。

使用方式

反馈指南要求:语气上保持礼貌与共情,提供可操作的建议而非模糊批评,不确定时以提问方式表达(如“你是否考虑过……?”)。批准方面:仅剩小问题时即可批准,不要因风格偏好阻塞 PR。核心理念是降低风险,而非追求完美代码。

技能还列出常见需标记的模式,并给出正反示例:

Python/Django 中 N+1 查询问题:

# Bad: N+1 query
for user in users:
    print(user.profile.name)  # Separate query per user

# Good: Prefetch related
users = User.objects.prefetch_related('profile')

TypeScript/React 中 useEffect 依赖缺失问题:

// Bad: Missing dependency in useEffect
useEffect(() => {
  fetchData(userId);
}, []);  // userId not in deps

// Good: Include all dependencies
useEffect(() => {
  fetchData(userId);
}, [userId]);

安全方面 SQL 注入风险:

# Bad: SQL injection risk
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")

# Good: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", [user_id])

适用场景

适用于 Sentry 项目的代码审查,也可作为代码审查流程与反馈规范的参考。

限制

资料未提供该技能的安装方式、收费模式、支持平台等具体信息,暂未提供。