YAGNI 从来不是在说成本

AI、重构与机会成本

  • 有人认为,AI 已经大幅降低了重构、补测试以及进行复杂的零停机迁移的成本,使“简单、安全的变更”成为首要优化目标。
  • 也有人反驳说,AI 主要只是加速打字和样板代码,而不是缓解真正的瓶颈(协作、风险管理、审批)。
  • 在大型组织中,发布频率受制于官僚流程和风险控制;AI 并不会改变合同期限或治理机制。
  • 还有人担心,AI 生成的测试和代码往往会增加脆弱性,让安全重构 更难,尤其是在代理缺乏良好引导时。

YAGNI、预测与期权类比

  • 核心张力在于:YAGNI 说的是“不要构建假设性的功能/结构”;批评者指出,这本身就是对未来的预测(“你不会需要它”)。
  • 支持者强调:你通常会高估自己预见未来需求的能力;抽象最好是在看到真实用例之后再构建(“三次法则”)。
  • 反对者则说,YAGNI 往往会变成一种条件反射式的“否决”,阻碍合理的面向未来设计,尤其是在开发者不了解领域或忽视利益相关方时。
  • 文中关于金融期权的类比也存在争议:有人把未写出的代码视为保留灵活性;另一些人则认为只有已实现的行为才有价值,而“脚手架”只是付费购买的期权溢价,未必会回本。

抽象、技术债与测试

  • 一派认为,大多数技术债来自过度泛化、未被使用的抽象,它们反而限制了未来变更。
  • 另一派则指出,匆忙、欠缺架构的代码、层次违规以及薄弱的测试,后来会变成“承重式烂摊子”。
  • 对 AI 驱动的测试生成也有人批评,认为它会创建庞大且脆弱的测试套件;而变异测试在一些人看来则过于强调捕捉任何代码变化,进一步抬高重构成本。

流程语境:敏捷、瀑布与领域约束

  • 硬件/芯片以及安全关键领域被强调为并不适合敏捷/YAGNI 式思维的地方,因为变更成本极高;更传统、类似瀑布的流程以及独立验证仍然是标准做法。
  • 也有人指出,“左移”和迭代式实践在敏捷品牌化之前就已存在很久;敏捷主要只是将其打包并推广普及。

对文章与 AI 使用的反应

  • 几位评论者认为文章主体内容不连贯,像“语义垃圾”,并将其归因于其中明确由 AI 生成的部分。
  • 有人把这篇帖子看作是对“代理优化”的有益实验;也有人认为它只是分散注意力,削弱了 YAGNI 论点本身。