人工智能驱动的编码助手并不能解决软件开发中的所有问题,但它们可以朝着正确的方向迈出一大步。
译自 AI Coding Assistants: 12 Do’s and Don’ts,作者 Peter Guagenti。
使用生成式 AI (GenAI) 的编码助手正在改变软件开发的游戏规则,是该行业几十年来经历的最大的一次飞跃。
在 IDC 最近的一项调查中,56% 的开发人员表示他们正在试验 AI 编码助手。Gartner 的AI 编码助手创新指南预测,到 2028 年,75% 的企业级软件开发人员将使用 AI 编码助手,这将“使开发人员的生产力至少增长 36%”。这些工具在去年之前还不在许多开发人员的视线之内,但现在它们可以创造数十亿美元的价值。
总的来说,AI 编码助手通过自动化低级和重复性任务(例如代码完成、生成、理解、调试和维护)来提供价值。人工智能驱动的编码助手甚至可以让入门级开发人员更快、更高效地编写代码,从而提高生产力,并让所有开发人员都能从事更高级别的工作。
令人眼花缭乱的选择
然而,AI 软件开发工具的兴起已经演变成了一场洪流,其中充斥着大多数通用和消费级的选择——Gartner 的报告显示,截至去年至少有 40 种,而 2022 年只有少数几种。不堪重负的开发人员(也就是那些最能从 AI 开发流程中受益的人)可能会在试图找出哪些工具在生产力和公司要求合规性方面最有效时感到额外的负担。
考虑到这一点,以下是在选择和使用 AI 驱动的编码助手时的一些关键注意事项。
注意事项
要:所有“要”事项中最重要的可能是了解贵公司关于代码重用的政策,以及您是否有权选择(或者,就此而言,使用)编码助手。如果贵公司不允许使用编码助手,请务必向领导层施压,说明原因(这很可能是一项与隐私和数据控制相关的政策),并提供一些关于此类助手可以实现的生产力提升的统计数据。可能需要寻找一种可以在整个组织中安全合规地使用的产品。
不要:在暗中使用 AI 编码助手。透明度是有效和安全使用 AI 的关键。混淆你的 AI 工作——无论你的意图多么好——最终都会损害你的组织和你自己。
要:在评估现有的 AI 编码助手选项时做好功课。阅读服务条款。寻找不仅可以帮助生成、维护和测试代码,还可以与代码存储库和其他开发工具集成的编码助手,以便您可以从它们提供的上下文中受益。此外,寻找一个可以解释现有代码、识别问题和错误,并通过聊天提供支持的助手。确定编码助手将如何使用数据以及是否(以及在何处)保留数据也非常重要。
不要:抓住任何看起来最容易使用或最便宜的 AI 驱动的编码助手。也不要在通用的聊天机器人上浪费精力。它们没有针对软件开发用例进行调整,也不知道你想做什么。现在人们对生成式 AI 的使用有很多担忧。事实上,IDC 的研究表明,“数据安全、隐私和知识产权泄露/版权”问题是企业采用生成式 AI 的一大障碍,仅次于成本。“合适的”AI 驱动的编码助手可以减轻人们对 AI 的恐惧,并通过为贵公司及其合作伙伴和客户提供适当的防护措施来证明 AI 的价值。
要:选择一个利用相关、透明的模型的助手,这些模型可以随着技术的进步而发展,甚至可以被替换。该模型是否可以优化以适应特定的语言和领域?寻找合理使用和版权保护。询问助手是否为代码库和数据使用提供完全的隐私保护。助手的模型是否安全合规?这对贵公司重要吗?
不要:假设任何单一模型都会一直被认为是最好的。除了编码助手之外,大型语言模型 (LLM) 也在快速 proliferating 和发展。
要:利用使用 AI 编码助手获得的额外时间和资源进行实验和创新。将更多时间花在功能开发上,并将维护等低级任务留给 AI。
不要:担心生成式 AI 会抢走你的工作。相反,将编码助手视为另一个工具,使您能够更好地完成工作。多项研究表明,开发人员可以节省大量时间(高达 45%),并且可以使用生成式 AI 工具以高达两倍的速度完成编码任务。编码助手也被证明可以帮助开发人员学习新的语言并发展他们的技能。
要:充分利用这些工具提供的帮助,例如代码建议和推荐、单元测试和生成文档。研究表明,超过 60% 使用编码助手的开发人员表示,他们在工作中感到更充实,编码时不那么沮丧,并且能够将更多时间花在更有价值的工作上。
不要:完全放弃你的判断或目的,或屈服于最高级。例如,使用这些助手并不意味着从不搜索代码或总是能够信任生成的代码。AI 编码助手不能替代经验丰富的程序员。在流程和产品中仍然需要人工干预。
要:不断尝试如何与编码助手交互,以确保以越来越快的速度获得所需的内容。此过程的效率和准确性将取决于您的编码助手可以在多大程度上进行优化以提高上下文感知能力。
不要:设定后即可置之不理。
结论
到目前为止,满足对更多软件的需求意味着增加开发人员的数量,或者——更有可能——要求开发人员做更多(以及越来越多)的工作。由于多种原因,这一直是一个失败的主张,包括开发人员无法“赶上”进度,更不用说没有时间进行真正的创新了。
一般来说,人工智能,特别是人工智能驱动的编码助手,并不能解决开发生命周期中的所有问题,但是——当遵循最佳实践时——它们是朝着改善开发人员体验和为支持它们的组织提供价值的方向迈出的重要一步。