在现代软件开发中,如何提高开发效率和质量一直是工程师们不断探索的课题。随着大语言模型(LLM)和AI代理工具的兴起,越来越多的团队尝试借助AI辅助编码,期望借此简化繁琐的编码过程,加快产品上线速度。近期,João Freitas在他的个人博客中分享了为期两周的AI辅助编程实验,通过一个有趣的项目即将桌面浏览器扩展迁移至移动端的过程,详细展现了AI工具在实际开发中的优势和不足。本文将围绕这段实验经历,解析AI辅助开发的实践方法,探讨其带来的启示和面临的挑战,为广大技术从业者提供参考。 João所在的团队正处于一个具体的软件迁移任务——将一个基于桌面的浏览器扩展移植到移动设备。该扩展的主要功能相对简单,核心是扫描和下载图片。
不过,在移动端开发浏览器扩展存在天然局限性,例如iOS平台仅支持基于Safari Web Extension API的扩展,Android上则基本需要用户自行侧载应用。传统的迁移流程往往需要大量的手动代码重写和调试,但这次团队决定尝试利用AI代理辅助编码,看看能否突破传统瓶颈。 他们制定了严格的实验规则,要求完成一个可内部发布的版本,时间限制为两个工作周(十个工作日)。其中最为关键的限制是,手动编写和调试代码的时间不能超过20%,其余时间必须通过对AI代理的提示指令进行编码实现。为了实现这一目标,团队购买了Cursor的订阅服务。Cursor是一个能够根据需求自动选择最佳模型的AI编码工具,支持使用包括Claude、GPT等多款先进大模型,能够自动执行编码操作。
除此之外,团队还选择了熟悉且稳定的前端技术栈,如React、Styled Components和Webpack。通过在Cursor中预设系统规则,保证生成的代码不会偏离既定框架和项目配置,减少了后期兼容性问题。 整个项目启动后,最初的目标是快速实现一个端到端的原型。虽然最初设想可以在半天内完成,但现实中遇到了不小的挑战。Cursor多次尝试修复无法显示界面的问题,经过人工调查才发现,React组件的HTML生成正常,但UI库的CSS并未被正确导入到主样式文件content.css中。为解决该问题,开发者手动将UI库的CSS文件引入主CSS文件,才保证了界面样式的正确渲染。
由此可见,虽然AI辅助工具强大,但在某些环境和依赖的细节上仍然需要人为介入。 接下来五天的时间大多用于修复AI生成代码中的功能缺陷和视觉上的BUG,同时根据产品经理提供的设计要求对界面进行调整。值得一提的是,团队并未通过机器视觉直接传递设计稿的原始数据,而是通过截图的方式向Cursor提供视觉参考。尽管如此,Cursor依然表示出令人惊叹的推理能力和理解水平,能够快速还原设计的整体风格和页面结构。这个现象也让人们开始重新思考AI在图形界面生成中的潜力和局限。 最后三天则主要聚焦于功能的流程优化和需求的调整,确保迁移版扩展的核心功能运行符合产品期待。
在整个两周的周期内,即使有时Cursor在连续对话后响应迟缓,团队依然保持高强度地使用该工具推动开发进度,体现了AI作为虚拟编程伙伴的辅助能力。 通过这次实验,João总结了几大“亮点”体验。首先是快速的设计原型验证。相比传统人工编写,利用AI代理及时反馈的编码流程极大缩短了初期验证的时间,提高了开发效率。其次是自动化开发的体验令人惊艳。通过发出指令让AI代理主动执行决策和动作,就像拥有了一个超高效的虚拟助理,解放了开发者的双手和注意力。
再次,AI工具所展现的推理能力也极具价值。当给出有限的设计内容和业务环境时,Cursor能够主动提出潜在的需求和优化建议,帮助开发者从更宏观的角度审视项目。最重要的,是AI成为了开发中的长期“伙伴”,相当于一名全天候、细致入微的虚拟编程搭档,既能生成代码,也能担任代码审查的角色。借助这种工具,团队未来有望减少对通用库的依赖,让AI生成更多“胶水代码”,提升整体开发灵活性。 然而,实验的过程中也暴露出不少挑战和不足。首先,团队并未如期在两周内完成完全可发布的版本。
原本设定的用时配比(手动修复不超过20%)也无法达到,事实是超过半数时间花费在修复AI生成代码的缺陷上,提示工作也占据了接近一半的时间。这反映出当前AI工具还不能完全替代人工,错误恢复和改正依旧是不可忽视的成本。 其次,Cursor会话过长带来的效率降低也成为问题。经过十余条提问,响应速度明显减缓,开发者不得不反复重启聊天记录以保持流畅度。此类体验提醒我们,AI工具虽智能,但在会话管理和上下文保持方面依旧存在技术瓶颈。 不可避免地,AI生成代码中的幻觉问题仍然存在。
虽然新一代模型比起早期的版本降低了错误率,但对不常见的产品领域存有知识空白,也导致代码时常出现与项目无关或结构混乱的片段。开发者甚至时刻担心AI会在无监督下删除关键文件,尽管有系统规则防止此类灾难发生。 最后一个挑战是“人机协作”的心态变化。João坦言,长时间依赖高效快捷的AI生成结果令他在写提示语时变得越来越宽松,甚至在面对错误时只简单要求“修复”,缺乏仔细推敲。这种“懒惰心态”反映了AI工具虽能赋能,但同时也可能让工程师在思考深度和严谨性上产生懈怠。 综合来看,这次为期两周的AI辅助编程实践,是对未来软件开发方式的一次有力探索。
对于新项目和绿色场景,AI工具能够极大促使快速原型和功能实现,但对于传统遗留项目则可能弊大于利。通过合理的工具配置,配合工程师的积极维护和正确心态,AI辅助一定能成为提升生产力的得力帮手。相较于订阅费用,这种工具的长远价值显而易见。 未来,AI在软件开发领域的应用将更加广泛。利用代理模型作为离线的自动化机器人,帮助工程师持续完善和测试代码,无疑是下一步发展的核心方向。同时,如何设计合理的人机合作机制,避免人工懈怠,保证产品质量,将是所有技术团队需要共同面对的课题。
从实践中汲取经验,我们看到AI辅助编码既呈现了颠覆性潜能,也揭露了技术和流程上的不足。对于希望融合AI力量的开发者来说,理解这些利弊,灵活调整开发策略,才是走向未来软件创新的保障。João Freitas的实验给我们带来的,不仅是技术上的启示,更是关于人机共舞的深刻思考。