首页/开发/代码质量与评审速查/YAGNI:不要为假想需求设计
设计原则与模式62 条

YAGNI:不要为假想需求设计

YAGNI(You Aren't Gonna Need It,极限编程实践)主张:只在真实需要时实现功能;未验证的扩展点、为将来预留的配置面都是要支付维护成本的负债。

原则按需构建,推迟决策
对应手法删除投机性抽象(Speculative Generality)
例外已明确的近期路线图可适度预留接缝

常见信号

常见信号
□ 只有一个实现的接口层
□ 从没被传过的配置参数
□ 从没触发的插件钩子
□ 「为性能预留」但无基准的缓存

易错点

  • 打着 YAGNI 拒绝合理抽象:重复逻辑成本更高
  • 误判「将来」:已承诺的交付日期与兼容需求应纳入设计

数据来源与参考

  • Extreme Programming 实践(YAGNI);Ron Jeffries 关于 YAGNI 的论述
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌