这一年,GitHub Copilot从2021年首次在Jetbrain上推出的插件,到3月广泛用于Visual Studio IDE。随后,亚马逊的代码完成服务Code Whisperer在6月发布,Replit的Ghostwriter在10月发布。用于代码生成的人工智能初创公司Tabnine获得了1550万美元的资金,而另一家代码完成初创公司Kite则在Copilot的流行之后夭折。
然后,到了年底,GitHub因在Copilot中使用开放源码库而陷入诉讼,这一切都变成了一个很大的问号。
AI:对开发人员来说比代码完成更重要
虽然2022年的大部分焦点是自动化编码和代码完成,但事实证明,人工智能技术在过去一年中以更微妙的方式改造了代码。
“我们不相信我们会看到AI取代DevOps工程师或平台工程师,但真正增强了他们。你有很多事情发生在应用层层面–人工智能来帮助开发人员编写应用代码,而不是基础设施代码。”利用AI的DevOps自动化创业公司Coherence的联合创始人兼CEO Zach Zaro说。
Coherence补充说,对于这些用例,它将使DevOps更加重要,因为将有更多的代码需要更频繁地测试。
Coherence在12月的一篇博文中确定了DevOps的一些AI用例,包括:
提高代码质量;
加强监控和警报系统;
更好的安全措施;
提高工程生产力。
“我们更多的是关于机器学习模型,关于找到有趣的日志行或指标,或找到不需要运行的测试,这样你就可以减少你的构建时间。我们已经看到有公司在做这样的事情,所有这些都是增强的用例,而不是威胁工作的用例。”Zaro说。
超越代码完成度
David DeSanto说,开发人员想要的是更快,而人工智能可以提供帮助,他领导的GitLab的产品组织专注于为整个DevSecOps生命周期提供单一平台。GitLab调查了5,001名DevSecOps专业人士,发现31%的受访者现在使用人工智能/机器学习作为代码审查的一部分,近一半的人说他们已经实现了完全的测试自动化。
GitLab预测,在未来一年,AI/ML将进一步实现开发,同时帮助安全修复,改善测试自动化,并提高可观察性。
DeSanto说调查还发现,70%的受访者谈到了更快发布代码的压力。人工智能助手可以通过改善代码审查,帮助开发人员监控和分流生产事件,从而使CI/CD更快、更有效。
DeSanto说:“各组织都在努力实现自动化,改善他们的测试自动化,而这种向更快运输转变的一部分意味着你必须找到优化你正在做的事情的方法。如果你要连续发货,你就会把人从这个过程中拉出来。你如何把人从流程中拉出来呢?你开始在代码审查、代码质量和部署方面建立一个更聪明的验证代码的过程。”
它是可靠的吗?
“作为DevOps的一部分,人工智能仍处于幼儿阶段。它仍在成长,如果以正确的方式使用,它会非常有效,即使不是完美,”DeSanto警告说。
DeSanto提醒我们,即使在人工智能之前,技术也一直需要培训。就在十几年前,Web应用程序防火墙必须见证大量的生产网络流量,然后才能识别异常与正常行为。
“不要假设人工智能第一次就会是正确的。就像其他事情一样,它将有一个训练期,以获得更多的准确。我们还有一个测试版的功能,那就是建议标签,以帮助工作流程的自动化。当我们第一次为自己推出这项功能时,我想它的准确率不到30%。但随着学习我们的项目和看到我们的标签的时间,它变得更加有效,”DeSanto说。
他说,当被问及开发者是否应该对其使用保持警惕时,所有人工智能和机器学习也将如此。
他说:“如果你意识到像任何新技术一样,它必须变得更聪明,今天所做的事情实际上没有任何违反直觉或不应该做的。”
他提供了一个关于正确使用案例的现实世界的例子。去年GitLab收购了一家公司,在这个过程中发现GitLab在为代码修改分配合适的编码员方面并没有发挥出应有的作用。
他说:“这家公司有这种能力,可以利用你的项目知识来确定正确的代码审查员,以保持你的团队更快发展。当我们把它应用于我们自己的代码,在收购之前,作为试图改善自己的一部分,我们发现它比我们更有效。”
该程序通过学习项目和代码来帮助加快进程,然后将合适的编码员分配给需要进行的任何代码修改。