SuperAPI AI 工具集

system-design

编程与开发

查看项目

更新于 11-05 18:59

技能介绍

该技能用于在任何新应用、服务或重大功能的代码编写之前,开展一次系统设计会话。其定位是“先设计、后编码”,核心流程是把设计决策写下来,等到用户批准 DESIGN.md 之后才开始写代码。技能说明明确指出,这是设计会话,不是写代码;任务在于帮助用户理清思路、做出后期难以更改的决策并记录,然后停止。

【主要能力与规则】

  • 未经批准不写任何代码,包括脚手架、npm init、快速原型;DESIGN.md 中可以有 schema 和 API 形状。若用户要求跳过,需说明尚未决定的事项,并提供一步填入默认值。
  • 每轮只问 2-3 个问题,每个问题附带建议默认值和一行理由,用户可回答“default”接受建议。
  • 每个阶段结束给出 2-4 行总结并确认“Correct? Anything to change?”后再进入下一阶段。
  • 每个组件必须对应第 2 阶段的需求或数字,否则不予保留。
  • 每个实际选择都写决策记录;按规模适度设计,只留约一个数量级的余量。
  • 不编造用户世界的事实,未知则询问或标为 ASSUMPTION 并列入 DESIGN.md。

【适用与轻度使用】 适用:新应用或服务、新增数据存储/队列/外部集成/公开 API 的功能、重写。轻度(仅 1、3、4 阶段,约 10 分钟):脚本、CLI、单用户工具、黑客松演示、约 20 人以下的内部工具。跳过:缺陷修复、不新增组件的重构、文案或 UI 调整。

【规模分级】

  • T0 玩具/个人:1 用户、演示、脚本;单进程、SQLite 或文件、无认证或简单认证。
  • T1 副项目/MVP:约 1 万用户以下、1-2 名开发者;单体应用 + 一个 SQL 数据库。
  • T2 成长产品:1 万-100 万用户;单体 + Postgres + 热点缓存 + 后台任务队列,2 个以上实例置于负载均衡后。
  • T3 大型/关键:100 万以上用户;增加复制、故障转移、SLO,可能按已验证边界拆分服务。 常见错误包括:T1 就用 Kafka、Kubernetes、分片、微服务、多区域;T2+ 却无备份、无认证设计、监控以后再加。

【8 个阶段问题库】

  1. 定义问题:用户是谁、3 个核心用例、v1 明确不做什么、约束(截止期、预算、团队、技术栈)、非功能需求、成功标准。
  2. 估算规模:首年用户数与日活、每用户每日读/写次数、每次写入存储量与保留期、流量峰值;给出容量计算表格并用平实语言解释含义。
  3. 映射系统:客户端类型、主要 API 调用(METHOD /path)、慢或外部请求转后台任务;默认形状为客户端 -> 一个应用 -> 一个数据库。
  4. 存储与检索:实体与关系、表结构(列、类型、主键、唯一约束)、常见查询与索引、关系型或键值选择、保留与删除、备份;除非规模触发,跳过分区/分片。
  5. 处理流量:单实例能否承受峰值、静态文件走 CDN、热读缓存及失效策略、限流、背压、自动扩缩容(T2+)。
  6. 协调工作:同步与异步划分、队列选择、重试(超时、最多 3 次、指数退避与抖动、仅一层重试)、幂等键、顺序、死信、LLM 调用按慢外部 API 处理。
  7. 可靠性:所需可用性、1-2 个 SLO(用百分位而非平均)、故障走查、RPO/RTO、一致性要求、冗余计算。
  8. 运维与安全:认证、按角色授权并校验归属、密钥管理、加密、输入校验、可观测性四信号、滥用控制。

【附带的参考内容】 包含容量计算速查表(writes/day、reads/day、平均 RPS、峰值 RPS、年度存储、带宽、缓存大小、月度换算快捷方式、数据量级、延迟参考表、停机预算表),决策记录格式(D<n>、上下文、选项、决定、原因、放弃项、复查触发条件)及一行摘要形式。资料末尾的“典型决策”列表在“caching”处被截断。