【新智元导读】2024年AI编程的真实实力是什么?谷歌工程主管Addy Osmani为我们揭示了AI辅助编码在实际开发中的运作情况。
进入2024年,人工智能编程已深入各个领域,影响着软件开发的全生命周期。
但问题来了,虽然大家都认为AI编码很不错,为什么我们日常使用的软件似乎没有什么明显的改进呢?
最近,谷歌的工程主管Addy Osmani,同时也是亚马逊畅销书的作者,分享了AI辅助编程在一线开发中的真实情况。
程序员如何运用AI?
通常,团队使用AI进行开发主要有两种方式:“引导者(bootstrappers)”与“迭代者(iterators)”。这两种模式都在缩短从想法到实际执行的距离,帮助工程师甚至非技术用户。
引导者模式
这一类工具如Bolt、v0和screenshot-to-code,其特点包括:
从设计或初步概念入手;
利用AI生成完整的初步代码库;
在数小时或几天内实现工作原型;
注重快速验证和迭代过程。
这样的工作流程相当令人惊叹。例如,一位独立开发者可以借助Bolt迅速将Figma设计转化为有效的网页应用。虽然未必能达到生产级的标准,但足以获得初步用户反馈。
迭代者模式
这类工具主要用于日常开发流程,包括Cursor、Cline、Copilot和WindSurf等。虽然效果不如引导者模式那样显著,但却更加实用,例如:
完成代码并提供建议;
执行复杂的重构任务;
生成测试和文档;
作为解决问题的“搭档程序员”。
尽管两种方法都能显著提升开发速度,但“天下没有免费的午餐”。
AI速度的隐性成本
高级工程师使用Cursor或Copilot等AI工具时,能够在短短几分钟内搭建出完整功能框架,并完成测试和文档,简直如同施展魔法一般。
然而,仔细观察会发现,资深工程师在参考AI建议时,往往还会:
将生成的代码重新构建为更小的模块;
增加边缘情况的处理;
优化类型定义和接口;
进行全面的错误处理;
甚至对AI提供的架构进行质疑。
换句话说,他们利用多年的工程经验来塑造和限制AI的输出。虽然AI加速了代码的实现,但人类的专业知识则确保了代码的可维护性。
相对而言,初级工程师常常会错过这些重要步骤。他们更容易接受AI的输出,导致所谓的“纸牌屋代码”,表面上看似完整,实际上在现实中却经不起考验。
知识悖论
因此,实际上,AI更能帮助经验丰富的开发者,这一点颇为反直觉。
高级工程师能够利用AI迅速构建原型、生成基本实现并探索已知问题的替代方案;
但初学者却常常接受错误或过时的解决方案,忽视重要的安全和性能问题,且不知如何调试AI生成的代码,最终构建出一个自己并不完全理解的脆弱系统。
70%的问题
非工程师在使用AI编码时,往往面临一个尴尬的局面:他们能够惊人地迅速完成约70%的工作,但最后的30%却异常艰难。
这个“70%的问题”揭示了AI辅助开发的现状,起初似乎如有神助,随后却被现实无情地压制。
实际情况通常是:
尝试修复一个小错误——>
AI提出一个看似合理的修改——>
这个修改又引发了其他问题——>
要求AI修复新的问题——>
又产生了两个新bug——>
陷入无限循环。
对于非工程师来说,这个循环尤其痛苦,因为他们缺乏专业知识来理解真正的问题所在。
有经验的开发者在遇到bug时,能够基于多年的经验识别模式,推测潜在原因和解决方案。而缺乏这种背景知识的开发者,基本上是在对自己不完全理解的代码“打地鼠”。
学习悖论
还有一个更深层次的问题是,让非工程师使用AI编码工具,实际上可能会阻碍他们的学习。
虽然代码生成并成功运行,但“开发者”并不理解基本原理,结果就是错失了学习基本模式的机会,未能培养调试技能,无法对架构决策进行深入思考,而这些代码又需要后续的维护和扩展。
因此,“开发者”不断依赖AI来解决问题,却没有培养出独立处理问题的能力。
非工程师使用AI编程工具的最佳方式,可能是采取“混合模式”:
1. 进行快速原型设计时使用AI
2. 理解生成代码的运作方式
3. 学习基本编程概念及AI的应用
4. 逐步建立知识基础
5. 将AI作为学习工具,而不仅是代码生成器。
然而,这需要耐心与奉献精神,与许多人使用AI工具的初衷恰恰相悖。
“70%的问题”表明,现阶段的AI并未达到许多人心目中的理想状态。最后30%的工作(确保软件可用于生产和可维护性等),仍然需要真正的工程知识支持。
最佳实践
Addy Osmani观察了数十个团队,总结出了一些最佳实践:
“AI初稿”模式
未来软件开发:AI的崛起与协作潜力
「持续交流」策略
为每项不同的任务开启新的AI对话;保持上下文清晰且简洁;定期检查并提交修改;维持紧密的反馈机制。
「信任但需验证」策略
利用AI生成初步代码;对所有关键路径进行人工审查;进行边缘案例的自动化测试;定期开展安全审计。
AI的真正潜力是什么?
尽管面临诸多挑战,作者对AI在软件开发领域的前景依然持积极态度。关键在于充分挖掘AI的独特优势:
加速已知模式的实现,AI就像一位耐心的搭档程序员,能够迅速输入代码。
探索可能性,AI在快速构建原型和探索多样化方法方面表现优异,如同一个沙盒,允许我们迅速测试新理念。
自动化日常任务,AI显著减少我们在模板和常规编码上的时间,使我们能够专注于更具挑战性的课题。
若您刚开始接触AI辅助开发,作者建议从简单的任务入手。
将AI应用于非耦合且界定明确的任务,仔细审视每一行生成的代码,逐步扩大功能范围。
在此过程中保持模块化:将所有内容分解为小型、有重点的文件,确保组件间接口清晰,并记录模块的边界。
最重要的是,相信自己的经验:AI是加速工具,而非取代您的判断;在感觉不对劲时需提出质疑,始终遵循工程标准。
智能体的崛起
随着2025年的到来,AI辅助开发的格局正在经历显著变化。虽然当前的工具已经改变了原型设计和迭代的方式,但我们正处于更为重要的转型期:智能体(Agent)软件工程的崛起。
智能体系统不仅能够响应指令,还将以日益增强的自主性规划、执行和迭代解决方案。
例如,Anthropic的Claude可以利用计算机,或者Cline能够自动打开浏览器并执行测试。
在调试过程中,智能体系统不仅提供修复bug的建议,还能:
主动识别潜在问题、启动并运行测试套件、检查用户界面元素并捕捉屏幕截图、提出并实施修复方案、验证解决方案的有效性。
下一代工具将能够无缝整合视觉理解(如UI屏幕截图、模型、图表)、自然语言交互和环境互动(如浏览器、终端、API)。
未来的AI并不是要取代开发者,而是成为越来越有能力的合作伙伴,既能够主动出击,也能尊重人类的指导和专业知识。
Please specify source if reproduced2024年AI编程的实力揭秘:谷歌工程主管带你直面真实挑战 | AI工具导航









