最近刷到越来越多和 vibe coding 有关的讨论和视频,倍感兴趣,去搜索了一下。
在 Wikipedia 上找到了下面这行话
A key part of the definition of vibe coding is that the user accepts code without full understanding. AI researcher Simon Willison said: "If an LLM wrote every line of your code, but you've reviewed, tested, and understood it all, that's not vibe coding in my book—that's using an LLM as a typing assistant."
看到以后,我仿佛瞬间领悟了 vibe coding 的精髓,这不就是一个专门用来形容我常常会遇到的那种“AI 重度依赖”编程家的词吗?
今天在哔哩哔哩的一个 PyCharm 介绍视频底下看到了一个评论,内容为“现在都用 cursor 了”。其实我并不清楚他是怎样使用 Cursor 的,我在底下回复“少在这里传播 vibe coding”,于是有了下面的对话。
其实我觉得我有些唐突了。面对如此火爆的 vibe coding 浪潮,我还真不敢对这种略带投机的行为下定论,没准他们的确在推动一些系统进步。所以想问问 v2 上的大家怎样看待 vibe coding ?
原谅我用知乎公式问问题
![]() |
1
passive 30 天前 via Android ![]() > you've reviewed, tested, and understood
这是关键。生命安全、财产安全、信息安全相关的代码,每一个字检查过来都不够。以后你住的高楼,是用 vibe coding 生成的代码计算的结构力学,想想就刺激。 |
![]() |
2
user23125 30 天前
与其写一大堆文字让 LLM 去做一个功能,不如直接手写代码。
|
![]() |
3
duzhuo 30 天前 ![]() 最好还是自己能知道自己在干吗
一个最好的例子: https://www.reddit.com/r/ProgrammerHumor/comments/1jdfhlo/securityjustinterfereswithvibes/ |
![]() |
4
agegcn 30 天前
看你写什么了,如果只是玩玩 vibe coding 很快的
|
5
cxtrinityy 30 天前 via Android
改天谁直接在互联网上投毒,发布些有后门的代码,等 vibe coding 用起来,然后一把梭全给你服务器加密勒索
|
6
arielherself 30 天前 ![]() 现在二极管太多了,要不就是一个字一个字敲,要不就是无脑劝人 vibe 。我觉得一个开发者应该自己去探索 AI 能帮助自己到哪,而不是天天在评论区尝试说服别人。
|
![]() |
7
MossFox 30 天前 ![]() 帖子开头引用的 Wikipedia 的段落就是很棒的看法。
全靠 LLM 生成出来的项目,你可以拿来用,可以说是你的作品,但是当你对基本概念跟项目结构都不能把握好的时候,它跟你上网随手摸了一个压缩包下载下来编译运行的场面差不多,除了多了一个能帮你试错、配环境和改错的大模型。 需要改动和修问题时不知道怎么指挥和定位问题,那就是靠大模型来帮你乱撞了。有的用户连如何描述一个问题都做不好,全靠大模型靠常识的猜测来兜。 自己对项目到底了不了解,越是遇到复杂或者技术栈不热门的项目越容易原形毕露。 假如是初学者,我们来整一个 ToDo List App ,好,这种场景你用 LLM 哗啦一下给你工作流排好然后开始生成全栈代码,最后也跑起来了,ok 。问题来了,你学到了什么?学到了怎么一句话提出模棱两可的问题?还是学到了大模型多牛逼 xx 又要失业了?它是怎么知道昨晚这一步然后下一步是什么的,到头来还得自己查。查吧又因为一开始基础知识也没有,搜索关键字都不一定能踩对。 如果是初学者,手搓一个 ToDo List App ,从技术栈选型开始,你就被要求要有自己的思考跟选择。你选了 React ,下面你通过实践知道了它内部的机制是什么样子的,知道了为什么网上搜到的旧教程是 Class Component 而新的都全部转为了 Function Component ,知道了它的 Hook 机制提供了怎样的状态与 UI 绑定的设计思路,知道了有异步请求时组件设计要把载入中、完成、出错等待重试的状态都设计进去,知道了工程目录的组织结构可以怎样设计和拆分,顺便还学到了 CSS 真的是个大坑。假如你让 LLM 帮你做完这一堆,到头来随便开一个文件都是看天书,从哪开始看都摸不着头脑。 如果已经是从业者或者有基础的,用这套工具做单元测试、做脚本工具、把重复的工具类工具函数之类的代码快速整完来协助提效,你会说这叫 Vibe Coding 吗?这就是个正常用 AI 辅助自己工作流的行为。全靠提示词来整项目就跟低代码平台一样,用在复杂一点的场景那都是挖坑高手,越往后坑越大。 造玩具造工具随便造,但是也请不要把那些样板页一样的产出叫做作品然后在网上到处发,至少带上点自己的理解和设计吧。 |
![]() |
8
msg7086 30 天前 ![]() Vibe Coding 这个概念太宽泛了。
严格的 Vibe Coding 是指在完全不懂软件开发的前提下利用 AI 做开发。 比如你是个厨师,突然想做一个做饭的 App ,然后让 AI 帮你搞,这就是典型的 Vibe Coding 。 但如果你本来就是个程序员,写过几年代码,也知道前端后端数据库都是怎么回事,知道自己要写的软件需要用到哪些软件栈,功能需要怎么分类到不同的功能区,前端需要加哪些元素,后端需要预留哪些接口方便以后扩展。这其实和 Vibe Coding 并不是一回事。 当你对着 LLM 说的第一句话是,利用 XX YY ZZ 技术构建一个 AAApp ,实现 A B C D 功能,的时候,就已经不算是严格的 Vibe Coding 了。 |
![]() |
9
ixcode 30 天前
那些地址 vibe coding 的,怕是以后连 coding 的机会都快没了
|
![]() |
11
donaldturinglee 30 天前 via Android ![]() vibe coding 就以我的使用经历来说,会钝化我写代码的直觉。在 ai editor 里,更多时间是等着自动生成代码,然后 review 没有问题直接 tab ,或者 tab 以后修改逻辑。时间长了以后脱离 ai 封装一些 class 和 function 都变得有些吃力。目前已经移除了编辑器中集成的 ai 了,只用 chat 来学习一些 demo 。现在大部分时间是在阅读文档和查阅项目依赖包的 issue 来解决工程问题。
|
![]() |
12
williamx 30 天前
怎么感觉这又是某群体发明一个“高大上”的词来粉饰其不成熟的行为呢?:-D
|
![]() |
13
foam 30 天前 via Android
各有利弊,如何将其驾驭好是关键。bug 制造者 -> 屠龙宝刀
|
![]() |
14
sentinelK 30 天前 ![]() 又是血统论。
是不是还得转进到用 IDE 不如用编辑器,用编辑器不如用记事本,用记事本不如打孔。 程序员产出代码,不管是通过什么手段,直观、可读、逻辑清晰、符合原则、健壮。那就是好代码。如果语法和格式契合企业标准,那就更好了。 你用你的打孔带,我用我的 AI ,最终产出一样,那就是一样的。谁也不比谁高贵。 还是不要把用 AI=埋雷,手撸=稳定、健壮这种刻板印象二极管思维带入到软件工程这种领域吧。 |
![]() |
15
sentinelK 30 天前
想当初,用记事本手撸 vbs 代码还是一种“高贵”。这才 15 年,“高贵”就已经贬值成不用 AI 了么。
|
![]() |
16
sentinelK 30 天前 ![]() btw:我个人理解,现在用类似 vibe coding 来地图炮别人的人,其实和当初万事不决 SSH ,微服务,vue ,php ,VSCode 的是一拨人。只认为自己会的、用的工具才是最先进,最好的。
殊不知所有的工具没有好坏之分,只有是否适宜之别。你的斧头即便是金的,他也一样不擅长吃饭夹菜。 |
![]() |
17
Subilan OP @sentinelK 我觉得没有必要这么着急开始滑坡。并不是说用 AI 来编程就是 vibe coding ,vibe 强调的是一种不加思考的面向结果编程(但其定义依然很模糊),并不是像 IDE 和记事本这样的党内斗争。
|
![]() |
18
Subilan OP @sentinelK #16
> 其实和当初万事不决 SSH ,微服务,vue ,php ,VSCode 的是一拨人 我再加一个,docker 。 > 殊不知所有的工具没有好坏之分,只有是否适宜之别。你的斧头即便是金的,他也一样不擅长吃饭夹菜。 我不是很懂你对 vibe coding 是怎样的理解,但还是觉得你这句话有点文不对题。vibe coding 带来的争论并不是“AI 这样的工具是否适合拿来 coding”,相反,我认为 AI 现在能胜任一部分范围内编程工作已经成为既定的事实。 vibe coding 给我带来的疑问在于,一个程序员对自己开发流程的理解,他的责任心以及他长期以来所积累的技术经验是如何轻易地允许他接受以一种 vibe 的方式去构造产品(如果是单纯的 throwaway weekend project 就没什么好说的了)。如果他的确是一个有经验者,我好奇这样做的理由是什么。如果他并不具备这些经验,是一个晚入局者,又为何以外行的视角来企图撼动现有的工程大厦。 |
![]() |
19
Subilan OP @sentinelK 仔细看了你列的这几个
> 万事不决 SSH ,微服务,vue ,php ,VSCode 遇事不决微服务,遇事不决 vue ,遇事不决 VSCode 这我都可以理解,因为很显然不止这些选择,怎么就非要用那一个呢对不对? PHP 我觉得是在玩梗。SSH 出现在这种语境下面我有点不太能理解了。 |
20
wpzz 29 天前
今天尝试了一下 vibe coding ,确实有帮助。
不过模型的差异对效率有较大的影响,低质量的模型需要多次修正才能达到可用的效果。 不过比自己写要省精力。 如 DS 我需要修正 3-4 次,claude3.7 需要 1-2 次就能明白。 |
![]() |
21
treblex 29 天前
|
![]() |
22
treblex 29 天前
claude 有点类似这样,我问他问题,他直接给我完全体代码
openai 就会一步一步的引导着问,虽然我大多数时候也只能说“好的”和“继续” |
![]() |
24
DigitalG 29 天前
现在是用对待自动驾驶的态度对待 vibe coding.
|
25
Hef 29 天前
小项目 vibe coding ,有时候一次性到位,很好用,项目稍微复杂点后,vibe coding 只会以惊人的速度创造屎山。
|
26
pinecone1 29 天前 ![]() 你不是最先滑坡的吗,wiki 里面都写了不动脑子用 AI 才叫 vibe coding ,下面被你转进成用了 cursor 就是 vibe coding ,你不就是奔着吵架去的。
从赚钱的角度来说公司付给码农钱,你只要交付出产品,功能 OK 就行,背后代码质量是次要的,代码你怎么搞出来都行,手写的,机器写的,外包给阿三或者越南人写的,或者你会魔法凭空变出来的,有什么所谓,能过测试保证质量可用,你就够格拿公司的薪水。 从程序员的自我满足来说,那质量要求多了去了,要可读性高,要优雅,必须不用 AI ,必须多写注释,所有类型安全,错误处理都要兜好,不能有任何 bad taste 的代码,你要是有洁癖你想怎么要求自己都行,但你没法要求别人,因为很多人只视码农为一个挣钱的工作,没那么高道德标准。我现在写了十年代码了,写我老本行不需要 AI ,我比 AI 写的都快,写不熟悉的新语言,go 什么的,我靠一路按 tab 就能自动补出一大堆代码,关键是还真好用,那我是真不想手敲了,赶紧干完下班完事了,我下班还要出去玩呢。 |
![]() |
27
Subilan OP @pinecone1
> 你不是最先滑坡的吗,wiki 里面都写了不动脑子用 AI 才叫 vibe coding ,下面被你转进成用了 cursor 就是 vibe coding ,你不就是奔着吵架去的。 我哪里“转进成用了 cursor 就是 vibe coding”… 如果我直接评价 Cursor ,我不会说 Cursor=vibe coding 。至于在哔哩哔哩这个评论里面,我觉得上下文需要明确一下,因为视频介绍的是 PyCharm ,那位网友在底下提到“现在都用 cursor 了”,何来“都用”?又为什么要在 PyCharm 底下发?所以我主观上就把这认为是一种对 vibe coding 的变相推崇。正如这里主贴里面我说的,我事后觉得我有些唐突了。 我并不是奔着吵架去的,我也没有想跟任何人在这个话题上面吵架。我来这里只是想收集一下看法,希望你不要这么冲动。 |
![]() |
28
Subilan OP @pinecone1
你后面写的这些我是赞同的,人不是关在象牙塔里面的呆子,AI 没什么不可以用的。个人喜好什么的的确取决于自己。但如果用纯 vibe 的方式去做大项目,我觉得已经不仅仅是个人选择,而是有些罔顾他人利益了(仅想法,并不是说有这种现象存在)。 |
29
zhengfan2016 29 天前
|
30
somnus977 29 天前 ![]() 我感觉这个问题能“吵”这么激烈,还是把 2 种不同场景的东西扯到一起了; 有一个比较贴切的例子:电商产品图里,现在有很多 AI 工具(在 AI 之前也有阿里巴巴的鲁班),一个完全没学过美术的人,也可以生成高可用的 UI 图、设计图、海报,这些用于商业完全可落地,价值很明显, 这里照猫画虎称为“vibe designing”;
事情到这里结束的话,世界和平; 但现在是支持 vibe desining 的人,到处喊着 designer 即将失业! 学设计前途暗淡! 未来人人都是 designer ! 这就导致 designer 也受不了了,有太多门道 太多细节可以去击破 vibe designing ,于是双方就陷入无休止的争论; 总结: 1 、内行看门道,外行看热闹; 2 、一个是内行,一个是外行,终究是聊不到一块的; 3 、内行也别自满,相对论, 有了外行,才有内行; |
![]() |
31
NoManPlay 29 天前
现在跟现阶段的辅助驾驶一样,当辅助用起来确实不错,完全靠 AI 和开车高速自动驾驶睡觉没什么区别
|
32
xsen 29 天前
@somnus977 #30 AI 的出现(不管是 design 还是 coding ),都让原有的人员需求在崩塌——需求在迅速减少(本质是效率的提升)
这些本就没什么好争的,时间是自己的、精力是自己的、生活也是自己的,一样的活若可以效率成倍提升,早干完早下班这不就很好。每个人都有自己的选择,那自然代价(付出)也是自己承担 |
33
maolon 29 天前
我就比较好奇 vibe coding 这个词火了, “vibe engineering”这个词就没火,结果被一个词涵盖所有的意思,你交付给 ai 一个完整的设计文档,然后监督他每一步按要求完成这个就叫 vibe engineering,
当然肯定有原教旨主义认为只要碰了 ai 就是没有质量的代码,差的代码,我只能说你说的都对,道不同不相为谋 |
34
somnus977 29 天前
@xsen 原有模式的需求会减少,但新需求在未来会更多;
以我现在公司的例子,最近使用 AI 探索,搭建了一个多语言国际化的翻译人工校验审批的平台,前端 98%代码是 cursor 生成,前端的交互体验和条形图,在视觉上好多了; 我很肯定没有 AI 的话,这个平台永远不会有人力去搭建这个“简单”的系统, 以往都是邮件+文档的形式,效率和体验很差; 当然,现阶段 AI 确实减少工作量,让我早下班了,但我觉得在不远的以后,AI 真的是胜任 Agent 的时候, AI 不会让我们早下班,只不过是让我们成为了 10 倍工程师,100 倍 1000 倍工程师( It's sad~) |
![]() |
35
Subilan OP @maolon #33 可能因为 vibe coding 提出的比较早(虽然是在今年)。Andrej Karpathy 在提出这个词的时候,原话说的是“give in to vibes”(个人理解为“完全凭感觉”)。不过我确实没听说过 vibe engineering 。vibe coding 这个词的概括性还是很强的。
|
![]() |
36
LuciusChen 29 天前
用工具的人,首先要能够知道工具产生的后果是什么,AI 就目前而言,不确定性很高,所以如果不做 review 的话,那还是别这么用 AI 。
|
![]() |
37
me1onsoda 29 天前
vibe 这个词究竟是什么意思
|
![]() |
38
Subilan OP @me1onsoda #37 是气氛,感觉的意思。vibe coding 没有一个普遍的翻译,我个人理解为“凭感觉编程”。虽然名字跟 AI 没什么关系,但他的提出者在提出时想要表达的,正是一种凭感觉、忘却代码的存在,只靠 LLM 完成编码工作的行为(因为 LLM “过于强大”)
> There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. |
![]() |
39
chg0901 29 天前
Vibe 是重点
|
40
echoechoin 29 天前
@passive 有的人直接 ai 复制过来看都不看就 merge request 真的无语
|
42
kinghly 29 天前 via Android
目前代码的实现方式还与使用者水平强相关。懂设计、懂架构的,再加上懂 prompt 的,输出的代码会好很多,当然也免不了调试调优,但 AI 确实是能节省部分精力。
把任务给到 AI ,遛个弯回来再验收代码。 |
![]() |
43
janus77 28 天前
我是面向工资编程,在 vibe coding 还没有成为招聘加分项甚至一个单独岗位之前,我先持观望态度
|
![]() |
44
fangxisama 28 天前
工具进步 !== 能力平等。
|
![]() |
45
daniel80 27 天前
vibe coding 让我开始懂了很多代码,没有 AI 我不会尝试写编程,慢慢也爱上了编程
|