☰
Vibe Coding时代,为什么更要养好基本功这只“Claw龙虾”?
2026/10/22 14:18:03 网站建设 项目流程

最近我们技术讨论群里冒出来一句梗,乍看莫名其妙:“为什么?会Vibe Coding的,不养Claw龙虾?”我第一次看到的时候愣了好几秒,第一反应是“什么时候写代码的还得兼职搞水产养殖了?”后来看着评论区里一群人认真讨论 AI 写代码的翻车现场、凌晨三点调依赖、还有纸面上谈龙虾饲养技术的,才反应过来:这哪是在聊龙虾,分明是在用一只带钳子的海鲜调侃“AI 时代还要不要基本功”这件事。

作为从写if/else都要翻文档干到今天的开发者,我对这个梗特别有发言权。今天这篇东西不想整什么宏大叙事,就想把这个梗拆开,聊聊 Vibe Coding 到底是什么、它把哪批人送上神坛又摔进坑里,以及那只“Claw龙虾”到底象征什么。更重要的是——站在 AI 辅助编程的时代,一个写出“能跑”代码的人,和一个真正“会写”代码的人,差距到底在哪。

1. 先破解这个梗:Vibe Coding 到底在圈内指什么

1.1 “靠氛围编程”是怎么被定义的

Vibe Coding 这词是近几年才开始流行的,出处已经有点模糊了,圈子里公认的说法是某位 AI 领域的大佬在一次分享里随口造的。造词的人当时想表达的意思很直白:写代码不再是一行行“抠”出来,而是给 AI 编程助手下一个“感觉对”的指令,让模型把整段逻辑吐出来,这就像你在旁边看着,整个环境里弥漫着一种“它应该能跑”的氛围。

说得更形象一点。传统的编程是“翻译”:把脑子里的逻辑翻译成语法,语法报错了再回头改;Vibe Coding 是“点菜”:你跟 AI 说“帮我写一个用户登录接口,带验证码”,AI 给你一盘菜,你尝一口觉得“嗯,味道差不多”,就端上桌。如果味道不对,你也不进厨房自己炒,而是把菜端回去说“太咸了,少放点盐”——AI 再给你调整一版。

这种模式刚流行时,社区里充满了一种莫名的亢奋。一个人用一个晚上,配合 AI 助手做出一个功能齐全的小网站、一个小脚本甚至一套内部系统,这在以前是难以想象的。于是有一批人开始自称“Vibe Coder”,他们有一个共同特征:把“AI 能生成代码”等同于“我会写代码”。这个特征,恰恰就是标题里“会 Vibe Coding 的”那个“会”字最微妙的地方。

1.2 为什么偏偏是“龙虾”被拉出来嘲讽

再聊那只“Claw龙虾”。在这个梗里,Claw 不是某个具体品牌的代号,圈内流传的说法有好几个版本,有人说它源自某个技术播客的口误,也有人说是故意用一个荒诞的动物制造反差。但大家最终默契地把它理解为:一个“必须靠真功夫才能养好”的象征物。

为什么选龙虾?你细品。龙虾这玩意儿,一身的硬壳,两只大钳子,行动不快,但防御力点满。要养好一只龙虾,你得管水质、管温度、管脱壳期、管躲藏物,稍微一疏忽,它可能就死给你看。这像极了一个老程序员的自我修养:看着没那么光鲜亮丽,但系统稳不稳、扛不扛得住突发流量、代码能不能被后来的人接手维护,全靠平时一复一日那些扎实的“养”功。

所以这个梗的问句其实很嘲讽——它把“会 Vibe Coding”和“养 Claw龙虾”放在一个对立面上,好像你只要沉浸在 AI 生成的氛围里,就不再需要愿意去养那只难伺候的硬壳海鲜。可实际上,这俩根本就不是二选一的关系。开车和修车,做饭和种菜,你可以用工具减轻负担,但你得知道工具背后那套原理,不然工具一失效,手边连只钳子都没有。

2. Vibe Coding 的走红路径:从一句玩笑到一股风潮

2.1 被 AI 写作助手抬高的“人均产能”

Vibe Coding 不是凭空冒出来的。它在 AI 编程助手普及之后才成为潮流:先是自动补全,你写一个函数名,它帮你补几行;后来是自然语言生成,你说“写一个解析日志的东西”,它哗啦啦给你一个完整的类;再后来干脆可以托管整个项目,你只管描述、审阅、微调。

这一步步走下来,“代码产出量”和“写代码的人”之间的比例开始失衡。以前一个高级工程师一天能写三五百行有效代码,就算高产;现在,一个刚入门的新手在 AI 助手加持下,一天能提交上千行代码,而且看起来还有模有样。这种“人均产能”的暴增,让很多人误以为编程的入门门槛已经被铲平了。

我见过最典型的一位“Vibe Coder”:他打开某个开发工具,把需求往对话框里一粘贴,AI 先生成目录结构,再生成代码骨架,中间遇到报错就把报错信息复制回去,说“帮我修一下”,来回几次之后跑通了,他兴高采烈地提交代码、写周报、向团队展示成果。但你要是问他:这个功能是跑在什么框架上?数据库连接池为什么要这么配?线上环境单机扛不住怎么办?他大概率一脸茫然。

2.2 这类开发者的一天:全流程拆解

我试着把这类开发者的日常工作流程拆给你看,你会发现它就像流水线:

  • 上午,接到一个需求:“给我们的管理后台加一个数据导出功能。”
  • 他在 AI 对话框里输入指令,AI 生成一个带按钮、带后端接口、带下载逻辑的完整模块。
  • 他本地跑一下,页面能打开,按钮能点,导出的 Excel 文件能正常下载。“行,没问题。”
  • 他直接提交,发了 PR,一切顺利,CI 通过。
  • 下午又接到一个需求,继续重复这个循环。

你光看流程,觉得很高效,对不对?但问题藏在你看不见的地方:这个数据导出功能,导出一万行没问题,导出十万行、百万行的时候内存会不会爆炸?导出的文件有没有权限校验?大数据量导出时数据库连接会不会被占满?七个这样的模块同时运行,线上会不会雪崩?这些“边界条件”,Vibe Coding 默认不负责。它只负责给你一个“正常情况下能跑”的答案。

2.3 为什么“能跑”和“会写”之间的裂缝越来越大

这里就到了核心矛盾:Vibe Coding 拉大了“能跑”和“会写”之间的裂缝。以前,一个人能写“能跑”的代码,至少说明他理解语法、理解基本逻辑,多少是有点底子在的。现在呢?一个完全不懂编程的人,也能通过描述需求让 AI 产出“能跑”的代码。于是“会写”的标准被悄悄稀释了。

技术圈一直有一句话:“代码不是写给机器看的,是写给下一个开发者看的。”机器只需要最终的结果正确,下一个开发者却要知道:你为什么选这个方案?为什么这里要加缓存?为什么这个函数放在这个模块里?这些判断和设计盘根错节,恰恰是一个程序员真正的价值。Vibe Coder 在让 AI 写代码的时候,这些价值被压缩到了最小,取而代之的是——“反正它能跑”。

这种模式在独立开发、快速原型、一次性的工具脚本里,效率是真的高,我也不反对。但一旦进入多人协作、长期维护、线上高并发的生产环境,那条裂缝就会变成一个巨大的坑,等着所有人一起往里跳。

3. 只靠感觉写代码,会在哪几个环节率先翻车

3.1 需求边界:AI 替你发明的“发明”

第一个翻车点,往往是需求边界。人类说需求的时候,是带着默认前提的。比如客户说“做一个登录功能”,他脑子里想的可能是邮箱+密码,最多加个验证码。你让 AI 去做,AI 会“贴心”地给你实现一整套:手机号验证、指纹登录、第三方授权、验证码倒计时、失败锁定……看起来功能很全,但每个功能都是一堆额外代码,每个额外代码都带来更多 bug 和更多测试成本。

以前,实现一个登录,你得自己去确认客户要哪种方式;现在,AI 默认给你全都要。Vibe Coder 缺少的恰恰是“拆解需求”的能力:他不知道哪些需求是真需求、哪些是伪需求,也没有动力去追问,因为 AI 给出的方案看起来比自己问到的更“完整”。这种“完整”,在交付时经常变成灾难:测试用例翻倍、边界情况变多、上线后用户压根不用那些花哨功能,全是自嗨出来的技术债。

3.2 依赖与安全:贪婪的“第三方库采购员”

第二个翻车点,在依赖管理和安全性上。AI 在生成代码时,特别喜欢“引入现成的库”——这本来没啥问题,但它对库的选择标准只有一个:能解决当前问题。它不会去特别关注这个库是不是已经停止维护,也不在意这个库的依赖树是不是又拖了五十多个包进来。

我就遇到过一个模拟项目,同事用 AI 生成了一段处理时间格式的逻辑,AI 给引入了一个很流行的日期处理库。功能确实好用,但问题来了:这个库的某个旧版本存在一个原型污染漏洞,而 AI 拉下来的恰好是那个版本。安全扫描一跑,亮红灯。我问他“你为什么要引这个库?”,他说“AI 推荐的,我没细看”。这就是典型的“AI 替你决定技术选型,风险由你兜底”。你省下的那几分钟,会在某个深夜用事故的方式连本带利还回去。

3.3 健壮性:代码只处理了“晴天路径”

第三个翻车点,是对异常情况的处理。AI 生成的代码,绝大多数时候只覆盖“晴天路径”——正常的输入、正常的环境、正常的调用顺序。一旦出现网络超时、并发冲突、数据为空、第三方接口返回格式变更,AI 生成的代码常常直接崩溃,甚至连崩溃日志都写得稀里糊涂。

举一个非常常见的例子:写一个调用支付接口的流程,AI 会帮你把“发起支付、等待回调、返回结果”写出一个规整的流程。但如果你问它:回调超时怎么办?重复回调是幂等处理吗?扣款成功但通知失败,要对账吗?它给的答案很可能是一堆敷衍的try...catch,catch 里就一个日志输出。这些关键节点,需要的是有经验的开发者用真实业务约束去把它补齐的。Vibe Coder 因为没有经历过“线上事故毒打”,自然也不知道该在哪里多问一嘴,于是在生产环境用一个小小的疏漏,给团队上了一堂昂贵的课。

3.4 维护与交接:三个月后的自己成了“最熟悉的陌生人”

最后一个翻车点,隐藏得更深:可维护性。AI 生成的代码通常没有设计意图。人类写的代码,往往带着“为什么这么设计”的隐含信息:这个变量名为什么叫retryCount,这个循环为什么从 1 开始,这个模块为什么单独抽出来——一个负责任的开发者写完之后,还会在注释里给后来的自己留一张小纸条。AI 生成的代码,追求的是“当前这一次对话下的最优解”,它不会为三个月后的维护留任何多余的精神增量。

等需求变了,你要在旧代码上做修改。打开一个完全是 AI 生成的文件,你会有一种灵魂出窍的感觉:函数之间依赖关系乱七八糟,几百行的“面条代码”,命名还没规律。更恐怖的是,三个月前的你自己也说不清这些逻辑当初是怎么来的,因为你当时也只是“看了一遍、觉得没问题、就提交了”。这种“别人的代码比自己的代码更陌生”的体验,会让维护成本指数级上涨。

4. 人人都该养一只“Claw 龙虾”:硬功夫清单

4.1 那只钳子:读代码、拆代码、判代码的能力

说完了翻车点,我们回到这个梗的主角龙虾身上。龙虾身上最显眼的部位,是一对大钳子。放在程序员身上,钳子对应的就是最核心的一对硬实力:读代码和判代码。

Vibe Coding 时代,你几乎不用从零开始“写”代码了,但你必须能读懂 AI 写的代码,并且判断它对不对。怎么判断?你得懂基本的数据结构、算法复杂度、并发模型、网络协议。比如 AI 给你生成一个遍历嵌套结构找某个字段的代码,它用了三层 for 循环,你要能一眼看出时间复杂度是 O(n³),知道在千万级数据下这代码肯定会卡死。这个判断能力,是钳子;没这把钳子,你连 AI 给你的菜里有没有毒都尝不出来。

怎么练钳子?我的建议很朴素:别只盯着自己的项目,每周去读一份开源项目的 diff,尤其关注别人在做代码审查时提出的修改意见。你不需要成为那个仓库的贡献者,就把自己想象成审查者,一条一条看:为什么这个 PR 要把for循环改成map?为什么这个函数要拆成两个?这种“以审代读”的练习,能非常快地训练你的代码直觉。

4.2 那层硬壳:对系统边界的理解

龙虾的第二特征是壳,硬壳保护的是一整副柔软的身躯。对应到工程师身上,壳就是你对你所构建系统的“边界感”。

一个系统的壳,包含很多层:它用什么存储,能扛多大的并发,数据一致性怎么保证,宕机了怎么恢复,安全防线设在哪一层,成本红线划在哪。Vibe Coder 之所以翻车,很大程度上是因为他对这些边界一无所知。他知道怎么让 AI 写一个增删改查接口,但他不知道这个接口背后挂靠的那张表未来会变成几千万行,也不知道一旦事务失败要怎么补偿。

我特别推荐所有想“养龙虾”的开发者做一个小练习:画系统拓扑图。不用画得多标准,哪怕拿白板画一个“用户请求进来了,经过哪个网关、哪个服务、落到哪个数据库”,然后盯着这张图,在每个节点旁边写下:这里挂了怎么办?这里慢了会不会拖垮下游?这里的容量上限是多少?多问几轮,你会发现自己对系统的“壳”敏感度上来了,AI 生成代码的时候,你也知道该在哪些地方加防守。

4.3 那些细腿与触须:效率、性能与需求嗅觉

龙虾除了钳子和壳,还有一堆细腿和两根触须。细腿负责爬行移动,相当于程序员的工程效率策略:你会用调试工具吗?你会看性能火焰图吗?你会用日志系统排查线上问题吗?这些都直接决定了你在真实战场上能不能快速爬到一个问题的正确位置。

触须的任务是感知环境,对应的是一个程序员对需求的嗅觉。很多时候客户和产品经理嘴里说的,并不是他们真正想要的。你得会听“言外之意”:客户说“这个列表要快一点”,他可能不是要优化 SQL,而是嫌每次都要刷新页面;客户说“按钮挪到右边”,他可能其实是觉得提示文案太不明显。这种感知能力,没法靠 AI 生成,只能靠你深入业务、不断提问、反复确认“我们要解决的到底是什么问题”。

4.4 养龙虾的喂养手册:每周雷打不动的几件事

聊完这只龙虾的各个器官,最后给一份“喂养手册”。说实话,养龙虾一点都不玄学,关键在节奏和恒心。我给自己定的频率是这样的:

  • 每天留 15 到 30 分钟,关掉 AI 助手,纯手写代码。不用多,做一个小的算法题、写一个数据处理的函数、把昨天的 AI 代码重构一段,都行。核心目的是保持“手熟”。
  • 每周至少做一次代码审查,看别人的 PR,或者请别人 review 你的 PR。审查时别只夸“写得好”,逼自己找到至少一个问题:命名、边界、设计、性能、语义,哪个方面都可以。
  • 每两周做一次小规模的“技术复盘”:挑一个最近线上的小事故或者一次卡了很久才解决的问题,用文档写下来:现象是什么、根因是什么、以后怎么避免。写不出来,说明你还没真正搞懂。
  • 每个月读一份超出你当前工作范围的资料,别的语言、别的框架、别的领域的源码也好,论文也好,不需要精通,但要让大脑接触不同的“解决思路”。

这些动作看起来都很基础,但它们是“养”一只 Claw龙虾所必须的水质管理和换水频率。你越是 Vibe Coding,越需要这套营养计划来兜底。

5. 会 Vibe Coding 的人,恰恰更要学会“养龙虾”

5.1 两者不是替代关系,而是“驾驶与修车”的关系

聊到这里,回答标题那个问题其实已经很明显了:Vibe Coding 和养 Claw龙虾不是替代关系,而是驾驶与修车的关系。你可以享受自动驾驶的快感,但你必须在方向盘背后随时准备接手。你如果既不会看路标也不会踩刹车,那一脚电门踩到底的后果只能自己去修车厂哭。

或者换个角度理解:Vibe Coding 是“让 AI 介入执行层”,而“养 Claw龙虾”是守住你的“判断层”——判断需求、判断代码质量、判断环境约束、判断风险边界。执行层可以被机器替代,判断层一旦缺失,你连 AI 给你的结果是不是合理都不知道,你只是活在“每次都能跑通”的幻觉里。所以我始终认为,真正的 Vibe Coder 应该是龙虾养殖大户,他敢让 AI 撒开了跑,是因为自己已经在大脑里跑过一遍风险沙盘,随时能喊停并指出问题出在哪个环节。

5.2 我的实操经验:把 AI 当代驾,而不是当脑替

我自己现在的工作流,是刻意把 Vibe Coding 和“养龙虾”结合起来的。如果你也想在 AI 时代既吃效率红利又不掉进坑,可以参考这个节奏:

需求理解阶段,我不让 AI 参与。我先自己对着需求文档写三行话:这个功能为谁解决什么问题、成功的标准是什么、绝对不做哪些事。这三行话是我自己的“需求锚点”,AI 后面生成什么,我都是往这个锚点上靠。

架构设计阶段,我会先口述一版自己的方案,哪怕很粗糙,再把方案丢给 AI,让它帮我校验扩展点、指出遗漏。注意,是“校验”,不是“替我想”。这确保核心决策依然在我手里,AI 只是那个帮我做压力测试的人。

编码实现阶段,放心大胆让 AI 写,但有一个铁律:每次只让它生成一个模块或者一个函数,拿到手之后必须通读一遍,搞懂每一行是在做什么,有不懂的直接追问“这里为什么要用这个方法”。通过不断追问,我既是那个让 AI 干活的监督者,也把 AI 的每一次输出变成了自己的学习素材。

测试和 code review 阶段,我重新接管。让 AI 写单测可以用,但用例覆盖哪些分支、哪些边界要放行,必须由我定。出了问题,我先按住 AI,自己把日志和调用链读一遍,定位出大致原因之后,再叫 AI 来“打下手”。这套流程谈不上多高级,但它的好处是:我始终清楚自己在干什么,AI 只是高速引擎,方向盘从来没有松过手。

5.3 Vibe Coding 的三种正确打开姿势

最后分享三种我认为比较健康的 Vibe Coding 打开方式。你可以直接抄作业:

场景AI 能做什么你必须会什么
快速原型验证生成一个可运行的原型,验证产品想法判断原型是否覆盖核心假设,知道哪些模块未来要重写
项目脚手架搭建初始化工程结构、基础配置、工具链理解这个脚手架的关键配置项,能优化构建流程
遗留系统维护生成测试、解释不熟悉的旧代码制定重构边界,判断哪些代码动不得,哪些必须拆

我发现把 AI 用在“从一个点扩展到整条线”的场景最爽。比如你已经确定了接口规范和数据模型,让 AI 把那十几个 CRUD 接口一次性生成,你只需要检查有没有超出规范、有没有漏掉鉴权;而“从零到一的黑盒式生成”我也试过,结论是:爽十次,崩一次就足以把前面的快乐全部折进去。

6. 写在最后:别让“氛围感”吃掉你的基本功

说一千道一万,这个梗好笑就好笑在它的荒诞感:它把一个讲感觉、靠氛围的编程方式和一只硬壳、钳子、慢吞吞的龙虾摆在一起,制造出一种“二选一”的错觉。而真相是,它俩本来就应该是一体的。

我对 Vibe Coding 的态度,从来不是排斥,而是**“用手可以,用脑不行”**。你可以让 AI 写代码,但不要让 AI 替你思考;你可以享受“它居然跑通了”的惊喜,但不要忘了问一句“它为什么跑通了”。那些真正在 AI 时代如鱼得水的开发者,几乎都有一个共同特质:AI 让他们快,但基本功让他们稳;快来自工具,稳来自那只自己亲手养的 Claw龙虾。

最后再分享一个小习惯,也算我的压箱底经验:每天下班前,我会留出最后十几分钟,把当天 AI 生成的核心代码里的某一个函数拿出来,假装 AI 不存在,自己手动重构一遍。不求成果被采用,只求自己的手和脑保持在那个“随时可以独立完成”的状态。这个习惯一点都不高深,但坚持三个月后,你会发现自己不仅能更准确地判断 AI 的输出质量,在它偶尔抽风的时候,也能面不改色地把方向盘接过来,而不是慌慌张张地喊救命。

工具会迭代,模型会升级,Vibe 的风向也总有一天会变,但那只藏在硬壳里的基本功,是你谁也带不走的东西。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询