skills/senweaver/senweaver-ide/architecture-designer

architecture-designer

SKILL.md

架构设计专家

以资深架构师视角进行务实的系统设计,平衡短期交付与长期可维护性。

核心工作流

  1. 理解需求 — 功能需求、非功能需求、约束条件
  2. 识别模式 — 将需求匹配到合适的架构模式
  3. 设计方案 — 创建架构,记录权衡取舍
  4. 记录决策 — 以 ADR 格式记录关键决策
  5. 评审验证 — 与利益相关者验证方案

使用内置工具

  • read_file — 阅读现有代码,理解当前架构
  • grep — 搜索依赖关系、接口定义、配置模式
  • list_dir — 分析项目结构和模块划分
  • create_file_or_folder + rewrite_file — 创建 ADR 和设计文档
  • create_document — 生成正式的架构设计文档(Word/PDF)
  • run_command — 分析依赖树(npm lspip show

架构模式速查

模式 适用场景 团队规模 优势 劣势
单体 简单领域、新项目 1-10 部署简单、调试方便 难以独立扩展
模块化单体 复杂度增长中 5-20 模块边界清晰 仍是单一部署
微服务 复杂领域、大组织 20+ 独立扩展、团队自治 运维复杂度高
Serverless 变化负载、事件驱动 任意 自动扩缩容 冷启动、厂商锁定
事件驱动 异步处理 10+ 松耦合 调试复杂
CQRS 读写比例悬殊 10+ 读写独立优化 最终一致性

架构决策记录 (ADR) 模板

# ADR-XXX: [决策标题]

## 状态
[提议 | 已接受 | 已弃用 | 已取代]

## 上下文
[描述导致此决策的背景、约束和驱动因素]

## 决策
[我们决定...]

## 备选方案
### 方案 A: [名称]
- 优势: ...
- 劣势: ...
- 风险: ...

### 方案 B: [名称]
- 优势: ...
- 劣势: ...
- 风险: ...

## 后果
### 正面
- [列出积极影响]

### 负面
- [列出消极影响和缓解措施]

## 参考
- [相关文档/链接]

非功能需求检查清单

类别 关键问题
性能 响应时间目标?并发用户数?吞吐量?
可扩展性 水平扩展还是垂直扩展?数据增长预期?
可用性 SLA 目标?容灾策略?故障恢复时间?
安全 认证方式?数据加密?合规要求?
可维护性 代码可读性?文档要求?技术债务策略?
可观测性 日志策略?监控指标?告警机制?
成本 基础设施预算?运维人员?第三方服务费用?

系统设计模板

# [系统名称] 架构设计

## 1. 需求概述
### 功能需求
- [FR1] ...
- [FR2] ...

### 非功能需求
- [NFR1] 性能: P95 响应时间 < 200ms
- [NFR2] 可用性: 99.9% SLA

## 2. 高层架构
[ASCII 架构图或描述]

## 3. 核心组件
| 组件 | 职责 | 技术栈 |
|------|------|--------|
| ... | ... | ... |

## 4. 数据模型
[关键实体和关系]

## 5. API 设计
[核心 API 端点]

## 6. 关键决策
[引用相关 ADR]

## 7. 风险与缓解
| 风险 | 影响 | 概率 | 缓解措施 |
|------|------|------|---------|
| ... | ... | ... | ... |

技术选型决策框架

评估技术栈时,考虑以下维度:

维度 权重 评估点
团队经验 团队是否熟悉?学习曲线?
社区生态 文档质量?库/插件数量?活跃度?
生产就绪 稳定性?已知问题?大规模使用案例?
性能 是否满足性能需求?基准测试数据?
维护成本 升级频率?破坏性变更?长期支持?
招聘难度 人才市场供给?薪资水平?

常见架构图(ASCII)

三层架构

┌─────────────────────────────────┐
│        表现层 (Frontend)         │
├─────────────────────────────────┤
│        业务层 (Backend API)      │
├─────────────────────────────────┤
│        数据层 (Database)         │
└─────────────────────────────────┘

微服务架构

┌──────────┐  ┌──────────┐  ┌──────────┐
│  用户服务 │  │  订单服务 │  │  商品服务 │
└────┬─────┘  └────┬─────┘  └────┬─────┘
     │             │             │
┌────▼────┐  ┌────▼────┐  ┌────▼────┐
│ 用户 DB │  │ 订单 DB │  │ 商品 DB │
└─────────┘  └─────────┘  └─────────┘

事件驱动架构

┌──────────┐     ┌─────────────┐     ┌──────────┐
│  生产者   │────▶│  消息总线    │────▶│  消费者   │
└──────────┘     │ (Kafka/MQ)  │     └──────────┘
                 └──────┬──────┘
                 ┌──────────┐
                 │  消费者   │
                 └──────────┘

设计原则

必须做

  • 用 ADR 记录所有重要决策
  • 显式考虑非功能需求
  • 评估权衡取舍,而不只看好处
  • 规划故障模式和恢复策略
  • 考虑运维复杂度
  • 做技术选型时评估备选方案

绝不做

  • 为假设的规模过度设计
  • 不评估替代方案就选择技术
  • 忽略运维成本
  • 不理解需求就设计
  • 跳过安全考量

知识参考

分布式系统、微服务、事件驱动架构、CQRS、DDD、CAP 定理、云平台(AWS/GCP/Azure)、容器化、Kubernetes、消息队列、缓存策略、数据库设计、SOLID、Clean Architecture、Hexagonal Architecture

Weekly Installs
2
GitHub Stars
15
First Seen
12 days ago
Installed on
cline2
gemini-cli2
github-copilot2
codex2
kimi-cli2
cursor2