人工智能时代的软件开发:如何平衡质量和速度

105 阅读5分钟

根据GitHub的数据,为了应对繁重的工作负载,92%的开发人员已经在使用人工智能代码生成器。根据这种趋势发展,我们不得不面临一个问题:企业如何确保开发人员保持其人工智能生成代码的质量?不可否认,人工智能的使用,可以极大提高开发效率节省开发时间,从而使开发人员专注于其擅长的项目上,但企业也需要采取措施,在提高开发人员的生产力的同时,提高产出的质量。

人工智能无法取代人类开发人员

AI代码生成器高效、易用、有用(在早期的人工智能时代,这是一种相当初级的方式),它们使开发人员能够外包一些代码编写,有助于缓解不断增长的需求,快速生成大量代码。然而,随着大多数开发人员继续通过购买人工智能来提高生产力,他们需要对人工智能生成的结果检查并负责。

在 AI 生成代码方面存在多种限制和风险考虑因素。缺乏源知识和背景就是其中之一。人工智能从输入的数据集(即过去的数据、自然语言处理、机器学习)中汲取灵感,这意味着它结合了太多的来源,无法将特定的编码片段追溯到一个地方;不可能将代码追溯到单个开发人员或项目。安全性也成为一个问题,无法保证输出的内容是安全的。最后,人工智能不会检查质量,这增加了代码难以维护且成本高昂的可能性。所有这些都加剧了公司已经面临的技术债务问题。

开发人员不能假设任何 AI 生成的代码都具有直接投入生产的质量。人工需要彻底审查代码,以确保其符合干净的代码属性——安全、可靠和可维护。

在软件开发中负责任地使用 AI

尽管存在潜在的缺点,但当与干净的代码解决方案一起安全有效地使用时,人工智能为软件领域带来了巨大的机会,随着工作量和需求的增加,人工智能已经成为开发人员的关键工具。首先,人工智能可以以远远超过人类同行的速度编写代码。这项技术可以在短时间内完成繁琐的工作,节省开发人员时间。而且它的快速编码能力也能让开发人员在项目上快速入手。

其次,人工智能知识库广泛,开发者可以输入他们擅长的语言或特定需求,人工智能就可以分享解决问题的方法。它的算法辅助可以帮助开发人员一步一步地完成部分项目,减轻开发人员的研究负担,不需要再花费大量时间理解他们专业领域之外的不同编程概念或代码片段。

此外,人工智能还可以处理冗长的文档,这不仅可以明确开发过程中出现的问题,还可以缩短整体交付时间。

自动化工具作为安全保障措施

如之前所说,开发人员不能假设任何人工智能生成的代码都是干净的并且适合生产环境。这意味着仍然需要人工来检查输出。这类工作通常会落在开发人员或DevOps身上,让人员自己检查代码是一个巨大的工作量,甚至可能导致开发人员一开始就不再使用人工智能。对企业来说,通过自动化扫描检测AI 生成代码的流程,可以缓解人工智能生成的代码安全问题。

一些开发人员工具可以处理这类工作,同时仍然让开发人员参与该过程。例如,在CI/CD过程中引入代码扫描不仅可以帮助持续监控AI生成的代码中的错误和问题,使开发人员能够专注于项目的其他更具挑战性的方面,而且还可以让他们深入了解错误并更快地解决问题。

静态应用程序安全测试 (SAST) 还允许识别可能由 AI 生成的代码引起的安全漏洞。这在软件开发生命周期 (SDLC) 中至关重要,因此开发人员可以在代码投入生产之前发现漏洞。使用这些工具的意义在于确保生成的代码安全,而不是来增加繁琐流程和额外工作。通过在开发过程中加入一定程度的自动化检测,并尽早并经常这样做,开发人员能够生产出质量更好、更安全的软件,从而推动业务向前发展。

有效采用人工智能将促进业务增长

虽然很难准确预测人工智能在未来几年将带我们走向何方,但同样不可否认的是,人工智能将在未来的软件开发中发挥关键作用。但这并不意味着代码输出是完全安全、可靠或准确的。开发人员仍然需要一定程度的自动化来交付最好地利用人工智能的代码,同时保持他们的工作量可管理,并专注于开发过程的其他部分。有了正确的防护措施,开发人员可以引导人工智能创建干净、安全和可靠的代码,进而帮助企业发展

参读链接:

devops.com/software-de…