网易免费空间-2024年AI编程有多强?谷歌工程主管揭秘残酷真相

2024年的AI编程究竟什么实力?近来,谷歌的工程主管Addy Osmani,为咱们提醒了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、C o pilot和WindSurf等东西,效果没有上面那么浮夸,但愈加实在,比如:
完结代码、提供主张;
履行杂乱的重构使命;
生成测验和文档;
作为解决问题的「结对程序员」
尽管这两种办法都能够大大加快开发速度,但「天下没有免费的午饭」。
「AI速度」的隐性成本

高档工程师运用Cursor或C opilot等AI东西,能够在几分钟内建立整个功用的基架,并完结测验和文档,就像变魔术相同。
但仔细观察就会发现,在参考AI主张的同时,资深工程师们还会:
将生成的代码重构为更小的模块;
增加边际状况处理;
优化类型定义和接口;
增加全面的错误处理;
甚至是质疑AI给出的架构
换句话说,他们正在用多年积累的工程才智,刻画和限制AI的输出。AI担任加快代码完成,但人类的专业知识确保代码的可保护性。
图片
而初级工程师就常常错过这些要害步骤。他们更容易接受AI的输出,从而导致所谓的「纸牌屋代码(house of cards code)」——看起来很完好,但在实际世界的压力下会溃散。
知识悖论

所以实际上,比较于初学者,AI反而更能帮助有经历的开发人员,——这多少有点反直觉。
高档工程师利用AI快速构建主意的原型(了解)、生成根本完成(可改善)、探究已知问题的替代办法等等;
而初学者却常常接受不正确或过时的解决方案、忽略要害的安全性和功能问题、不知道怎么调试AI生成的代码,终究构建了一个自己不完全了解的软弱体系。
70% problem
运用AI进行编码的非工程师,常常遇到一个窘境:他们能够出人意料地迅速完结70%的作业,但最终的30%就相当苦楚了。
图片
「70% problem」提醒了AI辅佐开发的现状,刚开端如有神助,后来被实际按在地上冲突。
实际状况通常是:
尝试修正一个小错误——>
AI提出了一个似乎合理的更改——>
这个更改破坏了其他一些东西——>
要求AI修正新问题——>
又产生了两个新bug——>
无限循环
这个循环对于非工程师来说尤其苦楚,由于他们缺少专业知识来了解真实出了什么问题。
有经历的开发人员遇到bug时,能够依据多年的形式识别来推理潜在原因和解决方案。假如没有这个背景,那根本上便是在用自己不完全了解的代码「打地鼠」。
学习悖论

还有一个更深层次的问题:让非工程师运用AI编码东西,实际上可能会阻碍学习。
代码生成了、运转了,但「开发者」不了解根本原理,此刻,他错过了学习根本形式、没有培育调试技术、无法对架构决议计划进行推理,而这份代码又需求保护和扩展。
所以,「开发者」不断返回AI来解决问题,而没有培育自己处理问题的专业才能。
非工程师运用AI编码东西的最好办法可能是「混合形式」:
1. 运用AI进行快速原型规划
2. 花点时间了解生成的代码是怎么作业的
3. 学习根本的编程概念以及AI运用
4. 逐步建立知识基础
5. 将AI用作学习东西,而不只仅是代码生成器
但这需求耐心和奉献精神,与许多人运用AI东西的目标恰恰相反。
「70% problem」表明,当前的AI还不是许多人期望的那个AI。最终30%的作业(使软件可用于生产、可保护等),依然需求真实的工程知识。
最佳实践

Addy Osmani观察了几十个团队,总结了一些最佳实践办法:
「AI初稿」形式
让 AI 生成根本完成;手动检查和模块化重构;增加全面的错误处理;编写全面的测验;记载要害决议计划。
「持续对话」形式
为每个不同的使命开端新的AI聊天;坚持上下文集中和最小;常常查看和提交更改;坚持严密的反应循环。
「信任但验证」形式
运用AI生成初始代码;手动检查一切要害路径;边际事例的自动测验;定期安全审计。
AI的真实远景?
尽管存在这些挑战,但作者对AI在软件开发中的效果持乐观态度。要害是要充分利用AI的真实优势:
加快已知AI拿手帮助完成咱们已经了解的形式,就像有一个无限耐心的结对程序员,他能够十分快速地打字。
探究可能性AI十分适合快速构建主意原型和探究不同的办法,就像一个沙箱,咱们能够在其中快速测验概念。
自动化例程AI大大减少了花在样板和日常编码使命上的时间,让咱们能够专心于有趣的问题。
假如您刚刚开端AI辅佐开发,作者的主张是,先从小处着手。
将AI用于非耦合的、定义明确的使命,查看生成的每一行代码,逐步构建更大的功用。
过程中坚持模块化:将一切内容分解为小的重点文件,在组件之间坚持明晰的接口,记载模块的鸿沟。
重要的一点是,相信自己的经历:AI用来加快而不能替代你的判别、感觉不对劲时要质疑、时间保护自己的工程标准。
Agent鼓起

跟着咱们进入2025年,AI辅佐开发的格式正在产生巨大变化。尽管当前的东西已经改变了原型规划和迭代办法,但咱们正处于更重要转型的风口浪尖:智能体(Agent)软件工程的鼓起。
图片
智能体体系不只能够呼应提示,还将以越来越高的自主性规划、履行和迭代解决方案。
比如Anthropic的Claude能够运用计算机,或许Cline自动发动浏览器和运转测验的才能。
在调试过程中,智能体体系不只给出修正bug的主张,还能够:
自动识别潜在问题、发动和运转测验套件、检查UI元素并捕获屏幕截图、提出并施行修正、验证解决方案是否有效。
下一代东西将能够无缝集成视觉了解(UI 屏幕截图、模型、图表)、口头言语对话和环境交互(浏览器、终端、API)。
图片
未来的AI不是替代开发人员,而是成为一个越来越有才能的协作者,既能够采纳自动,又能尊重人类的辅导和专业知识。