C
C++代码评审大师
作者:鹿Sir开发工具v1
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,支持PR review、增量审查、全量评审和代码质量评分
下载量
256
点赞
63
价格
免费
技能文档
---
name: cpp-daima-pingshen-dashi
title: C++代码评审大师
description: 组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,支持PR review、增量审查、全量评审和代码质量评分
category: 开发工具
---
# C++代码评审大师
组合式 C++ 代码评审方案,整合静态分析、C++ 专项检查、多轮迭代评审与 AI 推理能力。
## 架构
```
用户发起 C++ 代码评审
|
v
+-------------------------+
| 1. C++ 专项检查 | 内存安全、悬垂引用、UB、所有权
| + 静态分析预检 | 本地 regex 预检
+------------+------------+
|
v
+-------------------------+
| 2. 三路并行 AI 评审 |
| |
| Reviewer-1: 功能正确性 |
| Reviewer-2: 性能与内存 |
| Reviewer-3: 安全与最佳实践|
+------------+------------+
|
v
+-------------------------+
| 3. 汇总 + 评分报告 |
+------------+------------+
|
v
+-------------------------+
| 4. 可选自动修复 |
+-------------------------+
```
## 评审维度
| 维度 | C++ 专项关注点 |
|------|---------------|
| **内存安全** | 内存泄漏、悬垂引用、野指针、double-free、use-after-free |
| **未定义行为** | 未初始化变量、数据竞争、整数溢出、类型双关 |
| **RAII / 所有权** | 构造/析构顺序、智能指针误用、锁粒度 |
| **性能** | 不必要的拷贝、临时对象、虚函数开销、内联建议 |
| **安全** | 缓冲区溢出、格式化字符串、指针运算、原始 new/delete |
| **可读性** | 命名规范、头文件组织、模板复杂度、注释完整性 |
| **最佳实践** | 现代 C++(C++17/20/23)特性、constexpr、Concepts |
## 工作流程
### Step 1 -- 收集代码上下文
- 用户指定文件、目录或 git diff
- 检测是否 PR 场景
- 判断增量审查还是全量审查
### Step 2 -- C++ 专项预检
执行本地静态分析,检测 C++ 常见问题模式:
- 原始 new[] 未配对 delete[]
- sprintf 等不安全函数使用
- 已废弃特性(如 std::auto_ptr)
- 宏定义应替换为 constexpr
- mutable 成员的线程安全问题
### Step 3 -- 三路并行 AI 评审
启动 3 个独立 reviewer,每个关注不同维度:
- **Reviewer-1(功能正确性)**:逻辑错误、边界条件、断言、异常处理
- **Reviewer-2(性能与内存)**:内存分配、拷贝语义、算法复杂度、缓存友好性
- **Reviewer-3(安全与最佳实践)**:缓冲区安全、输入验证、C++ modern guidelines
### Step 4 -- 汇总报告
综合所有 reviewer 意见,输出统一报告:
```markdown
## C++ 代码评审报告
### 项目概览
- 评审范围:<文件/目录/diff>
- 评审模式:<全量/增量/PR>
### C++ 专项问题
| 严重性 | 类型 | 位置 | 问题描述 |
|--------|------|------|----------|
| High | Memory | foo.cpp:42 | 原始 new[] 无对应 delete[] |
| Medium | UB | bar.cpp:87 | 成员变量未初始化 |
| Medium | Security | baz.cpp:23 | sprintf 使用,缓冲区溢出风险 |
### 代码评分(百分制)
| 维度 | 得分 |
|------|------|
| 内存安全 | XX/100 |
| 逻辑正确性 | XX/100 |
| 性能 | XX/100 |
| 安全 | XX/100 |
| 可读性 | XX/100 |
| **总分** | **XX/100** |
### 修复优先级
1. [P0 - 必须修复] ...
2. [P1 - 强烈建议] ...
3. [P2 - 建议优化] ...
4. [P3 - 可选改进] ...
```
### Step 5 -- 自动修复(可选)
用户确认后执行修复。
## 触发方式
| 命令 | 场景 |
|------|------|
| `/cpp-review` | 评审当前打开的 C++ 文件 |
| `/cpp-review <file>` | 评审指定文件 |
| `/cpp-review --diff` | 评审当前 git diff |
| `/cpp-review --pr` | 评审当前 PR |
| `/cpp-review --fix` | 评审并自动修复 |
| `/cpp-review --full` | 全量项目评审 |
## 限制与注意
- **并发限制**:同时最多 3 个 subagent 并行评审
- **最大轮次**:10 轮迭代(防止无限循环)
- **安全模式**:默认每步需用户确认,不会自动修改代码
- **代码不外传**:不向外部 API 发送时使用本地分析模式支持平台:Qoder · QoderWork · Claude · Codex 等 AI 编程助手