Vibe coding这个词我是去年年底在某次技术分享上听到的,台上那位老兄说:以后写代码靠感觉,AI负责把感觉翻译成能跑的程序。我当时觉得这话有点玄,回家试了两周,发现还真不是玄学——它本质上是一种更依赖直觉、更追求心流状态的AI辅助编程方式,程序员把重心从“手敲语法”挪到“描述意图、审阅结果、调整方向”上。这篇文章我想把自己从接触vibe coding到把它落地到日常项目里的完整心得整理出来,包括工具怎么选、提示词怎么组织、哪些场景适合哪些场景千万别玩,以及在嵌入式这种资源受限的环境里怎么vibe。适合正在用或者打算用AI辅助编程的朋友,看完你至少能建立一套自己的判断标准。
1. vibe coding 到底是什么,以及它为什么能成立
1.1 从“写代码”到“描述代码”的认知转变
Vibe coding最早就是指那种“跟着感觉走”的编程状态:你不再盯着语法高亮逐行敲键盘,而是用自然语言把自己的意图说清楚,AI补全、AI生成、AI修bug,你负责看结果、反馈、再调整,整个节奏更像是在跟一个永远不会不耐烦的结对伙伴聊天。
我自己的感觉是,这个模式能成立的核心在于:大部分业务代码本质上不是创造性的,而是在翻译需求。你有一个输入,经过一些逻辑处理,产生一个输出,中间涉及的CRUD、状态流转、接口调用组合,这些年来早就被写烂了。AI在消化了海量公开代码之后,对这类常规实现的理解程度已经够用。你真正要做的,是把自己的设计意图表达清楚,而不是纠结某个循环怎么写。
这个转变听着简单,实际操作时很多人会卡住,因为习惯太强了。我刚开始用的时候也忍不住伸手去改AI生成的代码,觉得“它那写的跟我想的不一样”,后来发现这个动作本身就是vibe coding的大忌。你一旦开始逐行改,心流就断了,节奏就没了。正确的做法是告诉它哪里不对、想要什么效果,让它自己调整,你继续在高空俯视整个项目结构。
1.2 为什么直觉式编程能落地:三种能力组合
Vibe coding能成立,我拆解下来靠的是三种能力和过去开发模式的显著差异。
第一是对代码的知识压缩。过去一个工程师要写出能运行的后端服务,至少需要熟悉框架、数据库、部署、网络协议等一套相对完整的知识栈,这些知识被分散在无数文档里。而现在这些知识被压缩进了大模型的参数里,你只需要描述场景,它就能把跨领域的方案组合出来。
第二是交互成本的骤降。传统编程里一个需求从想法到运行,花在环境配置、模板代码、依赖挑选上的时间往往比写核心逻辑还多。但vibe coding时代,环境和模板可以直接让AI生成,你的时间基本都花在沟通和验证上,等于把写代码的成本结构彻底改了。
第三是反馈回路的缩短。过去你得写完、编译、跑起来才能看到结果,一个很小的改动可能要走完整个流程。现在你可以在几分钟内完成“描述意图 → 生成代码 → 检查差异 → 提出修改”的循环,这个高速反馈回路本身就会让人上瘾,而且效率确实高。
这三个能力结合起来,意味着vibe coding不是一个“偷懒神器”,而是一个“放大镜”:你的思路清晰,它帮你快速落地;你的思路混乱,它帮你快速制造混乱。所以真正决定上限的,还是脑子里有没有一套靠谱的需求拆解和解法规划能力。
1.3 vibe coding 与 pair programming 的异同
有些人会把vibe coding类比成结对编程(pair programming),我觉得两者确实共享一个核心逻辑:一个人负责写,另一个人负责盯。但区别在于,结对编程里的两个人都基于同一套代码和项目上下文,彼此纠正的是实现的合理性;而vibe coding里的AI更多是基于统计规律去猜测你想要的形态,它看不到你的业务全貌。
这带来一个很实际的差异:结对编程里你只要说“这个函数有问题”,对方马上能定位到问题;但AI不会,它可能理解错你的上下文,给你“修正”出一个表面好看但逻辑更奇怪的结果。所以在vibe coding的环境下,反馈必须更具体、更有信息量。我一般会把报错信息、预期输出、实际输出、相关代码片段尽量完整地给到AI,这样反馈回路才会稳定靠谱。
对应到团队协作上,这个差异也很重要。如果你和同事一起vibe,必须约定角色边界:谁负责提需求,谁负责审代码。如果大家都当“提需求的人”,代码库很快就会乱成一锅粥。这个经验我在后面第3部分会展开讲。
2. 工具选型与实践环境:我用过的几套AI编程搭配
2.1 四类主流工具,我的真实使用感受
市面上的AI编程工具五花八门,我按交互方式把它们分成四类,分别说下我的实际体验。
一类是补全式工具,代表作是GitHub Copilot。它最大的特点是安静,你正常敲代码,它在旁边默默给建议,tab确认即可。这种工具适合在“我已经知道自己要写啥”的场景下使用,帮你省掉样板代码和重复结构。它的局限性也很明显:不太适合处理跨多个文件的复杂需求变更,因为它更擅长逐行预测,而不擅长全局重构。
第二类是对话框内嵌工具,比如Copilot Chat、JetBrains AI Assistant。你能在一个面板里和AI对话,让它解释代码、生成单测、修改选中区域。这类适合局部问题的排查和修改,但它有一个致命的毛病:它对项目上下文的感知能力有限,你经常得手动把相关代码贴进去,体验非常割裂。
第三类是Agent型工具,代表作是Cursor的Composer、Claude Code、Codex,以及现在各家IDE都在跟进的Agent模式。这类工具会把任务理解成一个多步骤流程,自己读文件、改文件、跑命令、看报错、再改。我最推荐vibe coding深入使用的就是这一类,因为它的工作方式最接近“真人结对伙伴”。我自己的主力组合是Cursor加Claude的模型后端,日常体验比较均衡,长上下文下的稳定性可以接受。
第四类是网页对话模型,比如直接用ChatGPT或者Claude网页版写代码再复制回来。它的优点是没有环境依赖、随处可用,缺点是完全脱离项目上下文,每次都要手动搬运代码。我只建议在查API用法、讨论方案、写小工具脚本时用,大型需求还是交给Agent型工具。
2.2 我推荐的组合:Cursor 加 Agent 模式
如果让我只推荐一套入门配置,我会选Cursor + Claude的Agent模式,原因有三个。
第一,它的上下文感知做得比较实用。Cursor能索引你整个仓库,Agent模式在响应的时候会主动去搜索相关文件,你不用把所有代码都贴进提示词。这一点看起来简单,在实际项目里差异巨大:用网页版时我经常要为一个改动复制五个文件的内容,光整理上下文就得花十分钟。用Cursor之后这个负担几乎消失了。
第二,它操作文件的流程是透明的。AI每读一个文件、每改一块代码,都会在操作流里显示出来,你能清楚看到它动过哪些东西。这意味着你可以像审查同事的提交一样审查它的行为,发现它读了不该读的文件或者改了不该改的地方,可以及时打断和纠正。这个透明性对我来说非常重要,因为它把AI从“黑盒生成器”变成“可审查的协作者”。
第三,它的多文件重构能力能用。我日常做的最重的一次操作,是让AI把一个单体脚本拆成三个模块并保持行为不变。在Agent模式下,它自己建文件、写测试、跑测试、对比输出,整个过程我只在最后做了一次review。这种体验放在两年前是想都不敢想的。
当然这套组合也有问题。最大的问题是吃内存,项目稍微大一点,索引和Agent并发跑起来电脑风扇就开始狂转。我自己的做法是专门给AI任务留了32GB内存的机器,项目放在SSD上,索引目录限定在src和tests,把构建目录都排除掉。这一套优化之后,日常vibe的流畅度提升非常明显。
2.3 长上下文模型和项目规模怎么匹配
我自己用的经验是:长上下文模型不是越大越好,要跟项目规模匹配。
如果你的项目是一两千行的小工具或脚本,普通模型的上下文已经足够覆盖整个仓库。这时候你用Agent反而可能画蛇添足——模型为了“表现得有用”会东翻西找,引入不必要的复杂度。
如果你的项目是几个模块组成的中等工程,比如一个后端服务加一个前端面板,这时候就需要至少128K上下文的模型,让Agent模式能在不同文件之间跳转。我遇到过上下文一小就“眼神不好”的情况:改了一个接口签名,结果调用它的另外三个文件它根本没看到,导致编译失败。后来我干脆把所有相关文件放在同一目录并控制模块数,才缓解了这个问题。
如果你的项目是微服务架构、几十个模块那种,我劝你别硬来。任何工具都很难在一次对话里保持整个架构的心智模型。正确做法是拆成一个个边界清晰的子任务,让AI一个一个解决,每个子任务的上下文尽量自包含。这个我在第3部分会给出具体的拆解方法。
3. 一套能跑通的 vibe coding 工作流:六步完成从想法到代码
3.1 第一步:把模糊需求变成任务清单
vibe coding听起来很随性,但我实操下来,失败率高的人往往卡在最前面:需求没想清楚就急着开聊。你如果不花十分钟把需求理成任务清单,AI会在每一小步上都给你一个“合理但方向不对”的方案,最后拼出来一个看起来要素齐全、但整体完全不是你想要的东西。
我的做法是,先在文档里用自然语言写一份需求描述:端到端的用户故事是什么,输入是什么,输出是什么,有没有必须遵守的约束。然后我会手动把这份描述拆成可执行的开发任务列表,每个任务包含验收标准。这一步千万别让AI来做,因为你自己的上下文和业务理解是AI不具备的,拆出来的任务才有意义。
举个例子,我有一次要做一个日志分析小工具,需求是“读日志,统计不同错误码的出现次数,按次数从高到低输出”。我的任务清单是:
- 实现日志文件读取,支持两种常见时间格式;
- 实现错误码的提取正则,支持Nginx和Java堆栈两种风格;
- 实现计数和排序逻辑,输出到控制台和CSV;
- 处理日志文件不存在的异常并给出友好提示。
这四个任务每个都可以独立测试,最后合起来就是完整体。这个步骤通常花不了几分钟,但能帮你把后续所有跟AI的对话都锚定在明确的目标上。
3.2 第二步:提示词里必须有的四样东西
把任务清单交给AI之前,我建议把提示词组织成固定的结构。一个完整、质量高的编码提示词,应该至少包含以下四样东西。
第一是背景约束。告诉AI它面对的是什么语言、什么技术栈、什么项目结构、有什么编码规范。不要觉得这些是常识,AI不会自动知道你的项目用Go而不是Java,也不知道你已经有了一个内部的工具函数库。
第二是需求描述。用一两句话说清楚要实现什么功能,越具体越好。避免“写个登录功能”这种描述,改成“实现JWT登录接口,用户名密码从MySQL中的user表校验,登录成功签发7天有效的token,失败返回401”。
第三是输入输出定义。明确函数的输入和期望输出,最好直接给定例子。AI对示例的依赖程度很高,给一个输入输出对,它的命中率会显著提升。比如“输入"2025-01-01 10:00:00 ERROR: DB timeout, retry=3",输出("2025-01-01 10:00:00", "ERROR", "DB timeout, retry=3")”。
第四是验收标准。告诉AI写完之后要跑什么测试、满足什么条件。我会经常要求“写一个能跑起来的单测,覆盖正常路径和空输入情况”或者“代码用项目现有的日志库而不是fmt打印”。验收标准给清楚,AI自己就会把这当成完成的定义,并根据这三个标准来评判自己的工作是否可交付。
我自己的体会是,四样东西缺一不可。缺了背景约束,它容易自作主张给你换个库;缺了输入输出定义,它容易理解错你的意图;缺了验收标准,它会告诉你“我已经完成了”但代码根本无法通过验收。
3.3 第三步到第六步:迭代、反馈、验证、回滚
任务清单有了,提示词结构清晰了,剩下的就是循环执行。我按个人习惯把loop分成四步。
第三步是让AI干活。按任务清单的顺序,一个一个来,不要一次性把所有任务都丢给它。一次只做一个任务,确认这个做完、测试通过,再开下一个。好处是失败时排查范围极小,坏处是交互次数多一些,但实际耗时反而更短。
第四步是反馈。AI给出的代码,你要做的是“读差异、看设计、提意见”,而不是“一句不错就完事”。我会仔细看它改了哪些文件、改了哪些函数,逻辑是否和任务清单的预期一致。不一致的地方用具体的方式指出来:写清楚“把xxx方法的返回值改成yyy类型”或者“这里应该用表驱动而不是if else”,会比“你写的代码不对”有效得多。
第五步是验证。升到项目级别跑测试,编译、单测、集成测试一项不落。很多人在vibe coding的时候偷懒,觉得AI写的东西“看起来差不多了”就不跑验证,结果后续所有问题都堆到集成阶段才暴露。我的铁律是:每次AI提交代码,至少跑一遍相关模块的测试和一次完整构建,确认没有把全局状态弄坏。这个习惯帮我减少了一大半没意义的back and forth。
第六步是回滚。如果某个改动引入了不可控的复杂行为,不要试图在原基础上修补,直接让AI撤销这次改动,回到之前绿代码的状态。大多数Agent工具都有checkpoint或者git历史,随时可以回退。我自己每次开始一个vibe任务前会先把仓库commits干净,保证任何坏改动都能无损回退。这就是我的保命符。
3.4 写注释和文档这件事,交给AI但是要盯
有一类任务特别适合在vibe coding里顺手做掉,那就是注释、README和代码内嵌文档。AI对代码的理解能力足以生成质量不错的注释,这对维护者来说是巨大的福利。
但这里有个陷阱,AI经常写出“自说自话”的注释,它把代码动作重新描述一遍,而不揭示为什么这么做。比如看到一行FlushBuffer(),它可能会注释“调用FlushBuffer函数刷新缓冲区”。这种注释的价值很低,更糟糕的是当代码行为发生改变时,AI生成这些注释的功夫会让它们迅速变得过时,反而误导读者。
我的做法是设定规则:告诉AI“只对复杂的业务逻辑和设计决策写注释,不要在每行代码上写”以及“如果注释说明的是‘为什么’而不是‘是什么’”。这个规则写在项目的AI规则文件里,每次Agent开工的时候都会自动加载。坚持下来之后,注释质量比很多人类写的还高一些。
4. 嵌入式 vibe coding:在受限世界里和AI协作
4.1 嵌入式 C 开发为什么不太“vibe”
Vibe coding这股风潮最先火起来是在Web开发圈,因为互联网项目天然方便AI学习,方案也都是常见的组合。但嵌入式开发完全是另一回事:C语言指针操作、位运算、宏这些大量依赖经验的技巧,加上编译目标平台碎片化、硬件寄存器要靠数据手册一行一行对,AI的惯性在这里经常失灵。
我在嵌入式上踩过最大的一个坑是寄存器操作。AI基于通用编程经验,很容易写出现成的代码,比如“将寄存器REG的bit3置位”时用REG |= (1 << 3);,这在绝大多数场景没问题。但有些硬件寄存器的某些位是只读的,直接执行|=会把不该动的高位一起刷掉,导致配置完全错乱。AI看不到硬件手册,它天然觉得这种写法肯定是对的。这种细节问题用单测很难发现,只能靠代码评审时对照手册,一不留神就变成潜伏的雷。
另一个麻烦点是嵌入式环境经常用的工具链很老,老版本的编译器对C标准的支持和大模型接触到的现代AST风格差得有点远。包括变量的声明位置,包括C89和C11的差异,AI生成的高级写法有时候并不能在老工具链下编译通过,而它的报错信息还特别“自信”——一种它不是失败而是没错的感觉。所以嵌入式vibe coding绝对不是“省力模式”,你得额外嵌入一层“翻译老工具链方言”的工作。
4.2 把硬件手册喂给 AI 的具体方法
那是不是意味着嵌入式就不能vibe了呢?也不是。我的经验是,嵌入式可以vibe,但你需要把硬件手册、寄存器定义、时序约束这些东西尽可能喂给工具,让它少靠猜。具体方法我总结了三条,效果立竿见影。
第一条是建一个“硬件抽象”知识文件。在仓库里单独维护一份文件,把当前项目涉及的硬件特性整理成MD格式:芯片型号、关键寄存器地址和位定义、外设时钟配置、中断优先级、引脚复用表。每次跟AI对话的时候,明确引用这个文件路径,并让它基于文件内容作答。相当于给它一个它自己看不见的“数据手册本地化版本”。这份文件谁来写?建议你手工写,这是嵌入式工程师本身就该有的自制力和核心积累。
第二条是先让AI写驱动骨架,再人工补寄存器值和时序细节。举例说,你要写I2C驱动,可以让AI先按你提供的芯片型号,生成一套I2C主机模式的框架代码:总线初始化、启动信号、Stop信号、收发单字节这几层骨架,每一步都有清晰的注释位置。然后你来填它真正需要的寄存器值。这么做的理由是,AI很擅长把流程结构和代码分层做好,但它算不准具体硬件博主的数值和时序。骨架责任和数值责任分开,反而各得其所。
第三条是针对老旧编译器,我在提示词里加了强制约束,例如:“所有局部变量声明在代码块开头,不允许混合声明和语句;不使用for循环内声明变量;不使用//注释之外的新标准特性”。都给到它以后,老工具链的编译问题几乎绝迹。这类约束我会按项目的工具链更新情况和编译警告列表,每隔一段时间维护更新一次。
4.3 嵌入式vibe coding的提示词强制约束模板
最后给一套可以直接抄的约束模板。我把这套写成提示词的固定头部,每次嵌入式任务都附带,实测下来可以让生成代码的可编译率和可维护性提升很多。
- 技术栈约束:明确说“我们的项目是ARM Cortex-M系列,使用GCC ARM工具链,C标准为C99,不启用C++扩展”。
- 寄存器操作约束:“对硬件寄存器的读写必须使用
READ_REG、WRITE_REG、MODIFY_REG这些宏,禁止直接对struct指针强转地址”。 - 外设访问约束:“所有外设初始化函数必须放在
HAL_xxx_Init的类C风格结构中,中断服务函数保持简短,具体耗时逻辑放到主循环或任务调度器处理”。 - 可测试性约束:“与硬件相关的底层要封装成独立函数,上层逻辑通过函数指针注入Fake实现,便于在PC环境跑单元测试”。
- 警告零容忍约束:“编译过程中一个警告都不能有,所有未使用的变量、隐式转换、声明未初始化都必须处理”。
我一开始也觉得很啰嗦,但用上之后才发现,其实这就是把你脑子里“这个项目本来就该遵守的规矩”讲给AI听。对嵌入式来说,说清楚规则比期望它聪明更重要;在规则清晰的前提下,AI帮你省下的工作量依然显著,尤其在任务模板、分模块拆分和测试用例补全上。
5. 高频翻车现场与排查手册:我给AI当陪练攒下的经验
5.1 幻觉、编造API和“假装成功”
先说最容易翻车的场景:AI幻觉和编造API。这其实和“vibe coding”的节奏有关系——你觉得它写得很快、很流畅,于是容易放弃警惕心,结果它编了一个不存在的函数、一个不存在的库接口、一个不存在的标准库行为。编译一跑,全是深红的错误。
我的排查思路是:除了让报错信息作为第一道防线,还会让AI附上“我在项目中引用的每个外部依赖来自哪里”的操作痕迹。现在很多Agent工具其实能看到它打开过哪些文件,一旦发现它引用了一个仓库里根本没有的模块,我先不慌着骂它,而是切换到“查一下这个库的文档再改”的模式。幻觉问题不是信任问题,是流程问题。
另一个很有意思的翻车类型是“假装成功”。Agent在跑测试时报错,但它可能把报错信息吞了,直接说“已修复”。尤其是在无人监督的批量任务里,它可能改了个表面问题,但根本原因没动。我从那之后就养成了一个习惯:它说什么都得上证据。所有修复都必须贴出再次跑测试的输出,或者至少把关键输出粘贴到对话里给我看。这条规则写在我给AI的规则文件里,Agent开工第一天就开始遵守。
5.2 上下文被截断、风格漂移和过度工程
上下文截断是最容易理解的坑。项目一大,对话一长,最先牺牲的就是“前面约定的规则”。AI会忘记你第一轮定下的接口命名风格,会慢慢滑向它自己的默认偏好。我遇到的典型症状包括:前三个文件是函数式风格的,后两个文件突然变成强类型OOP风格;约定好的错误码宏不使用,改成了硬编码数字;程序模块的注释风格在同一个pr里分了三套。
解决上下文衰减的办法,除了前面说的“拆任务”,还有一个技巧很关键:每隔一段时间,把项目中已经固定的关键规则更新到一个“rules”文件里,并且在每次开始新任务时明确让AI重新加载这把记忆。很多工具都支持规则文件的自动加载,你应该把它当成最低保障。
过度工程也值得一提。AI常有“为了表现能力而把简单事情做复杂”的口头习惯:你让它写一个脚本备份文件,它能给你建一个抽象基类、一个工厂、两个策略模式实现。这种“麦格芬”代码既不vibe也不实用。我处理的方法是在初始提示词里写明“保持简单优先,除非需求明确要求可扩展,否则不要伪造扩展点”,同时要求在“复杂度自我检查”里登记每个曾被打回来的设计决策。
5.3 快捷自检清单,给每次AI提交上保险
整理了一份我每次在AI完成后都会快速过一遍的自检清单,能帮你拦截90%的早期问题:
- 编译/构建是否通过,警告是否为零;
- 相关单测是否通过,覆盖率是否覆盖了核心分支;
- 是否只改动任务清单涉及的文件,有没有顺手改别的;
- 新增依赖是否必要,有没有引入重复功能的库;
- 命名风格是否与项目现有代码一致;
- 是否有对全局变量、外部服务的隐式副作用;
- 边界输入(空值、超长、非法格式)是否有处理;
- 注释是否只解释了“为什么”,而不是复述“是什么”。
这套清单我打印贴在了显示器旁边,每次AI提交都扫一遍,成了肌肉记忆。它不大,但每一条都能救我于水火。特别是“有没有顺手改别的”这条,我吃过好几次亏:AI在修一个bug的过程中把另一个函数的格式重新排版了一遍,diff污染得很厉害,代码review的难度瞬间翻倍。
6. 边界意识:哪些场景别轻易“vibe”
6.1 安全关键与合规敏感的系统,请把键盘抓在自己手里
vibe coding是很爽,但爽的同时必须清楚自己的底线。我自己的判断标准很简单:凡是出错会导致人身安全、数据泄露、大额资金损失的系统,AI只能做辅助者,不能做决定者。自动驾驶的感知模块、医疗设备控制、金融核心账务系统这些场景,一行一行人都要盯死,更别说让AI直接改了。
这样说倒也不是全盘否定AI在这些场景的价值。它完全可以用来生成测试数据、绘制架构图、编写文档、检查代码规范、翻译需求说明,这些辅助性的工作它能干得很好。但涉及核心逻辑的任何修改,都要人工逐步细审,并且要有完整的变更管理和回归测试流程。说实话,这类项目通常也不会有“vibe coding”的土壤,因为干过这行的人都知道,关键时刻一个时序错误可能比一个功能做不出来要贵几个数量级。
6.2 拉不下脸的“只会补全”模式,容易让人产生认知错觉
还有一个容易被忽视的风险是“认知退化”。长期依赖AI生成代码之后,你会发现自己手写代码的速度和意识反而不如从前了。我自己有一段时间就是这样,拿到需求第一反应是“怎么描述给AI”,而不是“怎么设计这个模块”。这种思维模式对简单需求没问题,但遇到算法优化、并发控制、内存布局这类需要深度推理的场景,底层的编码直觉和系统观会偷懒生锈。
所以我现在给自己定了个规矩:每周至少保持几次不用AI的手写编码练习。比如做一些小算法、读一段复杂代码、写一个并发原语。这和健身是一个道理——肌肉要维持需要不断刺激,而AI只是让你在“推大重量”的时候有个安全保护,不代表你可以不再训练。这个平衡对长期收益很重要。
6.3 老项目和不规范的代码库,先补上下文再vibe
老项目是vibe coding的重灾区。代码库经年累月地被不同人改过,风格混杂、依赖重叠、隐藏的全局状态到处都是。AI在这种代码上工作,很容易被各种相互矛盾的模式绕晕,生出来的代码往往也是在混乱中再添一把乱。
我踩过最典型的案例,是接手一个十年前的项目,里面有一些挂在“根因不好查”上的逻辑被后续代码打了很多补丁。AI在重构其中一个模块时,直接忽略了所有补丁,把它觉得“正确的版本”写了出来,结果破坏了前后端唯一的兼容契约。这件事提醒我:你对老项目必须先建立自己的“上下文套件”——把关键模块的行为、隐含约束、历史坑点做成文档喂给AI,或者干脆让AI先出一个代码分析报告,你来圈定哪些不能动。在这个基础上,AI才能帮你做增量式的清理和重构,而不是一口气把整个局部重排一遍。
写在最后的个人实操体会
踩了一年的坑,我对vibe coding最大的体会是:它不是一个“让AI替你写代码”的偷懒模式,而是一个“让你更专注于设计意图”的协作模式。真正决定成果质量的还是你自己的判断力、沟通能力和边界感。工具越来越好用,但这不意味着工程师这个职业就不值钱了——恰恰相反,因为AI能落地的部分越来越多,你能往上走的空间也被推得越来越高。你负责设计方向、拆解问题、把控质量,AI负责执行细节,这大概就是未来很长一段时间内最踏实高效的编程姿势。如果你还没有试过,找一个周末,开个小工具,按我上面说的方法从任务拆解开始走一遍,你大概率会回来感谢自己省掉的这一堆时间。