关于vibe coding的一点想法

date
Aug 16, 2025
slug
what-i-thought-of-vibe-coding
status
Published
tags
AI
summary
通过这两次小小的尝试,我总结的经验是,vibe coding并不适合完全编程小白,多少需要知道一点点代码知识,你才能在它无限循环的debug中找到问题在哪,指导它瞄准正确的靶子。
type
Post
通过 Film Flowers 这个项目,除了练习分析任务和写代码,对AI编程有了更多认知。
 
这不是我第一次尝试用AI写代码。几个月前,当我刚学了一个月左右Python时,尝试用Trae 和 vscode+copilot写了一个导入kindle笔记的小程序。这个程序的功能很简单,导入kindle笔记的txt文件,以书为单位分类所有笔记,根据需要显示或不显示笔记的位置。对于界面也只规划了功能分区,没有任何审美上的要求。
 
AI写出这个程序花了20多分钟,随后的调试花了4-5个小时。基本的一些界面UI上的调整位置很容易就解决了,当时最大的问题在于笔记的格式。kindle自动生成的笔记有时间、位置、内容,还有一些自带的符号。我希望最终显示的就只有位置和内容,并且非常强迫症的要求删去所有莫名的符号、空格。但是多轮修改中,要么笔记不显示,要么文字显示不全,要么有的最前面空两格有的不空,要么总不经意出现一些奇怪的符号。
 
反反复复地试了很久,最后是我自己检查原始txt文件,总结了原始笔记出现的各种格式、符号,告诉AI,这无休止的调试才终于完成,也算勉强达到我想要的效果(根据下图,显然不是完全达到要求,比如位置行最后多了半个括号)。
 
notion image
 
第二次,我用vscode + copilot爬了一次网站并且清洗数据,又出现类似的问题,即数据始终无法整理为我想要的内容和格式,又反复调试多轮,在我即将暴走前,想起之前kindle的项目,于是自己去检查原始CSV文件,发现AI对原始数据格式的判断有误,它以为是两列数据的,实际上是一列,所以怎么调都不对。
 
通过这两次小小的尝试,我总结的经验是,vibe coding并不适合完全编程小白,多少需要知道一点点代码知识,你才能在它无限循环的debug中找到问题在哪,指导它瞄准正确的靶子。后来听一期相关播客,嘉宾是一位曾经是程序员的投资人,也提到他使用vibe coding时,代码反复调试了20多轮,最后他看不下去了,跟AI说你换个XXX框架重写吧,问题解决。
 
这一次做Film Flowers项目,不是完全用AI来写,只是在不懂时跟它提问,就又发现了新的问题。这个问题可以总结为:AI有它自己的想法。
 
我最初认识到这一点是在做第三个练习,也就是把所有的元素排到一个网格中,因为当时我还没有学过设置网格,以为会有什么特殊的函数,于是我直接问AI怎么做,AI直接给我生成了代码。当时可能也因为工作了一天,脑子有点晕。AI代码的变量名又总是很长,我看得就更晕,觉得好复杂。等我第二天头脑清醒时再来看这段代码,发现其实就是非常简单的四则运算,只不过计算逻辑跟我整个程序不太一样。举例说,可能我整个程序有很多数据是基于列来提取,所以为了不设置太多变量、简化之后的一些程序,我在计算网格时也基于列来计算。但AI没有考虑这些,它就按照自己一套单独的逻辑,基于行来计算网格。导致我头一天看时没反应过来,才觉得特别复杂。如果我真的直接采用它的代码,会让我整个代码又多出许多行。
 
所以需要使用者对于自己项目的逻辑很清晰,才不会轻易被AI牵着鼻子走,导致解决方法变复杂。第二次是我写好了一大段代码,但是出现了bug,我非常不会debug,于是把整个代码复制给AI让它帮我检查问题。它返回代码时我发现,第一,它把我的变量名都改了,第二,它把我整个代码的逻辑改了。这就有点离谱了。
 
后来又发现,AI很喜欢做多余的事情。可能在有些场景会觉得它比你想得更深更细节更周到,但单从写代码这件事上,我的体验非常差。首先,它可能增加一些我根本就不需要的功能,其次,它这么一大段代码返回过来,我还得一条条检查它增加了什么,改了哪里。再加上前面的修改变量,那简直是噩梦。
 
于是这之后大部分时候我都会跟AI说,不要直接给我写代码,我只需要讨论思路,你可以告诉我每一步有哪些技术点。
使用AI最重要的,我认为,是把工具当工具。它再强大,始终是工具。使用者要清楚自己的任务、目的、需求,而不能把思考的部分也交给AI。
 
从一开始,我就没有去尝试过所谓一句话实现XXX。跟AI协作就像跟人一样,工作中要别人去做一件事,正常的做法是把事情上下文说清楚,需求说清楚,要求对方做的任务和产出说清楚,才有可能得到一个符合要求的结果。如果连自己都说不清楚,很难要求对方给你正确的反馈。然而大多数时候,能把一件事情讲清楚、把自己需求讲清楚的人太少了,跟AI沟通时又提升了难度,因为在人与人沟通时,我们可以借助其它手段,比如图示、动作或者参照物去解释、描述一些复杂的事情和流程,但与AI只能通过文字。
 
编程尤其如此,我曾在网上看过一个九岁小姑娘演示自己如何用vibe coding写一个给小学生做数学题的APP。她先在word里以list的形式写了一页需求,发给ChatGPT,GPT修改后再发给编程的AI。Angela Yu的coding入门课程中,最初的一节课就专门讲拆解任务,如何把一个项目拆解为细分步骤,画出流程图,然后写出每一个步骤的代码,最后合并为完整项目。就如同我这次的Film Flowers,之前的每一个小练习都是拆解后的一个步骤,完成了每一步骤最后再合并。人是这样工作,AI也理应如此。
 
notion image
 

© Scarlett 2024 - 2026