用AI慢写高质量代码的新思路
「本文探讨如何利用AI代理在代码审查中慢速但高效地发现并修复深层缺陷,提升代码质量而非追求速度。」
在AI辅助编程的讨论中,一个普遍的观点是AI的目标在于快速产出低质量代码:大量生成勉强可用的“垃圾”,打开庞大的PR,然后不加审查地合并。这种“速度至上”的思维模式被许多人视为AI编码的唯一价值。然而,一位资深开发者提出了相反的见解:LLM(大语言模型)其实非常灵活,完全可以用于更慢但更高质量地编写代码。
作者认为,LLM代理在发现代码缺陷方面表现出色。例如,像Mythos这样的AI代理,如果反复投入到代码库中,会发现大量漏洞,以至于开发者可能不知从何入手处理。其他非Mythos模型,如Anthropic和OpenAI的最新公开模型,同样能够在不经审查的代码库中发现许多问题。关键在于,问题不在于发现漏洞本身,而在于如何对它们进行优先级排序和验证。
为了有效利用AI进行深度代码审查,作者分享了一个自己改编的Claude技能。该技能的核心思想是:对同一PR投入多个不同的模型(如Claude子代理、Codex和Cursor Bugbot),让它们分别按严重性(关键/高/中/低)对漏洞进行排名。然后,开发者需要综合这些发现,进行独立研究以排除误报,并撰写最终报告。这种方法大大降低了幻觉和虚假漏洞的可能性。
在实际操作中,作者定义了自己的“漏洞”标准,包括违反KISS(保持简单和直接)和DRY(不要重复自己)原则、编写不可访问的HTML/JSX、未正确使用SQL索引等。经验表明,这种多模型协作的审查方式总能发现大量漏洞,且误报率接近零。发现的漏洞范围广泛,从关键的安全或正确性缺陷,到中等程度的性能问题,再到低级别的注释误导问题。
作者的典型工作流程是:首先让AI代理修复所有关键和高优先级的漏洞(在作者的指导下选择正确的解决方案),然后重复此过程直到没有关键/高优先级问题。对于中低优先级的漏洞,如果修复成本过高(例如需要100行代码来修复一个狭窄的边界情况),则选择跳过。如果PR中存在过多关键问题,以至于整个方法都有误,那么作者会选择放弃该PR。
使用这种技术后,作者并未感到开发速度明显提升。相反,审查过程常常会发现代码库中预先存在的缺陷,导致作者不得不进行额外的“支线任务”——编写单元测试、修复细微的、早于当前PR的问题。这与人们通常想象的“10倍效率”的“垃圾炮”式开发风格截然相反,但作者认为这种方式非常令人满意。它不仅是修复当前代码,更是通过AI的深度参与,持续提升整个代码库的健康状况。
这种“慢写代码”的方法论,为AI在编程领域的应用提供了新的视角。它提醒我们,AI的价值不仅在于加速产出,更在于提升代码的可靠性和可维护性。对于追求高质量软件开发的团队而言,将AI作为代码审查的深度辅助工具,而非单纯的代码生成器,或许是一条更可持续的道路。
来源:Heooo AI工具导航