大语言模型能干的远不止写代码,还能帮你调试。当 bug 不明显,控制台输出又净误导你的时候,把一段代码丢给 AI 编程助手,让它慢慢排查,是拯救一个被毁掉的周二的好办法。
现在可选的方案很多——有免费的、有付费的,你甚至能在本地跑最大的开源模型。所以我搞了个小测试:写了一个 JavaScript 文件,里面埋了三个不同的 bug,然后丢给 Gemini、ChatGPT 和 Claude 去修。这仨 bug——作用域问题、异步竞态问题,还有一个因为按索引赋值导致顺序不确定的问题——都特别容易被看漏,分分钟毁掉你一个美好的下午。不过还好,你有几个 AI 工具能帮你救场。
Gemini 试着打了个补丁
猜得快——但没找准真正的问题
Gemini 速度居中间:它给出了两个不同的结果,比 ChatGPT 快,但比 Claude 慢。它确实找对了作用域问题,还讲了块级作用域,算是解决了部分问题。不过,它完全漏掉了后面代码里那个随机延迟导致的竞态条件。
所以它推出的那个修复,表面上看代码没问题,但严格来讲并不正确。你运行一下代码,再看看控制台,还是会出问题。Gemini 给出的两个回复里,有一个甚至根本没解释改了什么,或者这些改动对你的代码有什么影响。同一个提示词跑了好几次,结果也都不一样,其中一次它倒是检测到了异步竞态问题,可那个跟索引赋值有关的 bug 还是没发现。
ChatGPT 倒是很接近了
分析得不错,但诊断不全
ChatGPT 慢一些,但没白等。首先,三个 bug 它全找出来了——作用域问题、缺少 await 导致最后的日志提前打印,还有随机延迟让结果顺序变得不确定。而且解释很有条理,新手也能看懂。
它还给出了三种不同的修复方案,每种方案的影响都不一样。它最推荐的做法是给代码打补丁,并想当然地认为另一部分会自动跟着适配。这在技术上是没错,但那样解决不了根本问题。那不是修 bug,而是把问题往后拖。
不过讲句公道话,ChatGPT想用正确的方法去修,也就是去修脚本里的一个循环,这是另一种方案。不过它也说了,虽然这么修是对的,但跑起来会更慢。
Claude 还真把这些 bug 给找出来了
唯一一个真正说到点子上的
Claude 反应最快,拿出的方案也最完整。它没有给出多个答案,也没有给出一堆不同写法的修复代码。它把那三个问题都找了出来,然后不慌不忙地一个一个解释、打补丁。注意,我这次测的是 Claude Chat,不是 Claude Code。不过,Claude 刚回复完就马上建议我换成 Claude Code。
它的回答也不像 Gemini 或 ChatGPT 那样简单糊弄。虽然 Claude 解释得技术上没毛病,但你得懂 JavaScript 才能明白它说的是啥。这对老程序员没问题,但一个新手要是只是摆弄网上找来的脚本,可能还得接着让它用更直白的话再解释一遍。不管怎样,Claude 也很擅长收拾 ChatGPT 生成的代码,所以你要是想找个调试工具,它可能就是你要找的那一个。
没有准确性的速度毫无意义
正确比快速更重要
曾有一段时间,Claude 准确但缓慢,而 ChatGPT 准确且快速。从技术上讲,你可能会说 ChatGPT 和 Claude 打成平手,但 Claude 的回答通常更完整、更正确、结构更清晰——而另外两者在同一时间内只能完成部分回答,甚至耗时更多。
这种组合在调试过程中具有实际价值,并且会随着时间推移而累积。如果你在处理一个特别庞大的代码库,每节省一分钟,最终可能会累积成数小时。更不用说,如果你只做表面修复来打补丁,最终可能会引发更多或完全不同的问题,那将带来更多困惑。
为实际调试工作选择合适的人工智能
这对开发者实际上意味着什么
某些任务上大语言模型会产生幻觉,但无论如何,它们在代码生成和调试方面都极为有用。Gemini 在许多任务上很有用,尤其是其与 Google 生态系统的集成;而 ChatGPT 能发现并修补大多数(如果不是全部的话)错误,尽管有时给出的解决方案会令人困惑。Claude 同时具备更快的速度和更高的一致性,这是一个难以忽视的优势。
当你在处理那些需要追踪执行流程中并不显而易见的因果关系的问题时,这种更强的推理能力会更加细致和完整——这意味着你往往能修复根本原因。对于快速的功能检查,三者中任何一个都可以胜任。但当你面对具有误导性或技术性更强的错误时,Claude 可能是更好的选择。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.