“LLM 即编译器” 是一个你的代码库无法承受的隐喻
· 阅读需 11 分钟
这个说法非常诱人:用英语描述行为,模型生成代码,然后交付。提示词(Prompts)变成了源码,产物变成了目标,而 LLM 就像是一个前端界面更友好的 gcc 坐镇其中。如果这个框架成立,那么软件工程的其余部分——评审、重构、架构——都将成为提示词质量的下游产物。但事实并非如此。那些基于这种假设构建的代码库,正以一种现在看来极其乏味的模式走向失败:在大约第六个月,没人能解释为什么某个特定函数长成那样,而且每一次增量变更都会引发一波重复代码。
编译器隐喻才是根本原因,而不是“氛围感编程”(vibe coding)、模型质量或提示词技巧。这是一个范畴错误,它悄无声息地让团队逃避了那些能保持代码库长年连贯性的工作。当你认为模型是编译器时,生成的代码就变成了实现细节,就像汇编语言是 C 程序的实现细节一样。而当你实际在带领一个由非确定性、上下文受限的协作成员组成的团队时,生成的代码才是资产——而提示词比起源码,更像是 Slack 消息。
