为什么我无法完全接受用 LLM 写代码I can never fully embrace LLMs for code
作者通过教导计算机专业妹妹编程的经历指出,在不理解代码逻辑的情况下盲目信任和使用代码是极其危险的。如今的 LLM 编程工具恰恰鼓励了这种黑盒式的开发习惯,让开发者像调用经过审查的库一样使用生成的代码。然而,LLM 生成的代码并未经过严格的测试和验证,其可靠性远低于标准库。过度依赖它会导致开发者失去对底层逻辑的掌控力,最终引发严重的技术债。
Ibrahim Diallo
几年前,我妹妹拿到了计算机科学(CompSci)学位。从一开始我就支持她,鼓励她,并为她揭开编程世界的神秘面纱。有一条建议我每天都在重复,试图让她明白该如何操作。问题在于,她总是在使用一个函数之前,试图先阅读并理解其中的每一行代码。我觉得这毫无道理。某个比我们聪明得多的人已经编写了这个函数,它是经过严格审查的成熟库的一部分,并且已经被充分测试过了。你所要做的就是直接拿来用。“毕竟,你不需要懂内燃机是怎么工作的,但你开车时依然觉得很安心,不是吗?”
现在,我发现自己恰恰处于那个转折点。当我使用 LLM 生成代码时,无论是定义单个函数还是创建长时间运行的任务,我都发现自己必须先理解它。我无法提交连我自己都不理解的代码。
我曾发帖提到,自己如何花了 10 个小时去重写 AI 在 12 分钟内生成的代码。我这么做并不是因为我不喜欢它的代码风格或命名规范。我这么做是因为代码根本跑不通。就这么简单。每次我生成代码并盲目相信它能正常运行时,它总会出错。当我用同一个生成器去修复问题时,它可能修得好,也可能修不好。这下好了,我反而多出了一个问题。
然而,全世界都在用 Claude、Codex 之类的工具来写代码。人们像信任内燃机一样信任它,而我却在尝试搞懂其中的每一部分后才敢使用。我这种对理解代码的执念,完全拖慢了代码生成速度带来的效率提升。
这意味着,我无法借助这个工具成为一名 10x 工程师。我不能像调用其他开发者验证过的函数那样去调用它,因为在我调用之前,这段代码压根就不存在。我不知道它到底是在照搬 Jon Skeet 在 Stackoverflow 上的高赞回答,还是在抄袭我自己那些被大家投票删除的低质量帖子。
我不知道自己是该换一个比喻,还是干脆直接信任它背后的工程原理。
需要完整排版与评论请前往来源站点阅读。