作为开发人员,我们一直在寻找提高生产力和简化工作流程的方法。随着人工智能的最新进展(并且我坚信这些技术将改变游戏规则),我决定在现实世界的开发场景中测试这些工具。
我的目标:在短短 7 小时内构建一个全栈人工智能驱动的食物追踪应用程序 PoC。
结果:效果非常好!但并非没有挑战。
这是我作为开发伙伴所学到的关于使用 AI 的知识。
目标雄心勃勃但重点突出:创建一款移动应用程序,让用户拍摄食物并使用人工智能识别自动将其记录到食物追踪器中。技术堆栈包括我的首选:Quasar Framework(VueJS 框架)、Google Firebase 和 Capacitor(移动开发框架),以及用于 AI 推理的 Google Gemini 2.0 Flash。
没什么特别花哨的,但足够复杂来测试人工智能辅助。
我使用了人工智能工具的组合来协助项目的不同方面:
我获得的最有价值的见解之一是将人工智能视为初级开发人员或实习生。这种思维模式完全改变了我处理合作的方式。正如您不会将整个项目放在新实习生的办公桌上并期望完美的结果一样,我学会了:
这种方法带来了更好的回报,并且比将人工智能视为“无所不知”或“完全不可靠”更有效。
事实证明,人工智能在规划阶段非常有帮助。我从一个粗略的项目大纲开始,并使用迭代提示来完善它。例如,我最初的提示之一是:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
这引发了反复讨论,帮助明确了项目范围和时间表,从而制定了更加现实和详细的计划。
人工智能工具擅长生成和维护文档。它可以快速创建全面的 Markdown 文件,并随着项目的发展不断更新。这为实际开发工作腾出了宝贵的时间。
将开发分解为更小、更有针对性的提示被证明是非常有效的。我没有尝试立即生成整个组件,而是使用了一系列提示,每个提示都建立在前一个提示的基础上。例如:
我发现的一个巧妙的技巧是让 A.I.记录进度和后续步骤,以便在提示之间可以有一些参考内容。由于我使用的是 WindSurf,因此我可以使用“主提示”来保持对话继续进行。主提示将指示人工智能。在编写代码时回顾笔记并添加内容。
WindSurf 的另一个亮点是错误修复和开发后任务。
测试我的应用程序并注意到一些错误后,我将列表传递给 WindSurf,它可以快速识别和纠正问题,甚至生成测试用例以确保修复有效。这节省了我大量的时间和精力。
我有以下错误列表,只有少数情况我需要手动修复它们:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
并非一切都一帆风顺。出现了一些关键挑战:
我在文件修改方面发现了一些限制:
注意:在撰写本文时,文件锁定/归档编辑失败的错误似乎已在最新版本的 WindSurf 中修复。
人工智能辅助的质量在较长的对话中会下降。我学会了为新组件开始新的对话并提供简洁的上下文,而不是试图维持一个漫长的会话。
随着代码变得越来越长、越来越复杂,人工智能很难跟上。我必须将任务分解为更小、更易于管理的块以保持质量,或者必须提供大量细节和上下文以保持 AI 正常运行。
偏离轨道意味着删除功能、删除相关代码,或者有时完全构建错误的东西。这是一个很大的时间消耗,我必须非常小心地让人工智能保持在正轨上,或者决定手动编码。
有时,自己做会更快。学会识别这些时刻可以节省大量时间并减少挫败感。正如我的开发日志中所述:“当它工作时,它工作得很好。当它不工作时,它可能会浪费时间。”
Git 频繁提交:在让 AI 做出重大更改之前,提交您当前的状态。如果出现问题,这可以提供简单的后备方案。
准备样板代码:在使用 AI 辅助之前设置项目结构和基本配置。就我而言,这意味着:
清晰详细的提示:尽可能具体地表达您的要求。包括相关背景和示例。在需求和设计阶段花费尽可能多的时间,并提供尽可能多的细节。这些注释和指导不仅可以帮助您更好地执行项目,还可以极大地提高人工智能生成的代码的质量。
迭代反馈:毫不犹豫地纠正或指导人工智能。例如,当我收到与要求不太相符的输出时,我提供了具体的反馈:
Can you help me plan out making the following app in 7 hours: <information about the app> Detail out how long I should spend on each section, and revise my overall plan as needed.
这种具体的反馈通常会带来快速、准确的纠正。
使用人工智能绝对加速了开发。虽然需要指导和偶尔的纠正,但 ChatGPT 和 Claude 以及 WindSurf 的结合使我比在同一时间范围内单独取得的进步要大得多。
也就是说,成功需要了解这些工具的功能和局限性。关键是在人工智能协助和人类专业知识之间找到适当的平衡,充分发挥各自的优势。
这个实验表明,未来人工智能工具将成为开发工作流程中不可或缺的一部分——目前,不是取代开发人员,而是增强他们的能力。关键是学习有效地使用这些工具,了解它们的优点和局限性,并开发能够最大限度地发挥其优势并同时最大限度地减少其缺点的工作流程。
对于有兴趣将 AI 融入其工作流程的开发人员,我建议从小处开始,建立清晰的交互模式,并随着您对 AI 的功能和局限性更加熟悉而逐渐扩大 AI 的作用。
这些工具处于初级开发人员的水平,很快有了足够的训练数据和迭代,他们将能够做更多的事情。我可以看到这些工具最终编写整个应用程序并处理大部分开发过程。在模型能够模拟高级开发人员之前,我们仍然需要人工监督和指导。
我很高兴看到这项技术的发展方向以及它将如何塑造软件开发的未来。
以下是我在 7 小时内构建的应用程序的一些快速屏幕截图。虽然并不完美,但这是一个坚实的开始!
(用相机捕捉食物)
(将图像发送给AI进行食物识别)
(查看结果 - 将食物添加到跟踪器)
(确认食物入境)
(仪表板视图)
(食物入口视图)
无耻但相关的插件:
虽然我仍在开发本文中提到的食品应用程序,但我能够使用 WindSurf 和 A.I. 快速完成另一个项目
如果您对人工智能驱动的 Git CLI 帮助程序感兴趣,以便更轻松地维护提交消息和发行说明,请查看 eGit
以上是使用 AI 结对编程构建应用程序:我们 Sprint 的经验教训的详细内容。更多信息请关注PHP中文网其他相关文章!