2024年AI编程实力大揭秘:谷歌工程主管揭晓AI辅助编码真相

2024年AI编程实力大揭秘谷歌工程主管揭晓AI辅助编码真相

2024年,AI编程已深入各行各业,对软件的全生命周期产生了深远影响。然而,尽管AI coding备受赞誉,我们日常使用的软件似乎并未见到显著进步,这是为何?近日,谷歌工程主管、亚马逊畅销书作家Addy Osmani为我们揭示了AI辅助编码在一线开发中的真实情况。

码农如何运用AI?

团队利用AI进行开发主要有两种模式:“引导程序(Bootstrappers)”和“迭代器(Iterators)”。这两种模式都在帮助工程师(甚至非技术用户)更快地将想法转化为现实。

Bootstrappers:包括Bolt、v0、screenshot-to-code等AI工具。它们从设计或粗略概念开始,使用AI生成完整的初始代码库,能够在几小时或几天内获得工作原型,专注于快速验证和迭代。例如,独立开发人员可以使用Bolt将Figma设计迅速转变为Web应用程序,尽管尚未达到生产级别,但足以获取初步用户反馈。

Iterators:负责日常开发工作流程,包括Cursor、Cline、Copilot和WindSurf等工具。它们虽然效果不如Bootstrappers那么夸张,但更加实用。它们可以完成代码、提供建议、执行复杂重构任务、生成测试和文档,充当解决问题的“结对程序员”。

AI速度的隐性成本

高级工程师使用AI工具如Cursor或Copilot,可以在几分钟内搭建整个功能的框架,并完成测试和文档。然而,仔细观察会发现,他们在参考AI建议的同时,还会对生成的代码进行重构、添加边缘情况处理、优化类型定义和接口、添加全面的错误处理,甚至质疑AI给出的架构。这说明,人类的专业知识正在塑造和限制AI的输出,确保代码的可维护性。

相比之下,初级工程师更容易接受AI的输出,从而导致所谓的“纸牌屋代码”——看起来很完整,但在现实世界的压力下会崩溃。

知识悖论

反直觉的是,AI反而更能帮助有经验的开发人员,而非初学者。高级工程师可以利用AI快速构建想法的原型、生成基本实现、探索已知问题的替代方法等。而初学者则可能接受不正确或过时的解决方案、忽略关键的安全性和性能问题、不知道如何调试AI生成的代码,最终构建了一个自己不完全理解的脆弱系统。

70%问题

非工程师使用AI进行编码时,经常遇到一个窘境:他们可以迅速完成70%的工作,但最后的30%却异常艰难。这就是“70%问题”。尝试修复一个小错误时,AI可能会提出一个看似合理的更改,但这个更改可能会破坏其他部分,导致无限循环的修复过程。对于缺乏专业知识的非工程师来说,这尤其痛苦。

学习悖论

让非工程师使用AI编码工具,实际上可能会阻碍他们的学习。因为代码虽然生成了、运行了,但“开发者”并不了解基本原理,错过了学习基本模式、培养调试技能、对架构决策进行推理的机会。

非工程师使用AI编码工具的最好方式可能是“混合模式”:先使用AI进行快速原型设计,然后花时间了解生成的代码是如何工作的,学习基本的编程概念以及AI的使用,逐步建立知识基础,将AI用作学习工具,而不仅仅是代码生成器。

最佳实践

Addy Osmani观察了几十个团队,总结了一些最佳实践方式:

“AI初稿”模式:让AI生成基本实现,然后手动审查和模块化重构,添加全面的错误处理,编写全面的测试,记录关键决策。
“持续对话”模式:为每个不同的任务开始新的AI聊天,保持上下文集中和最小,经常查看和提交更改,保持紧密的反馈循环。
“信任但验证”模式:使用AI生成初始代码,手动审查所有关键路径,对边缘案例进行自动测试,定期进行安全审计。

AI的真正前景

尽管存在挑战,但Addy Osmani对AI在软件开发中的作用持乐观态度。他认为,关键是要充分利用AI的真正优势:加速已知模式的实现、探索可能性、自动化日常任务。

对于刚开始使用AI辅助开发的开发者,他的建议是从小处着手,将AI用于非耦合的、定义明确的任务,查看生成的每一行代码,逐渐构建更大的功能。过程中保持模块化,将所有内容分解为小的重点文件,在组件之间保持清晰的接口,记录模块的边界。重要的是要相信自己的经验,用AI来加速而不能取代自己的判断。

Agent兴起

随着我们进入2025年,AI辅助开发的格局正在发生巨大变化。智能体(Agent)软件工程的兴起标志着更重要的转型。智能体系统不仅可以响应提示,还将以越来越高的自主性规划、执行和迭代解决方案。例如,Anthropic的Claude能够使用计算机,Cline可以自动启动浏览器和运行测试。在调试过程中,智能体系统不仅可以给出修复bug的建议,还可以主动识别潜在问题、启动和运行测试套件、检查UI元素并捕获屏幕截图、提出并实施修复、验证解决方案是否有效。

下一代工具将无缝集成视觉理解(UI屏幕截图、模型、图表)、口头语言对话和环境交互(浏览器、终端、API)。未来的AI不是取代开发人员,而是成为一个越来越有能力的协作者,既可以采取主动,又能尊重人类的指导和专业知识。

版权声明:AI导航网 发表于 2025-01-01 14:53:53。
转载请注明:2024年AI编程实力大揭秘:谷歌工程主管揭晓AI辅助编码真相 | AI导航网

暂无评论

暂无评论...