Files
gh-wasabeef-claude-code-coo…/commands/analyze-dependencies.md
2025-11-30 09:05:46 +08:00

159 lines
3.5 KiB
Markdown

## 依赖关系分析
分析项目的依赖关系,评估架构的健康状况。
### 使用方法
```bash
/dependency-analysis [选项]
```
### 选项
- `--visual` : 可视化显示依赖关系
- `--circular` : 仅检测循环依赖
- `--depth <数值>` : 指定分析深度 (默认: 3)
- `--focus <路径>` : 聚焦于特定模块/目录
### 基本示例
```bash
# 整个项目的依赖关系分析
/dependency-analysis
# 检测循环依赖
/dependency-analysis --circular
# 特定模块的详细分析
/dependency-analysis --focus src/core --depth 5
```
### 分析项目
#### 1. 依赖关系矩阵
数值化显示模块间的依赖关系:
- 直接依赖
- 间接依赖
- 依赖深度
- 扇入/扇出
#### 2. 架构违规检测
- 层级违规 (下层依赖上层)
- 循环依赖
- 过度耦合 (高依赖度)
- 孤立模块
#### 3. Clean Architecture 合规性检查
- 领域层的独立性
- 基础设施层的适当分离
- 用例层的依赖方向
- 接口的应用情况
### 输出示例
```text
依赖关系分析报告
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 指标概览
├─ 模块总数: 42
├─ 平均依赖数: 3.2
├─ 最大依赖深度: 5
└─ 循环依赖: 检测到 2 个
⚠️ 架构违规
├─ [HIGH] src/domain/user.js → src/infra/database.js
│ └─ 领域层直接依赖基础设施层
├─ [MED] src/api/auth.js ⟲ src/services/user.js
│ └─ 检测到循环依赖
└─ [LOW] src/utils/helper.js → 12 modules
└─ 扇出过度
✅ 建议操作
1. 引入 UserRepository 接口
2. 重新设计认证服务的职责
3. 按功能拆分辅助函数
📈 依赖关系图
[用 ASCII 艺术显示可视化依赖关系图]
```
### 高级用法
```bash
# CI/CD 管道中的自动检查
/dependency-analysis --circular --fail-on-violation
# 定义和验证架构规则
/dependency-analysis --rules .architecture-rules.yml
# 追踪依赖关系的时间变化
/dependency-analysis --compare HEAD~10
```
### 配置文件示例 (.dependency-analysis.yml)
```yaml
rules:
- name: "Domain Independence"
source: "src/domain/**"
forbidden: ["src/infra/**", "src/api/**"]
- name: "API Layer Dependencies"
source: "src/api/**"
allowed: ["src/domain/**", "src/application/**"]
forbidden: ["src/infra/**"]
thresholds:
max_dependencies: 8
max_depth: 4
coupling_threshold: 0.7
ignore:
- "**/test/**"
- "**/mocks/**"
```
### 集成工具
- `madge` : JavaScript/TypeScript 依赖关系可视化
- `dep-cruiser` : 依赖关系规则验证
- `nx` : 单体仓库依赖关系管理
- `plato` : 复杂度与依赖关系综合分析
### 与 Claude 的协作
```bash
# 包含 package.json 的分析
cat package.json
/analyze-dependencies
"分析这个项目的依赖关系问题"
# 结合特定模块的源代码
ls -la src/core/
/analyze-dependencies --focus src/core
"详细评估核心模块的依赖关系"
# 与架构文档对比
cat docs/architecture.md
/analyze-dependencies --visual
"确认设计文档与实现的差异"
```
### 注意事项
- **前提条件**: 需要在项目根目录执行
- **限制事项**: 大型项目的分析可能需要较长时间
- **建议事项**: 发现循环依赖时应立即考虑处理
### 最佳实践
1. **定期分析**: 每周检查依赖关系的健康状况
2. **规则明文化**: 通过配置文件管理架构规则
3. **渐进式改进**: 避免大规模重构,逐步改进
4. **指标追踪**: 监控依赖关系复杂度的时间序列