Vibe Coding(氛围编程) 是 2025 年初由 OpenAI 联合创始人 Andrej Karpathy 提出的新概念,随后迅速火遍整个技术圈。 它代表了一种全新的编程方式:不再逐行手写代码,而是用自然语言描述需求,完全依赖大模型生成代码,沉浸在"感觉"里编程。
一、核心思想:Karpathy 的原话
Andrej Karpathy 对 Vibe Coding 的描述非常生动:
"有一种新型编码方式,我称之为'氛围编码'……你完全沉浸其中,拥抱大模型,忘记背后代码的存在。你只管提需求,运行生成的代码,复制粘贴报错信息……不像以前写代码时需要手动构建思维模型,它更像是给 AI 念咒语,然后靠感觉走。"
???? 一句话理解
|
1
|
你说需求 → AI 写代码 → 你运行测试 → 把报错丢给 AI → 重复
|
全程不需要你手写一行代码,只需要"描述需求"和"反馈结果"。
二、Vibe Coding 的工作流程
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
┌─────────────────────────────────────────────────────┐
│ Vibe Coding 工作流 │
├─────────────────────────────────────────────────────┤
│ │
│ ① 用自然语言描述需求 │
│ ↓ │
│ ② AI(Claude / GPT / DeepSeek)生成代码 │
│ ↓ │
│ ③ 复制代码 → 粘贴到编辑器 → 运行 │
│ ↓ │
│ ④ 如果报错 → 把错误信息复制给 AI │
│ ↓ │
│ ⑤ AI 自动修正 → 返回修复后的代码 │
│ ↓ │
│ ⑥ 回到步骤③,直到跑通 ? │
│ │
└─────────────────────────────────────────────────────┘
|
核心特征
| 特征 |
说明 |
| 自然语言驱动 |
不需要会写代码,只需要会描述需求 |
| AI 全权生成 |
代码由大模型生成,人只负责验证 |
| 报错即反馈 |
遇到错误不需要自己 Debug,直接丢给 AI |
| 沉浸式体验 |
忘记底层实现细节,专注于"感觉对不对" |
| 快速迭代 |
描述→生成→测试→修正,循环往复 |
三、实际例子:传统开发 vs Vibe Coding
以一个常见的 CORS 跨域配置 为例:
? 传统开发模式
你需要:
- 知道要创建一个 Java 配置类
- 实现 WebMvcConfigurer 接口
- 重写 addCorsMappings 方法
- 手动设置允许的域名、HTTP 方法、请求头等
- 编译、运行、调试
|
1
2
3
4
5
6
7
8
9
10
|
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000")
.allowedMethods("GET", "POST", "PUT", "DELETE")
.allowedHeaders("*");
}
}
|
? Vibe Coding 模式
你只需要跟 AI 对话:
你:"帮我加个 CORS 配置,允许 localhost:3000 跨域"
???? AI:(自动生成上面的完整配置类)
你:复制代码 → 粘贴到项目里 → 运行
?? 报错了:allowedOrigins 方法不存在
你:把报错信息直接丢给 AI
???? AI:抱歉!Spring Boot 新版本应该用 allowedOriginPatterns,这是修正后的代码...
你:再运行 → 通过 ?
全过程你一行代码都没写,只是在做两件事:
四、和传统编程的关键区别
| 维度 |
传统编程 |
Vibe Coding |
| 思维模型 |
脑海中有清晰的代码结构和实现路径 |
可能不知道具体实现细节 |
| 角色定位 |
建筑师 —— 精确控制每个环节 |
导演 —— 只管最终效果对不对 |
| 问题处理 |
遇到 Bug 理解根本原因,从根源修复 |
直接把报错丢给 AI,不必深究 |
| 代码归属感 |
代码是自己的"作品" |
代码是 AI 的"产物" |
| 技能要求 |
精通语法、API、设计模式 |
擅长描述需求、判断结果好坏 |
| 学习重点 |
怎么写(How) |
要什么(What) |
???? 形象比喻
| 传统编程 |
Vibe Coding |
| 像画建筑图纸,每根线条都要自己画 |
像捏泥巴雕塑,凭感觉塑形,不满意就重来 |
| 像厨师炒菜,知道每种调料放多少 |
像餐厅点菜,描述口味,厨房帮你做 |
五、基础知识还重要吗?
非常重要! 如果你正在学习 Spring MVC 分层、RESTful 规范、状态码——这些基础知识在 Vibe Coding 时代反而更显珍贵。
为什么?
1?? 你需要能判断 AI 的代码对不对
如果完全不懂业务逻辑,AI 生成的代码有问题你也发现不了:
|
1
2
3
4
5
|
? AI 可能犯的错:
- 删除数据返回 200 而不是 204(不符合 RESTful 规范)
- Service 层没加事务注解(可能导致数据不一致)
- SQL 写了 N+1 查询(性能问题)
? 只有你自己懂基础,才能发现这些问题!
|
2?? 你的描述越专业,AI 生成的质量越高
对比两种需求描述:
| 模糊描述 |
专业描述 |
| "帮我做个用户管理的页面" |
"写一套 RESTful 风格的用户 CRUD 接口,用 Spring Boot + MyBatis,返回统一 JSON 格式,包含分页查询" |
| "加个登录功能" |
"实现 JWT 登录接口,POST /auth/login,成功返回 token,失败返回 401,密码用 BCrypt 加密" |
越懂专业术语,描述越精准,AI 一次生成的代码就越可用。
3?? 架构决策 AI 替不了你
以下事情仍然需要你的专业判断:
| 决策类型 |
示例 |
| 架构选型 |
用 Monolith 还是微服务?用 MySQL 还是 PostgreSQL? |
| 分层设计 |
Service 要不要拆接口?事务边界在哪? |
| 技术取舍 |
用 Redis 做缓存还是本地 Cache?消息队列选 Kafka 还是 RabbitMQ? |
| 安全策略 |
接口怎么做鉴权?敏感数据怎么加密? |
???? AI 是最强执行者,但不是最好的架构师。 这些决策需要你对技术有深刻理解。
六、关键认知:你的角色变了
Vibe Coding 不是 "AI 替你编程",而是:
你的角色从"代码实现者"升级为"需求描述者 + 结果验证者"
角色转变对照表
| |
过去(传统) |
现在(Vibe Coding) |
| 核心技能 |
写代码的能力 |
描述需求和审查结果的能力 |
| 时间分配 |
80% 写代码,20% 思考 |
80% 思考/沟通,20% 验证 |
| 价值来源 |
代码量和代码质量 |
需求理解的准确度和验收标准 |
| 竞争力 |
语法熟练度、API 记忆力 |
业务理解力、系统设计能力、审美判断力 |
传统知识在 Vibe Coding 时代的价值
|
1
2
3
4
5
6
7
8
9
|
你学过的每一项基础知识,都是你的"底牌":
?
MVC 分层模型 → 让你能判断 AI 的代码结构合不合理
RESTful 规范 → 让你能发现 API 设计的问题
HTTP 状态码 → 让你能检查接口返回是否规范
数据库设计 → 让你能评估 AI 生成的 SQL 有没有性能问题
设计模式 → 让你能判断代码是否可维护
─────────────────────────────────────────────────
它们是你"精准念咒语"和"判断结果好坏"的底气!
|
七、Vibe Coding 的利与弊
? 优势
| 优势 |
说明 |
| 门槛极低 |
不需要精通编程语言也能做出能用的东西 |
| 效率极高 |
简单功能几分钟就能出原型 |
| 降低挫败感 |
不用面对编译错误和语法问题的折磨 |
| 释放创造力 |
让非技术人员也能把想法变成产品 |
| 快速验证 MVP |
创业初期可以极低成本验证产品想法 |
?? 劣势与风险
| 风险 |
说明 |
| 代码质量不可控 |
AI 生成的代码可能有安全隐患或性能问题 |
| 调试困难 |
出问题时你可能不知道从何查起 |
| 过度依赖 |
长期不写代码会导致技能退化 |
| 版权模糊 |
AI 生成的代码可能涉及版权争议 |
| 缺乏深度理解 |
能做出东西但不知道底层原理,遇到复杂问题束手无策 |
八、适合什么场景?
???? 非常适合
- 快速搭建 原型 / Demo / MVP
- 写一次性脚本(数据处理、文件转换等)
- 学习新技术时快速生成示例代码
- 做个人项目 / Side Project
- 非开发者需要简单的程序工具
???? 可以尝试
- 公司内部低复杂度工具的开发
- 前端页面的快速搭建
- 测试代码和样板代码的生成
- 文档和注释的自动生成
???? 不建议用于
- 生产环境的核心业务逻辑
- 涉及支付、安全、隐私的敏感模块
- 高并发、高性能要求的系统
- 需要长期维护的大型项目
- 面试准备 —— 你需要真正理解原理!
九、一句话总结
Vibe Coding 不是编程的终点,而是编程的新起点。 它降低了创造的门槛,但没有降低对理解力和判断力的要求。 你学过的 MVC 分层、RESTful 规范、HTTP 状态码 —— 这些基础知识在 Vibe Coding 时代不仅没过时,反而更值钱了。
???? 给不同阶段开发者的建议
| 你现在的阶段 |
建议 |
| 初学者 |
先学好基础(MVC、数据库、网络),再用 Vibe Coding 加速练手项目 |
| 在职开发者 |
把重复性工作交给 AI,把精力放在架构设计和业务理解上 |
| 架构师 / Tech Lead |
用 Vibe Coding 快速验证技术方案,但核心决策必须自己做 |
| 非技术人员 |
大胆用 Vibe Coding 把想法变成产品,但重要项目找专业开发者 Review |
???? 从今天开始尝试 Vibe Coding
如果你想在 Spring MVC 学习中体验 Vibe Coding,可以试试这个流程:
|
1
2
3
4
5
6
7
8
9
10
|
1. 用自然语言描述你要的功能
例:"写一个用户注册接口,参数校验用 @Valid,
密码用 BCrypt 加密,返回统一 Result 格式"
2. 把 AI 生成的代码粘贴到 IDE
3. 运行,如果有报错直接丢给 AI
4. 用你学过的知识检查:
? RESTful 规范对不对?
? 状态码用得合理吗?
? 分层是否清晰?
5. 通过 ? → 继续下一个功能
|
|