复制代码比错误抽象更划算
推荐指数 46.0 NO. 011 · 2026.06.22
发布2026/06/21Score265Comments183
为什么值得看
Sandi Metz 提出软件工程中的反直觉原则:刻意保留重复代码,优于强行抽取错误的抽象层。对 AI 工程团队尤其重要——大模型生成的"优雅"抽象往往是过度设计的重灾区,后期重构成本极高。
编辑判断
Metz 这条 2016 年的推文至今被反复引用,恰恰因为 LLM 时代问题更严重了。Copilot 和 Cursor 生成的代码极度倾向于"优雅"抽象——一个接口套一个工厂,命名还很有迷惑性。团队如果缺乏足够 senior 的 code review,很容易在三个月后发现这些抽象成了改不动的混凝土。
实际可执行的做法:设定一个"复制阈值",比如同一段逻辑出现第三次时才考虑抽象,且抽象前必须写下"这次变什么、下次可能怎么变"。AI 生成的抽象层要额外加一个"试用期",跑满两个迭代周期再固化到主分支。
这条原则对做 AI Infra 的团队尤其痛——训练 pipeline 的抽象层一旦错了,不是改代码的问题,是重跑实验和重新对齐数据的问题,成本放大百倍。
社区反馈
意见分歧 163 条评论
核心争论:过度抽象与代码重复的权衡,微服务是否加剧设计失误
相关内容
You can do both with microservices!
But wait! There's more! For $19.95, you can replace your single single point of failure with multiple single points of failure!
Or for 100$, get a 5x increase on all failure points - maximum vibes, maximum excitement.