1.8 KiB
1.8 KiB
title, type, tags, last_updated
| title | type | tags | last_updated | |||
|---|---|---|---|---|---|---|
| MinimalChangePrinciple | concept |
|
2026-05-02 |
Definition
最小变更原则(MinimalChangePrinciple)是一种代码变更方法论:每个变更行的存在都必须有任务明确要求的理由,而非"更好""更整洁""为未来做准备"。目标是以最小可工作的差异集(minimum viable diff)完成给定任务。
Core Questions
"Does the task require this exact line?"
变更每一行之前,必须通过以下测试:
- 必要性:任务是否明确要求了这一行?
- 最小性:能否以更少的变更行达到同样效果?
- 可解释性:这一行变更对未来的代码维护者是否可理解?
Contrast with Traditional Code Quality
| 维度 | 传统观点 | 最小变更原则 |
|---|---|---|
| 新增代码 | 越多越好(健壮性) | 越少越好(降低维护成本) |
| 文档 | 应该详细添加 | 不为未修改代码添加文档 |
| 重构 | 遇到问题就重构 | 与任务变更分离,独立 PR |
| 防御性代码 | 宁多勿缺 | 仅在系统边界添加 |
| 代码风格 | 统一风格 | 不为统一风格而修改无关代码 |
Success Metrics
- Median diff size < 30 lines changed per task
- 80%+ bug fix PRs touch ≤ 2 files
- Zero "while I'm here" changes in any PR
- Review time reduced 50%+
- Regression rate near zero
Connections
- engineering-minimal-change-engineer:最小变更原则的具体实践者
- PrematureAbstraction:最小变更原则反对在第四次出现前提取抽象
- ScopeCreep:最小变更原则是对抗范围蔓延的核心策略
- engineering-code-reviewer:代码审查者是检验最小变更原则的最后一道防线