AI生成代码的陷阱AI生成四行代码存在九个问题
AI生成的代码,看起来能跑,但仔细一想全是坑?
Bumpkin的创始人David Oliver在自己的主页分享了一次使用AI进行编程的经验。
他展示出了一段用AI写成的四行代码。没想到,这个看起来简单的JavaScript代码,实则隐藏着好多坑!【图1】
他马上指出了这段代码的九宗罪:
1. 没有任何说明这段代码应该如何运行。
2. getElementById、addEventListener 和 console.log 这些函数在脚本内部并无定义。
3. 这段脚本很可能需要运行在带有V版本的E环境中(实质上是ExV环境)。至于它能否在所有环境中运行,仅凭代码本身根本无法判断。
4. 点击事件触发时才会执行回调函数,这种"控制反转"的写法完全打破了代码从上到下的执行顺序,
5. 函数中的this可能指向不同对象,容易引发意外行为
6. 事件回调明明可以接收事件参数,但这里直接忽略了
7. 如果代码被打包,错误堆栈信息可能难以追踪
8. thing元素可能不存在,但代码没有做任何判断
9. 如果在DOM加载完成前执行,这段代码将失效。
为什么AI写出来的代码总像“谜语人”?
Oliver直言不讳:因为写代码容易,写“好代码”难!
AI只会照猫画虎,不懂背后的逻辑。虽然能生成看似可运行的代码,但用起来问题一大堆:不解释逻辑、乱用全局变量、把简单问题复杂化。
甚至,在回头验证AI产出的时候,可能无法读懂它的脑回路。
Oliver认为,模块、文档和开源项目都提供了更好的解决方案。与其依赖AI生成代码,不如使用这些工具少走弯路,把精力放在真正需要思考的地方。
正如Linux创始人Linus Torvalds说过的那样:"理解程序在做什么,而不仅是某行代码在做什么。"