第04讲:Vibe Coding能做什么、不能做什么——5种场景的适用边界

2 阅读1分钟

「一把锤子在能干的人手里是神器,在乱用的人手里是祸患。Vibe Coding 也是如此。」


开场:一个让人哭笑不得的故事

小维的朋友老张,在一家金融公司做后端工程师。

听说 Vibe Coding 很厉害,他在公司内网自动化测试框架上试了一把——让 AI 帮他重写一个"感觉有点慢"的数据库查询模块。

AI 非常积极地帮他重写了,代码看起来确实更现代化了,性能测试也过了。

老张很高兴,合并到了主分支。

三天后,他被老板叫进会议室:交易系统在某些极端并发条件下出现了 0.3 秒的延迟峰值,直接影响了高频交易策略的收益。原因追溯到他"优化"的那个模块——AI 为了代码简洁性,删除了一个看起来冗余的数据库索引,而这个索引在 70% 的情况下都不会被触发,但在极端并发时是关键的。

老张花了一周时间排查这个 Bug,加班加点。

不是 Vibe Coding 的错——是他在错误的场景用了它。


全局视角:适用边界图谱

graph TD
    A["Vibe Coding 适用性分析"] --> B["✅ 高度适合"]
    A --> C["⚠️ 适合但需谨慎"]
    A --> D["❌ 不建议依赖"]
    
    B --> B1["原型开发/MVP"]
    B --> B2["标准功能开发"]
    B --> B3["代码重构/优化"]
    B --> B4["自动化脚本"]
    
    C --> C1["复杂业务逻辑"]
    C --> C2["性能关键代码"]
    C --> C3["API 设计"]
    
    D --> D1["高安全要求系统"]
    D --> D2["高频交易/实时系统"]
    D --> D3["底层系统编程"]

这一讲,我们用 5 种典型场景来建立你的判断框架。


核心知识点:5种场景的Vibe Coding适用性分析

场景一:原型开发 / MVP ⭐⭐⭐⭐⭐ 最适合

场景描述:你需要快速验证一个产品想法,做一个能展示给投资人或用户的最小可行产品。

为什么最适合 Vibe Coding

特征Vibe Coding 的优势
速度要求高AI 可以几小时内生成完整原型
质量要求相对低不需要生产级代码质量
需求变化快AI 响应修改要求很快
代码可以扔掉不需要长期维护
技术选型不确定AI 可以快速切换不同技术栈

典型提示词

帮我做一个 Web 应用的原型,功能是:用户可以上传一张图片,
AI 分析图片内容并生成描述。
技术栈不限,能快速运行就好。
不需要用户认证,不需要数据持久化,只是演示用。

效率倍数:原型开发阶段,Vibe Coding 可以做到 5-10 倍的效率提升。


场景二:标准功能开发 ⭐⭐⭐⭐ 非常适合

场景描述:常见的、有成熟解决方案的功能开发,如用户认证、文件上传、邮件发送、数据导入导出、分页列表等。

为什么适合 Vibe Coding

这类功能有以下特征:

  • 有大量相似的代码在互联网上存在(AI 训练数据充足)
  • 解决方案相对标准化(不需要创造性地设计算法)
  • 测试用例容易验证

实战案例

假设你需要实现一个带分页、排序、筛选功能的数据列表接口。

传统方式:查文档、写 SQL、处理各种参数验证,大约 1-2 小时。

Vibe Coding 方式:

帮我用 Node.js + Express 实现一个用户列表接口:
- 支持分页(page, pageSize 参数)
- 支持排序(sortBy, sortOrder 参数)
- 支持按用户名模糊搜索
- 返回 JSON:{ data: [], total: number, page: number }
- 使用 Sequelize ORM,Model 叫 User
- 加上参数验证,非法参数返回 400

10-15分钟内可以得到一个可以直接使用的实现。

注意点:需要检查边界情况处理(如 pageSize 超出最大值时怎么处理)。


场景三:代码重构与优化 ⭐⭐⭐⭐ 适合

场景描述:对已有代码进行结构优化、性能改进、代码风格统一。

为什么适合

  • AI 能快速识别代码坏味道(Code Smells)
  • 有明确的"改进前/改进后"对比标准
  • 重构目标通常比较明确

典型工作流

sequenceDiagram
    participant 你
    participant AI
    
    你->>AI: 把这段代码粘贴给 AI,描述重构目标
    AI->>你: 分析代码问题,提出重构方案
    你->>AI: 确认方案,要求执行
    AI->>你: 生成重构后的代码
    你->>AI: 运行测试,把测试结果反馈给 AI
    AI->>你: 根据测试结果调整

高效提示词

这是一段 Python 函数,有以下问题:
1. 函数太长(200行),做了太多事情
2. 有重复的数据库查询逻辑
3. 错误处理逻辑混乱

请帮我重构,遵循单一职责原则,
把它拆分成多个小函数,
抽取公共的数据库查询逻辑,
统一错误处理方式。

保持现有的功能不变,只改结构。

场景四:性能关键代码 ⭐⭐⭐ 需要谨慎

场景描述:直接影响系统性能、延迟或资源消耗的核心代码路径。

为什么需要谨慎

AI 倾向于生成"可读性好、逻辑清晰"的代码,但性能优化有时需要违反直觉的手段:

  • 用位运算代替除法(可读性差但快)
  • 减少内存分配次数(代码更复杂但 GC 压力小)
  • 特殊的缓存策略(需要深刻理解数据访问模式)

AI 生成的"性能优化"代码,需要你用 benchmark 工具实际验证。

最佳实践

让 AI 生成代码 → 写 benchmark 测试 → 实际测量性能 → 
如果不达标,描述具体的性能要求让 AI 再优化

永远不要只看代码就判断性能,要用数据说话。


场景五:高安全要求系统 ⭐⭐ 不建议直接依赖

场景描述:金融支付、加密算法实现、身份认证、权限控制等安全关键代码。

为什么不建议直接依赖 Vibe Coding

graph LR
    A["AI 生成的认证代码"] --> B{"常见漏洞检查"}
    B --> C["SQL 注入"]
    B --> D["XSS 攻击"]
    B --> E["CSRF"]
    B --> F["权限越界"]
    B --> G["JWT 配置错误"]
    
    style C fill:#fff1f0,stroke:#f5222d
    style D fill:#fff1f0,stroke:#f5222d
    style E fill:#fff1f0,stroke:#f5222d
    style F fill:#fff1f0,stroke:#f5222d
    style G fill:#fff1f0,stroke:#f5222d

安全问题的特点是:看起来能运行,但在特定攻击场景下会崩溃。

AI 生成的代码可能在 99% 的正常情况下都工作完美,但在精心构造的攻击场景下存在漏洞。

正确的做法

  1. 使用经过审计的知名安全库(不让 AI 自己实现加密算法)
  2. 使用 AI 来审查安全代码,而不是生成
  3. 对 AI 生成的安全代码进行专业安全审计

好的用法

这是我的用户认证代码,帮我做安全审查:
1. 检查是否存在 SQL 注入风险
2. 检查密码存储方式是否安全(是否用了 bcrypt/argon2)
3. 检查 JWT Token 的配置是否有问题
4. 检查是否有不恰当的权限验证

深度拆解:如何快速判断一个任务是否适合 Vibe Coding

这是一个三步决策框架:

graph TD
    A["新任务"] --> B{"标准化程度高吗?\n(有很多相似代码存在)"}
    B -->|是| C{"边界情况的影响\n是高风险的吗?"}
    B -->|否| E["谨慎使用\n需要更多规划和验证"]
    C -->|否| D["✅ 高度适合 Vibe Coding"]
    C -->|是| F{"有完整的\n测试用例吗?"}
    F -->|是| G["⚠️ 适合,但必须做充分测试"]
    F -->|否| H["❌ 先写测试,再用 Vibe Coding"]

三个关键问题

  1. 标准化程度:这个功能是"有模板可参考的"还是"完全创新的"?

    • 用户登录、数据 CRUD、文件上传 → 高标准化 → 适合
    • 自定义推荐算法、特定业务规则引擎 → 低标准化 → 谨慎
  2. 风险等级:如果 AI 生成的代码有 Bug,最坏的情况是什么?

    • 功能不工作 → 低风险 → 适合
    • 数据丢失、安全漏洞 → 高风险 → 需要更严格的审查
  3. 可测试性:你能快速验证 AI 生成的代码是否正确吗?

    • 有明确的输入/输出 → 易测试 → 适合
    • 复杂的状态机、副作用 → 难测试 → 谨慎

案例解析:同一个公司,两种不同的 Vibe Coding 策略

公司背景:一家做 SaaS 工具的创业公司

产品团队(应用 Vibe Coding 最激进):

产品团队用 Vibe Coding 在一个周末做出了三个新功能的原型,用于用户测试。成功率:3 个原型,2 个得到用户正面反馈,1 个被否定,节省了原本需要 2 周的开发时间。

应用的场景:原型开发(最高适用性),完全正确的使用方式。

核心数据团队(谨慎使用 Vibe Coding):

核心数据分析引擎,处理用户的财务数据。团队用 Vibe Coding 生成了 80% 的样板代码,但对涉及金额计算和数据聚合的核心逻辑,坚持人工审查每一行代码。

应用的场景:高风险业务逻辑——混合策略(AI 做样板,人做核心)。

结果对比

场景使用策略效率提升问题发生率
原型开发完全 Vibe Coding5x
核心数据逻辑混合策略2x接近零
高安全模块AI 审查,人写代码1.3x接近零

实操指南:建立你自己的 Vibe Coding 适用清单

建议你花 20 分钟,对你日常工作中常见的任务类型做一个分类:

步骤一:列出你最常做的 10 种开发任务

(例如:写 CRUD API、写 SQL 查询、写单元测试、处理第三方 API 集成……)

步骤二:对每个任务回答三个问题

  1. 这个任务的标准化程度(1-5 分)
  2. 如果 AI 写错了,风险有多高(1-5 分)
  3. 我能快速验证结果吗(是/否)

步骤三:建立你的个人分类表

任务类型标准化程度错误风险可快速验证建议策略
写 CRUD API5全程 Vibe Coding
写核心算法2视情况谨慎 Vibe Coding + 严格测试
实现加密逻辑4(用库)AI 审查,用成熟库

易错点与避坑指南

误区一:Vibe Coding 不适合大型项目

不完全对。大型项目中,大量的样板代码、集成代码、测试代码都非常适合 Vibe Coding。不适合的是大型项目中的核心业务逻辑,那需要更仔细的规划和审查。

误区二:性能不好的代码可以完全依赖 AI 优化

AI 可以提供优化建议,但判断优化是否有效,必须用 benchmark 数据说话。相信 AI 的"这样更快",不如相信 profiler 的数据。

误区三:安全代码完全不能用 AI

错。AI 在安全代码的审查上非常有价值——它能发现很多人工审查容易遗漏的安全问题。只是不建议让 AI 生成关键的安全逻辑,而是用成熟的安全库。


本讲小结

mindmap
  root((Vibe Coding适用边界))
    最适合场景
      原型/MVP开发
      标准功能开发
      代码重构优化
      自动化脚本
    谨慎使用场景
      性能关键代码
      复杂业务逻辑
      第三方集成
    不建议直接依赖
      高安全要求系统
      底层系统编程
      高频交易实时系统
    判断框架
      标准化程度高吗
      错误风险高吗
      可快速验证吗
    正确姿势
      AI生成样板代码
      AI审查安全代码
      人做核心逻辑判断

思考题

  1. 在你目前的项目中,找一个你认为"完全适合 Vibe Coding"的功能和一个"完全不适合"的功能,分别说明理由。

  2. 老张的案例中,他在性能关键代码上错误使用了 Vibe Coding,导致了问题。如果他在开始之前就用这一讲的决策框架,会在哪一步发现这是不适合的场景?

  3. 如果你是一个技术负责人,你会制定什么规则,来规范团队在哪些场景可以使用 Vibe Coding,哪些场景必须进行额外的代码审查?


下一讲预告

我们现在对 Vibe Coding 的本质和适用边界有了清晰的认知。

下一讲,我们来建一张 2025 年 AI 编程工具的全景地图——12 款主流工具,各有特色,谁才是你的最佳选择?