Subtract Before You Add 是一条面向系统演进的工程实践原则,主要用途是在变更排序上给出指导:当你要为系统添加功能、进行重构或重写时,应当先做减法,再做加法。
核心主张
当系统需要演进时,先移除复杂度,再进行构建。删除会带来一个更简单的基础,从而使下一步添加的内容更小、更脆弱度更低。其原因在于:向一个复杂系统添加内容会叠加复杂度;而先移除可以缩小表面积、揭示本质结构,通常还能让下一步设计变得显而易见。因此,默认选择减法。
把简化当作持续投资
让系统在你身后保持略微更简单、更有能力,同时表面积相同或更小。
包含的模式
- 在构建之前先排序移除操作。
- 先削减再打磨:在投入质量之前先达到最小可用状态。
- 针对实际观察到的使用情况设计,而不是基于臆测的边界情况。
- 不添加超出规格要求的推测性校验器、解析器或守卫。
- 注意超出规格的特性会拖入额外的守卫:持久化、启动重试、模式迁移各自都需要守卫来保护其输入。
- 简化提示词,移除冗余指令和过度模板。
- 当某个引用没有新内容时,直接删除它,而不是留下空壳。
适用场景与限制
该原则适用于对系统进行添加、重构或重写的排序决策场景。资料未提供具体的适用平台、收费方式、价格、具体使用步骤或效果数据。