Hacker News 中文摘要

RSS订阅

用AI慢工出细活写优质代码 -- Using AI to write better code more slowly

文章摘要

文章指出,AI编程工具不仅可以快速生成低质量代码,更能通过反复检查发现代码中的错误,帮助开发者更慢但更高质量地编写代码。作者强调当前主流AI模型已具备较强的错误检测能力,关键问题在于如何有效处理这些被发现的问题。

文章总结

标题:用AI更慢地写出更好的代码

许多人认为AI编程的意义在于尽可能快地写出低质量代码——喷涌出勉强可用的垃圾,提交大量未经审查的PR,然后直接合并发布。但事实上,大语言模型(LLM)具有高度灵活性,同样可以用于更缓慢地编写高质量代码。

从Mythos项目获得的经验表明,LLM代理非常擅长发现代码错误。只要反复扫描代码库,它们就能找出多到令人应接不暇的缺陷。不仅专业模型如此,Anthropic和OpenAI的最新公开模型也足以在未经审查的代码中发现大量问题。

真正的挑战不在于发现错误,而在于优先级排序和验证。为此,我开发了一个基于多模型辩论的Claude技能:同时使用Claude子代理、Codex和Cursor Bugbot来审查PR,按照严重/高/中/低等级分类错误,最后人工验证并生成最终报告。这个方法的误报率接近零,能发现从关键安全漏洞到"注释误导"等各类问题。

我的典型工作流程是: 1. 优先修复关键和高优先级问题(在指导下) 2. 跳过修复成本过高的中等问题 3. 当发现过多关键错误时直接废弃PR

使用这种方法虽然不会提高编码速度,反而经常需要处理PR之前就存在的缺陷,包括编写单元测试和修复历史问题。这与大众想象的"10倍生产力"开发模式截然相反,但能显著提升代码库的整体健康度,并帮助开发者深入理解系统架构。

对于习惯用AI快速生成数百行代码的开发者,我建议尝试这种更慢节奏的"氛围编程":让AI解释PR的工作原理和潜在故障点,生成包含Mermaid图表的技术文档,使用Matt Pocock的"/grill-me"技能彻底理解每个细节。这种方式可能不会提高代码产量,甚至可能发现整个方案从根本上就是错误的,但它代表着一种更注重质量、更关注后续开发者体验的编程哲学。

最终,这关乎选择:是要快速产出大量代码,还是缓慢但确凿地提升代码质量。深呼吸,放慢节奏,你可能会发现——更慢地写出更好的代码,本身就是一种享受。

评论总结

以下是评论内容的总结,按观点分类呈现:

【AI作为编程导师】 1. 正面体验:用户kiba(评论1)认为LLM是优秀的编程导师,能提供即时反馈,但过程较慢。"LLM会不知疲倦地指出错误"(I used LLM as a tutor...The LLM will happily tirelessly show me what I did wrong) 2. 注意事项:需保持主导权,避免理解能力下降。"如果我不自己写代码,阅读理解能力会下降"(my reading comprehension begins to suffer if I don't write the code myself)

【代码审查流程】 1. 多模型协作:bottlepalm(评论3)描述多模型迭代审查流程,虽耗时但质量高。"Claude擅长可维护代码,Codex擅长找边界案例"(Claude is better at writing intuitive maintainable code versus Codex overengineered code) 2. 自动化工具:alasano(评论4)开发自动化审查系统,可运行24+小时自动修复。"实现和审查过程可能持续2小时到24+小时"(run anywhere from 2 hours to 24+ hours going through review/fix/verification rounds)

【工作流争议】 1. 效率质疑:justinlivi(评论10)认为人工编码可能更快,但AI迭代能提高质量。"LLM审查/解决循环比手动编码更耗时"(spending more time in LLM review/resolution loops than writing by hand) 2. 适度使用:slopinthebag(评论9)建议将AI作为辅助而非替代。"作为增强而非委托工作"(use it as augmentation rather than delegating)

【模型选择策略】 1. 智能平衡:syntaxing(评论11)倾向使用"较笨"模型保持警惕。"笨到让我不信任它"(dumb enough where I don't trust it) 2. 专项优势:vessenes(评论12)认为LLM擅长模板代码。"实际上只擅长模板代码"(only good at boilerplate ca 2023 or so)

【批评意见】 1. 内容不足:smusamashah(评论5)批评文章缺乏实例。"期待实际代码示例但只是观点文章"(expecting actual code examples...just opinion pieces) 2. 哲学担忧:crabmusket(评论8)质疑AI的社会影响。"不是'是否有效'而是'对世界是否有利'"(not "do they work" but "are they good for the world")

【架构思考】 TACIXAT(评论13)指出AI编码缺乏微观决策能力。"我几乎从没有完整的前期规范"(I almost never have a full spec up front)

总结显示评论者普遍认可AI在代码审查和辅助编程方面的价值,但对完全自动化工作流持保留态度,强调保持人类主导权和适度使用的重要性。不同观点反映了使用场景和偏好的多样性。