Scale Game 是一种通过极端尺度测试来暴露系统根本问题的思维方法,属于 obra/superpowers-skills 技能集。
用途 它的核心原则是:极端条件会暴露在正常尺度下被隐藏的根本真相。通过把方案放到远超正常范围的条件下检验,可以找出哪些部分会崩溃、哪些部分会意外地依然成立。
主要能力 技能围绕多个尺度维度展开测试,并说明每个维度能揭示什么:
- 容量:从 1 个条目到 10 亿个条目,揭示算法复杂度的极限。
- 速度:从瞬间到一年,揭示异步需求和缓存需求。
- 用户数:从 1 个用户到 10 亿用户,揭示并发问题和资源限制。
- 持续时间:从毫秒到数年,揭示内存泄漏和状态增长。
- 失败率:从从不失败到总是失败,揭示错误处理是否充分。
使用方式 技能给出一个流程:
- 选择维度——什么可能发生极端变化?
- 测试最小值——如果它缩小/加快/减少 1000 倍会怎样?
- 测试最大值——如果它放大/减慢/增加 1000 倍会怎样?
- 记录崩溃点——限制出现在哪里?
- 记录幸存点——什么是根本可靠的?
示例
- 错误处理:正常尺度下“出错时处理错误”可行;到 10 亿尺度时,错误量会淹没日志并导致系统崩溃。这揭示出需要让错误不可能发生(类型系统),或者预期错误会发生(混沌工程)。
- 同步 API:正常尺度下直接函数调用可行;到全球尺度时,网络延迟会让同步调用不可用。这揭示出异步/消息传递成为生存必需,而非优化项。
- 内存状态:正常持续时间下可运行数小时或数天;到数年时内存无界增长并最终崩溃。这揭示出需要持久化或定期清理,不能依赖内存。
适用场景 当出现以下信号时,说明需要这个技能:
- “在开发环境能跑”(但生产环境能跑吗?)
- 不知道限制在哪里
- “应该能扩展”(但没有测试过)
- 被生产环境的行为吓到
限制 资料未提供该技能的具体实现代码、安装命令、依赖要求、平台支持或收费信息,暂未提供。