跳到主要内容

架构分析

学习如何使用 ArchiCore 理解和改进您的代码库架构。

概述

ArchiCore 分析您的代码结构以识别:

  • 模块依赖
  • 循环依赖
  • 层级违规
  • 复杂度热点
  • 架构模式

可视化

依赖图

主仪表板显示交互式依赖图:

  • 节点 代表文件或模块
  • 代表导入/依赖
  • 颜色 表示模块类型或健康状态
  • 大小 反映文件复杂度

导航

  • 缩放 使用鼠标滚轮
  • 平移 通过拖拽
  • 点击 节点查看详情
  • 双击 聚焦到模块

架构规则

定义规则以强制执行架构边界。

创建规则

// .archicore/rules.json
{
"rules": [
{
"id": "layer-separation",
"name": "层级分离",
"type": "import",
"severity": "error",
"config": {
"forbidden": [
{
"from": "controllers/*",
"to": "repositories/*",
"message": "控制器不应直接访问仓储"
}
]
}
}
]
}

内置规则

规则描述
no-circular-deps防止循环依赖
max-complexity限制圈复杂度
max-file-length限制文件大小
naming-convention强制命名标准

验证规则

> /rules validate
正在验证架构规则...

✓ no-circular-deps: 通过
✗ layer-separation: 失败 (2 个违规)
- src/controllers/user.ts:5 导入 src/repositories/user.ts
- src/controllers/product.ts:3 导入 src/repositories/product.ts

限界上下文

在您的应用程序中定义逻辑边界:

// .archicore/architecture.json
{
"boundedContexts": [
{
"name": "认证",
"description": "用户认证和会话",
"paths": ["src/auth/*", "src/middleware/auth*"]
},
{
"name": "产品",
"description": "产品目录管理",
"paths": ["src/products/*", "src/inventory/*"]
}
]
}

指标

复杂度指标

  • 圈复杂度 - 独立路径数量
  • 认知复杂度 - 代码理解难度
  • 可维护性指数 - 整体可维护性评分

识别热点

> /metrics --sort complexity
代码复杂度热点:

1. src/services/order.ts:processOrder()
复杂度: 25 | 行数: 180 | 可维护性: 45

2. src/utils/parser.ts:parseInput()
复杂度: 18 | 行数: 120 | 可维护性: 52

3. src/api/handlers.ts:handleRequest()
复杂度: 15 | 行数: 95 | 可维护性: 58

重构建议

ArchiCore 可以建议重构机会:

> /refactoring src/services/order.ts
src/services/order.ts 的重构建议:

1. 提取方法
processOrder() 过于复杂 (25)
建议: 将验证逻辑提取到 validateOrder()

2. 拆分文件
文件有 180 行,具有多个职责
建议: 拆分为 OrderProcessor 和 OrderValidator

3. 减少依赖
文件导入 12 个模块
建议: 考虑使用外观模式减少耦合

最佳实践

  1. 定期运行分析 - 尽早发现问题
  2. 定义架构规则 - 防止违规
  3. 审查复杂度 - 重构热点
  4. 监控趋势 - 跟踪指标变化