我受够了维护 AI 生成的代码

作者 | Tacitus      编译 | 苏宓

出品 | CSDN(ID:CSDNnews)

首先要说明的是,这不是一篇批评 AI 工具的文章。自从 Copilot 等工具问世以来,的确显著提升了开发者的生产力。据 CSDN 发布的《2024 中国开发者调查报告》显示,有 38% 的开发者在体验后认为,AI 编码辅助工具可以减少 20%-40% 的工作量。

不过,尽管 AI 工具可以生成高质量的代码,但 36% 的开发者反馈,在某些情况下,生成的代码仍需进行返工,由人类工程师来改 Bug,还有 32% 的开发者指出 AI 生成的代码可能导致重复。

AI 编程辅助工具对代码的影响

近日,开发者 Tacitus 就经历了类似的困境。为此,他还发布了一篇主题为《我厌倦了修复客户的 AI 生成代码》分享了自己的遭遇。

时间回到今年年初,Tacitus 为了个人使用需求,以及提升自身的 Rust 编程经验,决定开发了一些有关加密货币交易和数据收集的工具。

开发过程中,他针对一些技术性问题在不同的群聊中去寻求一些帮助,结果发现也有很多人在寻求类似的工具,并且愿意为之付费。

意识到这一点后,Tacitus 就迅速设置了一些 API 端点,让这些感兴趣的人可以免费访问数据,并通过支付少量佣金提交交易。

很快 Tacitus 便积攒了一些客户,这让他备受鼓舞,因为这是第一次有人为他开发的软件付费!

在此背景下,Tacitus 创建了一个 Telegram 频道(单向广播消息的媒介),用于发布功能更新和提供支持,起初一切进展顺利。但随着客户群的缓慢增长,支持工作开始占据 Tacitus 越来越多的时间。

Tacitus 表示,「我知道对于任何 SaaS 初创公司来说,增加的支持性工作是不可避免的,毕竟有更多客户意味着好事!然而,真正让人烦恼的并不是支持请求的数量,而是这些请求的质量。」

Tacitus 坦言,其提供的 API 是一些文档齐全的端口。如果你能弄清楚如何使用任意编程语言发送一个 POST 请求,那么使用起来就应该不会有问题。但这对于新一代的 Prompt 工程师编码者来说,似乎是一道高门槛。

自从开放支持渠道以来,Tacitus 已经处理了很多“救命!我的交易机器人不工作了!”的支持请求。大多数情况下,客户的代码问题很明显,只要读过文档并具备一定的编程能力就能发现问题所在。这些代码中常见的错误包括试图访问一个不存在的端口,或者无法从 API 响应中读取并不存在、未定义的属性。

为什么会存在这种情况?

经过进一步探查,Tacitus 的怀疑通常得到证实——是因为 ChatGPT 凭空想象出了这些端点或属性,而 Tacitus 所面对的客户几乎没有编程知识。Tacitus 表示,“如果他们只是想构建一个简单的脚本,我会帮他们修复这些虚构的内容——这不费什么力气,而且有可能转化为付费客户。”

然而,很多客户宛如一个对业务完全不了解的产品经理,他们总是会设想一些包含很多功能的复杂应用程序,对此,Tacitus 只能告诉他们:“抱歉,你需要雇一个专业的开发人员来完成这个。”

更糟糕的是,还有的客户一开始只是让 Tacitus 帮忙修复一个简单的 Bug,在他搞定之后,客户开始变本加厉,希望 Tacitus 能帮他们构建更复杂的逻辑,并且不知不觉中,Tacitus 被期望无止境地提供免费的支持。Tacitus 透露,自己收到了不少愤怒的客户信息,他们基本上希望他免费为他们构建整个应用程序。

Tacitus 表示,「相信这些挑战对任何经营 SaaS 业务的人来说都不陌生,但 AI 编程工具加剧了这个问题。当我能为那些自己能完成大部分工作但遇到障碍的客户排除困难时,帮助他们解决问题常常是非常有成就感的。然而,当客户因为自己没有能力而将软件工程工作交给 AI 时,他们仍然需要找开发人员来修复 AI 产生的错误。而我并不想成为那个开发人员!」

在 Tacitus 将自己的遭遇公开之后,不少开发者感同身受。

来自 HN 上的 alexeiz 分享道:

  • 我在工作中也遇到过类似的情况,当时我的同事问我,为什么他那段看似微不足道的 10 行代码会莫名其妙地出现问题。原来他有两个变量“file_name”和“filename”,并用其中一个变量代替了另一个变量。我问他是怎么得到这样的代码的,他说他用 Copilot 来创建它。在不了解生成式人工智能的作用的情况下使用其代码永远不是一个好主意。

另一位开发者 yawnxyz 表示:

Claude 给了我一个类似的东西,只不过这两个变量都在使用,而且都是全局变量,它搞不清楚什么时候该用哪个。

如果要求它重构/修复,情况会更糟,因为它会搞混,把它们合并成一个变量,问题是它们的用途略有不同,这就破坏了一切。

我不得不逐行检查代码来解决这个问题。

对我来说,使用 Claude 的速度更快,因为我可能要先花一周的时间来编写代码。不过,可能到处都隐藏着这样的陷阱,总有一天它们会露出丑陋的面目。真希望有一个好的测试生成工具来配合代码生成工具……

那么,你在使用 AI 辅助编码工具时有没有遇到这样的问题?欢迎留言分享你们的看法。

 

本文文字及图片出自 CSDN

你也许感兴趣的:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注