高级架构师 senior-architect

这个技能用于系统架构设计和分析,帮助做出技术决策,包括生成架构图、分析项目依赖、评估架构模式和代码质量,适用于单体与微服务架构的决策。

架构设计 0 次安装 0 次浏览 更新于 3/5/2026

高级架构师

架构设计与分析工具,用于做出明智的技术决策。

目录


快速开始

# 从项目生成架构图
python scripts/architecture_diagram_generator.py ./my-project --format mermaid

# 分析依赖关系问题
python scripts/dependency_analyzer.py ./my-project --output json

# 获取架构评估
python scripts/project_architect.py ./my-project --verbose

工具概览

1. 架构图生成器

从项目结构生成多种格式的架构图。

解决: “我需要为文档或团队讨论可视化我的系统架构”

输入: 项目目录路径 输出: 图表代码(Mermaid、PlantUML或ASCII)

支持的图表类型:

  • component - 显示模块及其关系
  • layer - 显示架构层(表示层、业务层、数据层)
  • deployment - 显示部署拓扑

用法:

# Mermaid格式(默认)
python scripts/architecture_diagram_generator.py ./project --format mermaid --type component

# PlantUML格式
python scripts/architecture_diagram_generator.py ./project --format plantuml --type layer

# ASCII格式(终端友好)
python scripts/architecture_diagram_generator.py ./project --format ascii

# 保存到文件
python scripts/architecture_diagram_generator.py ./project -o architecture.md

示例输出(Mermaid):

graph TD
    A[API 网关] --> B[认证服务]
    A --> C[用户服务]
    B --> D[(PostgreSQL)]
    C --> D

2. 依赖关系分析器

分析项目依赖关系,查找耦合、循环依赖和过时的包。

解决: “我需要了解我的依赖树并识别潜在问题”

输入: 项目目录路径 输出: 分析报告(JSON或人类可读)

分析:

  • 依赖树(直接和间接)
  • 模块间的循环依赖
  • 耦合分数(0-100)
  • 过时的包

支持的包管理器:

  • npm/yarn(package.json
  • Python(requirements.txtpyproject.toml
  • Go(go.mod
  • Rust(Cargo.toml

用法:

# 人类可读报告
python scripts/dependency_analyzer.py ./project

# JSON输出用于CI/CD集成
python scripts/dependency_analyzer.py ./project --output json

# 仅检查循环依赖
python scripts/dependency_analyzer.py ./project --check circular

# 详细模式带建议
python scripts/dependency_analyzer.py ./project --verbose

示例输出:

依赖关系分析报告
==========================
总依赖数:47(32直接,15间接)
耦合分数:72/100(中等)

发现的问题:
- 循环:auth → user → permissions → auth
- 过时:lodash 4.17.15 → 4.17.21(安全)

建议:
1. 提取共享接口以打破循环依赖
2. 更新lodash以修复CVE-2020-8203

3. 项目架构师

分析项目结构,检测架构模式、代码异味和改进机会。

解决: “我想了解当前架构并识别改进领域”

输入: 项目目录路径 输出: 架构评估报告

检测:

  • 架构模式(MVC、分层、六边形、微服务指标)
  • 代码组织问题(神类、混合关注点)
  • 层违规
  • 缺少架构组件

用法:

# 全面评估
python scripts/project_architect.py ./project

# 详细带详细建议
python scripts/project_architect.py ./project --verbose

# JSON输出
python scripts/project_architect.py ./project --output json

# 检查特定方面
python scripts/project_architect.py ./project --check layers

示例输出:

架构评估
=======================
检测到的模式:分层架构(置信度:85%)

结构分析:
  ✓ controllers/  - 检测到表示层
  ✓ services/     - 检测到业务逻辑层
  ✓ repositories/ - 检测到数据访问层
  ⚠ models/       - 混合领域和DTOs

问题:
- 大文件:UserService.ts(1,847行)- 考虑拆分
- 混合关注点:PaymentController包含业务逻辑

建议:
1. 将UserService拆分为专注的服务
2. 将业务逻辑从控制器移动到服务
3. 将领域模型与DTOs分开

决策工作流程

数据库选择工作流程

在为新项目选择数据库或迁移现有数据时使用。

步骤1:确定数据特征

特征 指向SQL 指向NoSQL
结构化关系
需要ACID事务
灵活/演变中的模式
文档导向数据
时间序列数据 ✓(专门)

步骤2:评估规模需求

  • <1M记录,单一区域 → PostgreSQL或MySQL
  • 1M-100M记录,读重 → PostgreSQL带只读副本
  • 100M记录,全球分布 → CockroachDB、Spanner或DynamoDB

  • 高写入吞吐量(>10K/sec) → Cassandra或ScyllaDB

步骤3:检查一致性需求

  • 需要强一致性 → SQL或CockroachDB
  • 可接受最终一致性 → DynamoDB、Cassandra、MongoDB

步骤4:记录决策 创建ADR(架构决策记录),包括:

  • 背景和需求
  • 考虑的选项
  • 决策和理由
  • 接受的权衡

快速参考:

PostgreSQL → 大多数应用程序的默认选择
MongoDB    → 文档存储,灵活的模式
Redis      → 缓存、会话、实时功能
DynamoDB   → 无服务器、自动扩展、AWS原生
TimescaleDB → 带SQL接口的时间序列数据

架构模式选择工作流程

在设计新系统或重构现有架构时使用。

步骤1:评估团队和项目规模

团队规模 推荐的起点
1-3开发人员 模块化单体
4-10开发人员 模块化单体或面向服务
10+开发人员 考虑微服务

步骤2:评估部署需求

  • 可接受单一部署单元 → 单体
  • 需要独立扩展 → 微服务
  • 混合(一些服务需要不同扩展) → 混合

步骤3:考虑数据边界

  • 可接受共享数据库 → 单体或模块化单体
  • 需要严格数据隔离 → 微服务与独立数据库
  • 事件驱动通信适合 → 事件源/CQRS

步骤4:将模式与需求匹配

需求 推荐的模式
快速MVP开发 模块化单体
独立团队部署 微服务
复杂领域逻辑 领域驱动设计
高读写比差异 CQRS
需要审计跟踪 事件源
第三方集成 六边形/端口与适配器

查看references/architecture_patterns.md了解详细的模式描述。


单体与微服务决策

选择单体时:

  • [ ] 团队小(<10开发人员)
  • [ ] 领域边界不明确
  • [ ] 快速迭代是优先
  • [ ] 必须最小化操作复杂性
  • [ ] 可接受共享数据库

选择微服务时:

  • [ ] 团队可以端到端拥有服务
  • [ ] 独立部署至关重要
  • [ ] 每个组件有不同的扩展需求
  • [ ] 需要技术多样性
  • [ ] 领域边界被很好地理解

混合方法: 从模块化单体开始。仅在以下情况下提取服务:

  1. 一个模块具有显著不同的扩展需求
  2. 一个团队需要独立部署
  3. 技术限制需要分离

参考文档

加载这些文件以获取详细信息:

文件 包含 加载时用户询问
references/architecture_patterns.md 9种架构模式,包括权衡、代码示例和使用时机 “哪种模式?”, “微服务与单体”, “事件驱动”, “CQRS”
references/system_design_workflows.md 6个系统设计任务的分步工作流程 “如何设计?”, “容量规划”, “API设计”, “迁移”
references/tech_decision_guide.md 技术选择的决策矩阵 “选择哪种数据库?”, “选择哪种框架?”, “选择哪种云?”, “选择哪种缓存?”

技术栈覆盖

语言: TypeScript、JavaScript、Python、Go、Swift、Kotlin、Rust 前端: React、Next.js、Vue、Angular、React Native、Flutter 后端: Node.js、Express、FastAPI、Go、GraphQL、REST 数据库: PostgreSQL、MySQL、MongoDB、Redis、DynamoDB、Cassandra 基础设施: Docker、Kubernetes、Terraform、AWS、GCP、Azure CI/CD: GitHub Actions、GitLab CI、CircleCI、Jenkins


常用命令

# 架构可视化
python scripts/architecture_diagram_generator.py . --format mermaid
python scripts/architecture_diagram_generator.py . --format plantuml
python scripts/architecture_diagram_generator.py . --format ascii

# 依赖关系分析
python scripts/dependency_analyzer.py . --verbose
python scripts/dependency_analyzer.py . --check circular
python scripts/dependency_analyzer.py . --output json

# 架构评估
python scripts/project_architect.py . --verbose
python scripts/project_architect.py . --check layers
python scripts/project_architect.py . --output json

获取帮助

  1. 运行任何脚本时使用--help获取使用信息
  2. 检查参考文档以获取详细的模式和工作流程
  3. 使用--verbose标志获取详细解释和建议