跳至正文

今天试了个新AI工具,差点把电脑砸了

事情是这样的。早上刷推,看到有人吹一个叫“Lovable”的AI编程工具,说是能直接生成完整的前端应用,比Cursor还牛逼。我这人吧,一看到“替代Cursor”这种字眼就忍不住,毕竟Cursor我用了快半年,虽然香,但bug也多得让人想骂娘。于是二话不说,注册,登录,准备开干。

UI倒是清爽,一上来就是个对话框,跟ChatGPT差不多。我寻思,那先让它给我生成一个简单的番茄钟吧,就那种25分钟倒计时,带开始暂停重置按钮的。我写了个prompt:“Build a Pomodoro timer with start, pause, and reset buttons. Use Tailwind CSS for styling. Make it look modern.”

好家伙,它直接开始生成了。不是一步步问需求,是直接给我整了个完整页面。我盯着屏幕,看着代码一行一行往外蹦,说实话,那一瞬间确实有点爽。大概二十秒,页面出来了——一个倒计时,三个按钮,背景是渐变色,字体是Inter。说实话,比我自己写的好看。

但是。

我点了一下“Start”,计时器开始走了,倒计时从25:00变成了24:59。嗯,正常。我等着它走到24:30,点了一下“Pause”。停了。然后点“Reset”,归零。再点“Start”,又走了。看起来完美对吧?不对。我点了一下“Start”,然后立刻点“Pause”,再点“Start”,你猜怎么着?计时器开始以双倍速度狂奔。25分钟,30秒就跑完了。

我愣了五秒,然后笑出声。这bug太经典了,典型的setInterval没清理,多个定时器叠加上去了。这要是放在正式项目里,用户能把你骂到注销GitHub账号。我想看看它能不能自己修这个bug,就在对话框里说:“There’s a bug: when you start, pause, and start again, the timer runs twice as fast.”

它说:“Let me fix that.” 然后开始改代码。我等了大概一分钟,它改完了。刷新页面,试一下。这次更离谱,点Start之后计时器根本不走了,UI直接卡死。我打开控制台,好家伙,报错:Uncaught TypeError: Cannot read properties of null (reading ‘current’)。它把useRef搞成null了,整个组件直接炸了。

我深吸一口气。然后决定不再跟它较劲,换个玩法。听说这工具能直接连Supabase后端,我就想试试让它做一个简单的笔记应用,带用户认证和数据库存储。这次prompt写得详细一点:“Create a note-taking app with user authentication using Supabase. Users can create, edit, and delete notes. Each note has a title, body, and timestamp. Use React Router for navigation.”

这次生成时间长了点,大概一分多钟。出来了一个登录页面,注册页面,笔记列表页面,编辑页面,路由都配好了。我心想,行啊小伙子,有模有样的。然后点注册,输入邮箱和密码,点提交。控制台报错:401 Unauthorized。它连Supabase的API key都没配。我翻了一下生成的代码,发现它在.env文件里写了一个占位符:VITE_SUPABASE_ANON_KEY=your_anon_key_here。好嘛,你倒是让我填啊。

我在对话框里问:“You forgot to set up the Supabase environment variables. Can you guide me through the setup?” 它回了一长串,大意是让我自己去Supabase后台创建一个项目,然后把key复制过来。说真的,到这步我已经有点不耐烦了。我本来就是想偷懒才用你的,结果还得自己去配后端,那我不如直接用Cursor算了。

但转念一想,算了,再给它一次机会。我配好了key,刷新,注册。这次成功了,跳转到笔记列表页面,空空的,没有笔记。点“Create New Note”,弹出一个表单,填标题,填内容,点保存。页面刷新了,笔记没出现。再点一下,还是没出现。打开数据库,空的。它根本没把数据存进去。我去看代码,发现它用了Supabase的insert方法,但没await,也没catch错误。Promise直接扔在那儿不管了。这要是生产环境,用户数据丢了你哭都来不及。

我彻底放弃了。不是说要贬低这个工具,它的UI生成能力确实惊艳,尤其是样式和布局,比我见过的任何AI工具都强。但一到交互逻辑和状态管理,就暴露了AI写代码的通病——它不理解“状态”是什么。它知道怎么写一个按钮,怎么写一个倒计时,但它不知道“多个定时器同时运行”意味着什么。它写出来的代码,看起来对,跑起来错。

我突然想起前几天看到的一个梗:AI生成的代码就像是一个实习生写的,看起来挺努力,但你不敢让它上线。今天这一趟下来,我深以为然。说实话,这种工具对于原型设计和快速验证想法还是有价值的,至少省了写HTML和CSS的时间。但如果你指望它给你写出一个能直接上线的产品,那你要么是在骗自己,要么是在给你的用户挖坑。

哦对了,我后来又试了一个叫“bolt.new”的,体验差不多,只是bug的种类不同。那个生成的番茄钟倒是没有双倍速度的问题,但它在手机上点按钮的时候,按钮会跑到屏幕外面去。我没修,直接关了浏览器。

写这篇的时候,我电脑的风扇还在转。可能是因为我同时开着VS Code、Chrome、还有四个AI工具的标签页。也可能是因为我气得。

发表回复

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