用途:Reducing Entropy 是一个仅限手动启用的技能,目标是让最终代码库的总代码量尽可能小。它不以“减少当前要写的代码”为目标,而以“最终代码更少”为成功标准。
主要能力与原则:核心问题是“改完之后代码库是什么样”。写 50 行却删掉 200 行属于净收益;为省写 2 行而保留 14 个函数属于净损失。“不产生改动”不是目标,更少代码才是目标,衡量的是最终状态而非投入。
使用方式:开始前需从 references/ 目录加载至少一个 mindset。步骤为:列出 reference 目录中的文件,阅读 frontmatter 描述以选择适用的一个,加载至少一个,并说明加载了哪个及其核心原则;未完成前不得继续。
三个提问:一、解决此问题的最小代码库是什么(不是最小改动,而是最小结果),能否用 2 个函数代替 14 个,能否为 0 个函数(删除该功能),这样做会删掉什么;二、所提改动是否让总代码更少,改动前后计数,若之后多于之前则拒绝;三、能删除什么,包括什么因此过时、什么只因被替换之物才需要、最多能移除多少。
警示信号:以“保留现状”为由的现状偏见;“增加灵活性”(YAGNI);“更好的关注点分离”(更多文件/函数即更多代码);“类型安全”(值多少行);“更易理解”(14 个事物不比 2 个更易理解)。
不适用场景:代码库对其功能而言已是最小;处于有强约定的框架中(不要对抗它);法规或合规要求强制特定结构。
限制:仅限手动触发,只有用户明确要求时才启用。新增 mindset 的方式见 adding-reference-mindsets.md。整体偏向删除,衡量最终状态。