mcpField
S
system-design

system-design

github.com/s-hiraoku开发19114 次安装4 周前更新
代码仓库

关于 system-design

面向架构师和开发者的系统设计技能,用于规划系统或重要功能。它涵盖需求梳理、组件拆分、方案权衡、设计文档和检查清单。

主要功能

  1. 01梳理功能与非功能需求
  2. 02拆分系统组件
  3. 03比较架构方案权衡
  4. 04生成结构化设计文档
  5. 05执行架构审查检查

适用场景

  1. 01从零设计系统或重要功能
  2. 02编写架构决策记录(ADR)
  3. 03审查可扩展性与可靠性
  4. 04规划单体拆分或迁移

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/s-hiraoku/synapse-a2a --skill system-design

安装后在 Claude Code 中输入/system-design确认已加载。

详细介绍

系统设计

指导架构决策并生成结构化设计文档。

适用场景

  • 从零开始设计新系统或主要功能
  • 评估不同架构方案之间的权衡
  • 创建架构决策记录(ADR)
  • 审查现有架构在可扩展性、可靠性或可维护性方面的问题
  • 拆分单体应用或规划迁移

工作流

步骤 1:明确需求

开始设计前,先收集以下信息:

  1. 功能需求 —— 系统必须实现什么?
  2. 非功能需求 —— 性能、可用性、安全性和成本约束
  3. 范围边界 —— 哪些内容明确不在范围内?
  4. 现有约束 —— 当前技术栈、团队技能和时间安排

在继续之前,请用户澄清任何含糊的需求。

步骤 2:识别组件

将系统拆分为以下组件:

  • 数据存储 —— 有哪些数据?如何访问?
  • 服务 / 模块 —— 逻辑工作单元有哪些?
  • 接口 —— 组件如何通信?(API、事件、共享数据库、文件)
  • 外部依赖 —— 第三方服务、API、基础设施
步骤 3:评估备选方案

对于每项重要决策,至少记录 2 个选项:

标准选项 A选项 B
复杂度......
可扩展性......
运维成本......
团队熟悉度......

给出一个选项作为建议,并清楚说明理由。

步骤 4:生成设计文档

输出结构化设计文档:

# Design: <Title>

## Context
[Problem statement and motivation]

## Requirements
- Functional: ...
- Non-functional: ...

## Architecture
[Component diagram or description]

## Key Decisions
| Decision | Choice | Rationale |
|----------|--------|-----------|
| ... | ... | ... |

## Data Model
[Schema or entity relationships]

## API Surface
[Key endpoints or interfaces]

## Risks & Mitigations
| Risk | Impact | Mitigation |
|------|--------|------------|
| ... | ... | ... |

## Open Questions
- ...
步骤 5:检查清单

定稿前,请确认:

  • 每个组件只负责一项职责
  • 模块之间不存在循环依赖
  • 已识别并处理故障模式
  • 明确了数据一致性模型(强一致性与最终一致性)
  • 已定义安全边界
  • 已规划可观测性要点(日志、指标、链路追踪)

原则

  1. 从简单开始 —— 只有在需求要求时才增加复杂性
  2. 明确权衡 —— 每项选择都有代价;请将其记录下来
  3. 为变化而设计 —— 接口应保持稳定,实现应可替换
  4. 分离关注点 —— 数据、逻辑和呈现不应相互纠缠
  5. 优雅地处理失败 —— 针对局部故障进行设计,而不只是考虑正常情况

评论

支持 Markdown