| name | code-review |
| description | 代码审查方法论。用于系统化审查代码质量、安全性和最佳实践。 |
代码审查技能
本技能提供系统化的代码审查方法论和检查清单。
审查流程
1. 快速浏览(2分钟)
先获得整体印象:
ls -la
wc -l *.cs
git log --oneline -10
2. 逐项检查(核心)
按以下顺序检查:
- 安全问题 ← 最高优先级
- 正确性问题
- 性能问题
- 可维护性问题
- 风格问题 ← 最低优先级
安全检查清单
🔴 严重
🟠 重要
dotnet list package --vulnerable
正确性检查清单
逻辑错误
并发问题
性能检查清单
常见问题
检测工具
dotnet add package BenchmarkDotNet
dotnet-counters monitor --process-id <PID>
可维护性检查清单
代码组织
命名
注释
审查报告模板
## 代码审查报告
**文件**: src/Services/AuthService.cs
**审查者**: [你的名字]
**日期**: [日期]
### 🔴 严重问题
1. **第 45 行 - SQL 注入风险**
```csharp
// 当前
var query = $"SELECT * FROM Users WHERE Email = '{email}'";
// 建议
var query = "SELECT * FROM Users WHERE Email = @Email";
🟠 重要问题
- 第 78 行 - 缺少输入验证
用户输入
email 未经验证直接使用。
🟡 建议
- 第 120 行 - 方法过长
ProcessOrder 方法有 150 行,建议拆分为:
ValidateOrder()
CalculateTotal()
SaveOrder()
✅ 优点
## 自动化工具
### 静态分析
```bash
# 使用 .NET Analyzers(内置)
# 在 .csproj 中启用
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
</PropertyGroup>
# 使用 SonarQube
dotnet sonarscanner begin /k:"project-key"
dotnet build
dotnet sonarscanner end
格式化
dotnet format
dotnet format --verify-no-changes
常见反模式
1. 上帝类 (God Class)
一个类做太多事情。拆分为多个单一职责的类。
2. 魔法数字
if (status == 3) { ... }
if (status == OrderStatus.Completed) { ... }
3. 注释掉的代码
删除它。用版本控制恢复。
4. 过早优化
先让它正确工作,再考虑优化。