关于 Scale Game
Scale Game 是一项开发技能,通过在极端规模下测试方案,揭示其限制与经得起考验的部分。它引导工程师从数量、速度、用户数、持续时间和故障率等维度检验大小两端。
主要功能
- 01选择要测试的规模维度
- 02检验最小与最大条件
- 03找出方案失效的位置
- 04记录仍然稳健的部分
适用场景
- 01部署前发现生产环境限制
- 02评估架构在极端条件下的表现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ obra/ superpowers-skills --skill scale-game安装后在 Claude Code 中输入/scale-game确认已加载。
详细介绍
规模测试
概述
在极端规模下测试你的方案,找出哪些会崩溃,哪些却能出乎意料地经受住考验。
**核心原则:**极端情况会揭示被正常规模掩盖的根本事实。
快速参考
| 规模维度 | 极端测试范围 | 揭示的问题 |
|---|---|---|
| 数量 | 1 个项目 vs 10 亿个项目 | 算法复杂度限制 |
| 速度 | 即时 vs 1 年 | 异步需求、缓存需求 |
| 用户 | 1 个用户 vs 10 亿个用户 | 并发问题、资源限制 |
| 持续时间 | 毫秒 vs 数年 | 内存泄漏、状态增长 |
| 失败率 | 从不失败 vs 总是失败 | 错误处理是否充分 |
流程
- 选择维度 - 哪些方面可能发生极端变化?
- 测试最小值 - 如果规模缩小、速度加快或数量减少 1000 倍,会怎样?
- 测试最大值 - 如果规模扩大、速度变慢或数量增加 1000 倍,会怎样?
- 记录故障点 - 限制出现在哪里?
- 记录经受住考验的部分 - 哪些设计从根本上是可靠的?
示例
示例 1:错误处理
正常规模:“发生错误时进行处理”效果很好 **规模达到 10 亿时:**错误数量压垮日志系统,导致系统崩溃 **揭示的问题:**需要让错误不可能发生(类型系统),或做好面对错误的准备(混沌工程)
示例 2:同步 API
**正常规模:**直接函数调用可行 **全球规模:**网络延迟会让同步调用无法使用 **揭示的问题:**异步/消息传递成为生存必需,而非优化手段
示例 3:内存状态
**正常持续时间:**运行数小时或数天没有问题 **持续数年时:**内存无限增长,最终导致崩溃 **揭示的问题:**需要持久化或定期清理,不能依赖内存
需要进行此项测试的警示信号
- “在开发环境中能运行”(但在生产环境中也能运行吗?)
- 不清楚限制在哪里
- “应该能很好地扩展”(但没有经过测试)
- 对生产环境中的表现感到意外
请记住
- 极端情况会揭示根本问题
- 在一种规模下可行的方案,在另一种规模下可能失效
- 双向测试(更大 AND 更小)
- 尽早利用测试结果验证架构
评论
支持 Markdown