像给人维护那样写代码

查看原文 HN 讨论

文章摘要

作者 Scott Robinson 从一次亲身经历出发,反思了 AI 辅助编程时代”代码质量还要不要坚持”这个问题。他坦白,在一个由 AI 大量参与的项目里,自己一度放松了标准:反正代码即使不遵循最佳实践,”以后要改也是 LLM 去改,不是我,那还有什么区别?”这种想法听上去顺理成章,却隐藏着一个致命误解。

文章的核心洞见是:你的代码本身就是喂给模型的训练数据(更准确说是上下文信号)。LLM 不是从第一性原理出发写代码,而是阅读现有代码库里的既有模式并加以复制。因此”你合并进代码库的每一个捷径,都是在向模型宣告’我们这儿就是这么干的’“。作者给了一个具体例子:他在多个位置(路由处理器、后台任务、API 端点)反复需要几乎完全相同的访问权限校验逻辑。本该抽取一个共享的辅助函数,但他任由 LLM 生成了四份近乎一模一样的条件判断。等到需要第五个类似函数时,模型自然产出第五份重复的条件分支,而不会主动建议重构——因为代码库已经把”复制粘贴”标记成了这里可接受的风格。

于是出现了”模式升级”:一次重复被默许,就会被固化为惯例,坏习惯层层累积。作者最终意识到,他以为自己是在把维护工作外包给 AI,实际上是在”训练它养成越来越糟糕的习惯”。结论很朴素但有力:把代码质量当作对 AI 系统的永久性指令,主动维持专业标准,因为你今天写下的每一行,都在塑造它明天的输出。

HN 评论精华