虽然AI编程助手正在接管越来越多的编程工作,但大量开发者对AI生成的代码仍然不信任,许多人表示,识别编程助手产生的错误变得更加困难。
开发负责人表示,人类编程团队正在努力寻找时间来发现错误。编程专家指出,编程助手正在改善其输出质量,但它们也往往变得更加冗长——编写更多行代码来解决问题——这使得错误出现时更难被发现。
结果,AI生成代码出现了一个重大问题:开发者有时花在审查AI输出上的时间比他们自己编写代码所花的时间还要多。
代码信任度严重不足
深度伪造检测平台Reality Defender的首席技术官Alex Lisle表示,虽然AI编程助手已经变得无处不在,但开发者不应该信任它们。
Lisle合作的所有软件工程师都在某种程度上使用编程助手,但公司的开发者密切关注其输出。"事实是,我的大多数开发者仅将AI生成的代码用于样板代码和修复一些小问题,"他说,"我们完全不信任AI生成的代码。"
Lisle补充说,使用编程助手的开发者对代码质量负有责任。
大量代码生成的问题
Lisle认为,AI工具能够生成的代码量本身就产生了问题。
"这就像有一个可以非常快速地编写大量代码的初级开发者,"他解释道,"问题是它不理解代码和更广泛的上下文。它经常做与你要求相反的事情。"
Lisle说,过度依赖AI生成的代码可能导致无法理解的代码库。
"问题是,一旦你开始在更广泛的上下文中利用它,它就会创建极其不稳定和不可知的代码,"他补充道,"你可以让AI生成数十万行代码,但维护起来非常困难,理解起来也很困难,在生产环境中,这些都不合适。"
专注于微软技术的编程公司Keypress Software Development Group总裁兼高级软件架构师Brian Owens表示,他们在AI编程助手方面取得了复杂的结果。
对于小型、自包含的用例,AI生成的代码通常只需要最少的审查,但对于生产级应用程序,输出可能不一致且有问题。
"我们发现AI工具偶尔会忽略现有代码库的关键方面,或无法与既定的编码标准和架构模式保持一致,"Owens说,"这为我们的团队创造了额外的工作,包括审查、重构和返工,以确保代码可以投入生产。"
Owens发现,使用编程助手可能不会比人类开发者编写代码节省时间。"在某些情况下,验证和纠正AI生成代码所花费的时间可能会抵消预期的效率收益——有时比开发者在没有AI协助的情况下编写代码花费的时间还要多,"他说。
审查瓶颈现象
代码质量工具提供商Sonar最近对1100多名IT专业人员进行的调查支持了一些开发负责人表达的信任担忧。虽然72%的受访者表示他们每天使用编程助手,但96%的人表示他们不完全信任AI生成的代码。
与此同时,不到一半的开发者表示他们总是在提交AI生成的代码之前检查它,近四成的人表示审查AI生成的代码比审查人类同事编写的代码需要更多努力。
Sonar企业营销副总裁Chris Grams表示,随着编程助手质量的提升,开发者发现错误变得更加困难——但这并不是因为错误不存在。
"随着这些编程模型变得越来越好,你会遇到一个大海捞针的问题,虽然总体问题可能越来越少,但这些问题可能是隐藏得很好、很难找到的重大安全问题,可能是导致应用程序崩溃的关键因素,"他说。
数据分析解决方案提供商dbt Labs的首席技术官Mark Porter表示,虽然许多软件开发负责人说他们不信任AI生成的代码,但这个问题可能更加复杂。
他说,在dbt Labs广泛使用编程助手,信任其输出取决于上下文。
"信任AI编写的代码很像信任人类编写的代码,"他补充道,"通常,我在AI生成的代码中寻找与任何其他代码相同的信任信号。如果它是通过高完整性流程创建的,我就像信任人类代码一样信任它。"
但Porter表示,AI生成的代码可能以与人类编写代码不同的方式出现错误,AI经常增加复杂性并创建过于自信的注释。信任方程式必须适应这些独特的挑战。
他说,审查AI代码也带来了自己的挑战,增加了开发者的审查时间,即使它节省了编码时间。"输出量很大,所以它将瓶颈从生产代码转移到审查代码,"他补充道。
Porter表示,人类审查还需要保持对代码库的专家级熟悉度,这可以通过软件工程最佳实践来缓解。
"审查AI编写的代码确实存在独特挑战,"他补充道,"我认为信任AI代码的问题有点偏离了重点;我正在思考的是如何建立流程、指导方针和培训,支持我的工程师使用AI协助他们编写高效、正确且可维护的代码——在我看来,这就是AI在编程中的未来。"
Q&A
Q1:为什么开发者不信任AI生成的代码?
A:主要原因包括:AI生成的代码往往更加冗长,使错误更难发现;AI不理解代码的更广泛上下文,经常做出与要求相反的操作;会忽略现有代码库的关键方面或无法与既定编码标准保持一致。调查显示96%的开发者不完全信任AI生成的代码。
Q2:使用AI编程助手真的能提高开发效率吗?
A:不一定。虽然AI能快速生成大量代码,但开发者需要花费大量时间验证和纠正AI生成的代码。在某些情况下,审查AI代码的时间甚至比开发者自己编写代码的时间还要多,这抵消了预期的效率收益。
Q3:如何正确使用AI编程助手?
A:专家建议将AI编程助手主要用于样板代码和修复小问题,建立高完整性的代码审查流程,保持对代码库的专家级熟悉度,通过软件工程最佳实践来支持工程师使用AI编写高效、正确且可维护的代码。
热门跟贴