专业的代码分析技能,能够深入评估代码质量、识别潜在问题并提供改进建议。
Automatically analyzes code quality, complexity, and best practices across multiple languages. Triggers when reviewing code files or when you request a code quality assessment.
/plugin marketplace add Protagonistss/claude-plugins/plugin install code-review@claude-plugins-protagonisthsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
专业的代码分析技能,能够深入评估代码质量、识别潜在问题并提供改进建议。
Code Analysis 技能提供全面的代码静态分析能力,包括代码质量评估、复杂度分析、代码重复检测和最佳实践检查。
可读性 (Readability)
复杂性 (Complexity)
可维护性 (Maintainability)
健壮性 (Robustness)
# 代码分析报告
## 基本信息
- **文件路径**: src/components/UserProfile.jsx
- **语言**: JavaScript/React
- **代码行数**: 245行
- **函数数量**: 8个
- **分析时间**: 2024-01-15 14:30:00
## 质量评分
| 维度 | 评分 | 说明 |
|-----|------|------|
| 可读性 | 7.5/10 | 整体清晰,部分变量名需要改进 |
| 复杂性 | 6.0/10 | 函数较长,嵌套较深 |
| 可维护性 | 6.5/10 | 耦合度适中,需要更好的模块化 |
| 健壮性 | 5.0/10 | 缺少边界条件处理 |
## 详细分析
### 🟢 优秀实践
1. 使用了现代ES6+语法
2. 组件结构清晰
3. Props类型定义完整
### 🟡 需要改进
1. 函数过长(第45-120行,75行)
2. 嵌套层级过深(最深4层)
3. 部分变量名不够描述性
### 🔴 严重问题
1. 缺少错误边界处理
2. 内存泄漏风险(事件监听器未清理)
## 改进建议
### 1. 重构长函数
将 `handleUserUpdate` 函数拆分为多个小函数:
```javascript
// 当前代码(75行)
const handleUserUpdate = async (userData) => {
// 75行复杂逻辑...
};
// 建议重构为
const validateUserData = (data) => { /* 验证逻辑 */ };
const prepareUpdateData = (data) => { /* 数据准备 */ };
const updateUserProfile = async (data) => { /* 更新逻辑 */ };
const handleUpdateSuccess = (result) => { /* 成功处理 */ };
const handleUpdateError = (error) => { /* 错误处理 */ };
const handleUserUpdate = async (userData) => {
try {
validateUserData(userData);
const updateData = prepareUpdateData(userData);
const result = await updateUserProfile(updateData);
handleUpdateSuccess(result);
} catch (error) {
handleUpdateError(error);
}
};
使用早期返回减少嵌套:
// 改进前
const processUser = (user) => {
if (user) {
if (user.active) {
if (user.verified) {
// 处理逻辑
}
}
}
};
// 改进后
const processUser = (user) => {
if (!user) return;
if (!user.active) return;
if (!user.verified) return;
// 处理逻辑
};
## 配置选项
可以通过 `.code-analysis.json` 配置分析规则:
```json
{
"analysis": {
"maxFunctionLength": 30,
"maxNestingDepth": 3,
"maxComplexity": 10,
"excludePatterns": [
"*.test.js",
"*.spec.js",
"node_modules/**",
"dist/**"
],
"rules": {
"naming": {
"enabled": true,
"camelCase": true,
"snake_case": false
},
"complexity": {
"enabled": true,
"maxCognitiveComplexity": 15
},
"duplicates": {
"enabled": true,
"minLines": 5,
"similarity": 0.8
}
}
}
}
# GitHub Actions 示例
name: Code Analysis
on: [push, pull_request]
jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run Code Analysis
run: |
npm install
npm run lint
npm run test:coverage
npx sonar-scanner
通过持续的代码分析和改进,可以显著提升代码质量,降低维护成本,提高开发效率。