mcpField
S
Simplification Cascades

Simplification Cascades

github.com/obra开发756521 次安装54 周前更新
代码仓库

关于 Simplification Cascades

Simplification Cascades 是面向开发者的软件设计技能,帮助识别重复实现背后的共同原则,并以合适的抽象减少复杂度。

主要功能

  1. 01发现重复实现
  2. 02识别共同原则
  3. 03提取通用抽象
  4. 04检验案例是否适用
  5. 05衡量精简的复杂度

适用场景

  1. 01减少重复代码路径
  2. 02替代不断增长的特例列表
  3. 03简化带有例外的规则

安装

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

$npx skills add https://github.com/obra/superpowers-skills --skill simplification-cascades

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

详细介绍

简化级联

概述

有时,一个洞见就能消除 10 项内容。寻找那个能让多个组件变得多余的统一原则。

核心原则:“一切都是……的特例”能大幅降低复杂度。

快速参考

症状可能的级联
同一件事有 5 种以上实现方式抽象出共同模式
特例列表不断增长找到一般情况
规则复杂且例外很多找到没有例外的规则
配置选项过多找到适用于 95% 场景的默认值

模式

留意:

  • 多种相似概念的实现
  • 到处都是特例处理
  • “我们需要对 A、B、C、D 做不同处理……”
  • 有许多例外的复杂规则

询问:“如果它们底层其实都是同一回事呢?”

示例

级联 1:流抽象

**之前:**分别处理批量、实时、文件和网络数据 洞见:“所有输入都是流——只是来源不同” **之后:**一个流处理器,多个流来源 **消除:**4 种独立实现

级联 2:资源治理

**之前:**会话跟踪、速率限制、文件验证、连接池(全部独立) 洞见:“它们都是针对每个实体的资源限制” **之后:**一个包含 4 种资源类型的 ResourceGovernor **消除:**4 套自定义强制执行系统

级联 3:不可变性

**之前:**防御性复制、锁定、缓存失效、时间耦合 洞见:“将所有内容视为不可变数据和转换” **之后:**函数式编程模式 **消除:**整类同步问题

流程

  1. 列出不同实现——哪些内容有多种实现方式?
  2. 找到本质——它们底层有哪些相同之处?
  3. 提取抽象——与领域无关的模式是什么?
  4. 进行测试——所有情况都能自然适用吗?
  5. 衡量级联效果——有多少内容因此变得多余?

你可能错过级联的警示信号

  • “我们只需要再加一种情况……”(一直重复)
  • “这些都很相似,但又各不相同”(它们会不会其实是同一回事?)
  • 重构像打地鼠(修好一个,又弄坏另一个)
  • 配置文件不断增大
  • “别碰那个,太复杂了”(复杂性掩盖了模式)

请记住

  • 简化级联带来的是 10 倍收益,而非 10% 的改进
  • 一个强大的抽象胜过十个巧妙的变通方案
  • 模式通常早已存在,只是需要被识别出来
  • 用“我们能删除多少内容?”来衡量

评论

支持 Markdown