AI 生成代码的风险:代码能跑不等于没问题
讨论 AI 代码生成的质量陷阱和验证重要性。有工程实践启蒙意义,但未深入方案。
讨论 AI 代码生成的质量陷阱和验证重要性。有工程实践启蒙意义,但未深入方案。
如果有严重的疾病,你会不去看医生,只凭你最喜欢的AI模型的建议来治疗吗?你会让AI接管你孩子的教育吗?
那为什么你愿意把整个代码库交给它呢?
JSNation就在眼前,我之前提到过,我也会参加一个名为"信任AI系统:多少才算太多?"的讨论室。所以今天,让我们讨论一下这个话题。
另外,经过异常忙碌的上半年后,我认为我下周就正式进入度假模式了。期待看到一些JavaScript文章、流行的bash命令和偶尔出现的编程梗。😄 我知道你们很多人也喜欢这些。
顺便说一下,我已经提到过,我将在今年10月在布拉格的FrontKon大会上演讲!我有种感觉这将是本季度最好的大会之一。到目前为止组织工作非常出色。议程已经发布,我知道我的演讲安排在下午3:30。我还没完全搞清楚是哪一天,但别担心,我应该能在十月之前搞定。😄
如果你对前端开发感兴趣,一定要看看。显然门票卖得很快。你也可以在这里给我点个赞。
这可能是我2026年最后一次大会演讲了。除非有人邀请我去其他地方。事实证明,这并不是完全不可能的。😉 但那是另一个故事了。
让我们回到主题。
你对AI的信任程度有多高?我不仅仅是在谈论代码。我也在谈论知识。
我不知道你在编程之外使用LLM的频率有多高,但我用得很频繁。真的很频繁。有时我向它们发泄感受。有时我寻求信息、灵感或对想法的验证。我注意到了一个有趣的模式。
还记得学校或大学吗?一般知识很容易获得。但当你需要更专业的东西时,你必须去图书馆或翻阅学术期刊。
模型的工作方式惊人地相似。当我寻找一般信息时,我几乎盲目地信任它们。但我讨论的话题越是我真正了解的领域,我开始注意到的荒谬就越多。
是的,模型的幻觉比以前少了。它们不再每隔一句话就编造完全荒谬的事实。但它们真的停止犯错了吗?并不完全。
有时候事实大体是正确的,但名字被搞混了。有时候两个独立的对话会自信地给我同一医学问题的两个完全不同的解释。😉
当然,LLM通常会告诉我们去咨询医生,提醒我们验证重要信息。
说实话,我认为没有多少理智的人会盲目信任AI模型来处理他们的健康问题。
但我们的代码库呢?当然可以,亲爱的模型。
现在事情变得有趣了。
就像你们大多数人知道的那样,我主要从事网络开发工作。我做这个已经有相当一段时间了。当我和LLM讨论架构时,即使是针对我自己的副业项目,结果通常也出人意料地好。
但有时候它们绝对令人恐惧。巨大的整体文件。缺失的抽象。甚至更糟:到处都是不必要的抽象。你好,Codex。👋
这仍然不是最坏的部分。每隔一段时间你会发现一个漂亮的XSS漏洞或其他一些悄悄滑入生成代码中的安全问题。
大多数代码看起来完全合理。问题通常很小。非常小。隐藏在细节的某个地方。但这些微小的问题可能在几天内就摧毁我的生产环境。
这里的问题是:我能看到那些错误。我能看到它们是因为我在这个领域花了超过十年的时间。
但如果你正在建立你的第一家创业公司,或者刚开始你的编程之旅,你怎么能知道agent刚刚打开了前门?
然而人们一直在进行vibe编码。
要明确的是:vibe编码很棒。
一个朋友最近告诉我,他帮助他的女儿在Unity中构建了一个大学项目。他之前从未使用过Unity。初始项目骨架大约用了三十分钟用AI生成。接下来的五个小时都花在修复模型生成的东西上。
但这里的关键是:没有这个模型,他可能根本不会在那五个小时里开始。他可能会花时间配置环境。这是非常强大的。
按照这个逻辑,一旦你理解了软件工程,技术栈和生态系统就不再那么有限制了。你可以突然比以前快得多地构建几乎任何东西。
这就是诱惑开始的地方。
我会走得更远。关于开发人员是否应该理解AI生成的代码,是否还有争议?还是我们已经超越了这一点?
因为也许理解它不是必需的?毕竟,它有效。这个模型甚至写了单元测试 xDDDDDDD 还有什么可能出错呢?😄
对于爱好项目、实验或大学作业,那完全没问题。就像我朋友女儿的项目一样。五个人会看到它,它会得到一个成绩,然后它会悄悄地消失在一个仓库里。
真正的问题始于有人决定这对生产环境足够好的时候。因为不幸的是,它通常是足够好的。
当出现问题时,人们喜欢怪AI。我不。
我们已经看到过AI agent删除数据库然后试图掩盖的故事。我们看过推出的服务存在安全问题,即使是相对经验不足的攻击者也能利用。老实说,我们可以列举例子到明天早上。
事实是,渗透测试人员从未有过比vibe编码软件时代更轻松的时候。
令我感到有趣的是,当人们说:"看吧?AI造成了这场灾难。"不。它没有。负责任的人是给了agent过度权限的人。是没有审查输出的人。
是那个决定构建他们不完全理解的东西的人,因为雇用有经验的工程师似乎太贵了。
AI没有部署那段代码。人类部署的。
AI不会夺走程序员的工作。
但无批判地信任AI的程序员可能会非常擅长从自己身上夺走那些工作。
所以我很好奇:你在哪里划界限?
你审查AI生成的每一行代码吗?你让agents自主地进行更改吗?还是你已经到达了一个相信模型比验证它感觉更自然的地方?
多少信任才是太多?
有些评论可能只对已登录的访客可见。登录以查看所有评论。
要采取进一步行动,你可能会考虑阻止此人和/或举报滥用。