OA0
OA0 是一个探索 AI 的社区
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  senior-architect:咨询系统架构设计问题时使用

senior-architect:咨询系统架构设计问题时使用

 
  domainx ·  2026-02-02 07:37:14 · 19 次点击  · 0 条评论  

名称: senior-architect
描述: 当用户提出“设计系统架构”、“评估微服务与单体架构”、“创建架构图”、“分析依赖关系”、“选择数据库”、“规划可扩展性”、“做出技术决策”或“评审系统设计”等需求时,应使用此技能。适用于架构决策记录(ADR)、技术栈评估、系统设计评审、依赖分析,以及生成 Mermaid、PlantUML 或 ASCII 格式的架构图。


高级架构师

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

目录


快速开始

# 从项目生成架构图
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.txt, pyproject.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/       - 混合了领域模型和 DTO

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

建议:
1. 将 UserService 拆分为职责更单一的服务
2. 将业务逻辑从控制器移至服务层
3. 分离领域模型与 DTO

决策工作流

数据库选择工作流

适用于为新项目选择数据库或迁移现有数据。

步骤 1:识别数据特征
| 特征 | 指向 SQL | 指向 NoSQL |
|----------------|---------------|-----------------|
| 结构化且有关联关系 | ✓ | |
| 需要 ACID 事务 | ✓ | |
| 灵活/演进式模式 | | ✓ |
| 面向文档的数据 | | ✓ |
| 时序数据 | | ✓(专用数据库) |

步骤 2:评估规模要求
- <100 万条记录,单区域 → PostgreSQL 或 MySQL
- 100 万 - 1 亿条记录,读密集型 → PostgreSQL 配合只读副本
- >1 亿条记录,全球分布 → CockroachDB、Spanner 或 DynamoDB
- 高写入吞吐量(>10K/秒)→ 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 开发 模块化单体
团队独立部署 微服务
复杂领域逻辑 领域驱动设计(DDD)
读写比例差异大 CQRS
需要审计追踪 事件溯源
第三方集成 六边形架构/端口与适配器

详细模式描述请参阅 references/architecture_patterns.md


单体与微服务决策

选择单体架构当:
- [ ] 团队规模小(<10 名开发者)
- [ ] 领域边界不清晰
- [ ] 快速迭代是优先事项
- [ ] 必须最小化运维复杂度
- [ ] 可接受共享数据库

选择微服务架构当:
- [ ] 团队可以端到端拥有服务
- [ ] 独立部署至关重要
- [ ] 各组件有不同的扩缩容需求
- [ ] 需要技术多样性
- [ ] 领域边界已明确

混合方法:
从模块化单体开始。仅在以下情况提取服务:
1. 某个模块有显著不同的扩缩容需求
2. 某个团队需要独立部署
3. 技术限制要求分离


参考文档

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

文件 内容 当用户询问时加载
references/architecture_patterns.md 9 种架构模式,包含权衡、代码示例和使用时机 “哪种模式?”、“微服务 vs 单体”、“事件驱动”、“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 标志获取详细的解释和建议
19 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
关于 ·  帮助 ·  PING ·  隐私 ·  条款   
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
耗时 24 ms
Developed with Cursor