【新智元导读】2024年的AI编程到底什么实力?近日,谷歌的工程主管Addy Osmani,为我们揭示了AI辅助编码在一线开发中的真实情况。
码农怎么用AI?
一般来说,团队利用AI进行开发有两种不同的模式:「引导程序(bootstrappers)」 和 「迭代器(iterators)」。两者都在帮助工程师(甚至是非技术用户)缩小从想法到执行的差距。
Bootstrappers
这一类包括Bolt, v0, 和screenshot-to-code等AI工具,其特点为:
从设计或粗略概念开始; 使用AI生成完整的初始代码库; 能够在几小时或几天内获得工作原型; 专注于快速验证和迭代
Iterators
完成代码、提供建议; 执行复杂的重构任务; 生成测试和文档; 作为解决问题的「结对程序员」
「AI速度」的隐性成本
将生成的代码重构为更小的模块; 添加边缘情况处理; 优化类型定义和接口; 添加全面的错误处理; 甚至是质疑AI给出的架构
知识悖论
70% problem
使用AI进行编码的非工程师,经常遇到一个窘境:他们可以出人意料地迅速完成70%的工作,但最后的30%就相当痛苦了。
尝试修复一个小错误——> AI提出了一个似乎合理的更改——> 这个更改破坏了其他一些东西——> 要求AI修复新问题——> 又产生了两个新bug——> 无限循环
学习悖论
1. 使用AI进行快速原型设计 2. 花点时间了解生成的代码是如何工作的 3. 学习基本的编程概念以及AI使用 4. 逐步建立知识基础 5. 将AI用作学习工具,而不仅仅是代码生成器
最佳实践
让 AI 生成基本实现;手动审查和模块化重构;添加全面的错误处理;编写全面的测试;记录关键决策。
为每个不同的任务开始新的AI聊天;保持上下文集中和最小;经常查看和提交更改;保持紧密的反馈循环。
使用AI生成初始代码;手动审查所有关键路径;边缘案例的自动测试;定期安全审计。
AI的真正前景?
尽管存在这些挑战,但作者对AI在软件开发中的作用持乐观态度。关键是要充分利用AI的真正优势:
Agent兴起
行业解读
报告精选