Tutorial 1: 氛围编程入门

Abstract

氛围编程概念与核心理念

Authors

Walter Fan

Status

WIP

Updated

2026-02-07

什么是氛围编程

氛围编程(Vibe Coding)是 AI 时代的一种新编程范式。这个概念由 Andrej Karpathy 在 2025 年提出:

“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.”

简单来说,氛围编程就是:

  1. 与 AI 协作编程:不再是独自敲代码,而是与 AI 助手对话式开发

  2. 关注意图而非实现:你描述想要什么,AI 帮你实现

  3. 快速迭代验证:快速生成、测试、修正,形成闭环

核心理念

氛围编程的核心理念可以用一句话概括:

“Create the right atmosphere for AI collaboration” (为 AI 协作创造合适的氛围)

这意味着:

  • 不是让 AI 适应你

  • 也不是你迁就 AI

  • 而是建立一个清晰、系统化的沟通框架

类比:带实习生

想象你在带一个聪明但没有上下文的实习生。你不会只说”写个登录功能”就走开,对吧?

你会:

沟通内容

示例

解释业务背景

“我们是一个电商平台,用户需要登录后才能下单”

说明技术栈

“我们用 Spring Boot + React,数据库是 MySQL”

指出安全要求

“密码需要加密存储,支持 OAuth2 登录”

告诉代码规范

“我们用 RESTful API,返回统一的 JSON 格式”

定义验收标准

“需要支持手机号和邮箱两种登录方式”

AI 也需要同样的上下文!

AI 时代的角色转变

氛围编程时代,开发者的角色发生了根本性转变:

角色

过去的职责

AI 时代的职责

变化本质

开发者

逐行编写代码

维护和执行规格说明

从打字员到架构师

QA

手写测试用例

定义验收标准

从执行者到守护者

AI

不存在

代码生成与实现

新的团队成员

关键洞察

Note

AI 是生产力放大器——它既放大你的清晰度,也放大你的困惑。

  • 当你的需求清晰、规格明确时,AI 能以 10 倍速度帮你实现

  • 但如果你自己都不清楚要什么,AI 只会用 10 倍速度生成垃圾代码

氛围编程所需能力

氛围编程需要一套新的能力模型:

氛围编程能力金字塔

                 ┌─────────────┐
                 │   创新能力   │  ← 发现新问题,提出新方案
                 ├─────────────┤
                 │   决策能力   │  ← 在多方案中做出选择
                 ├─────────────┤
                 │   判断能力   │  ← 辨别 AI 输出质量
                 ├─────────────┤
                 │   提问能力   │  ← 问出好问题(最重要!)
                 ├─────────────┤
                 │   表达能力   │  ← 清晰传达技术想法
                 ├─────────────┤
                 │   编码能力   │  ← 理解和修改代码
                 └─────────────┘

核心能力详解

1. 提问能力(极高重要性)

AI 给出什么样的答案,很大程度上取决于你问什么样的问题。

糟糕的问题:

帮我写一个查询订单的接口

好的问题:

我需要实现一个订单查询的 REST API,具体要求:
1. 使用 Spring Boot 3.x + Java 17
2. 支持按订单ID、用户ID、订单状态等多条件查询
3. 需要分页查询,支持排序
4. 使用 Spring Data JPA 访问 MySQL
5. 需要参数校验
6. 返回统一的响应格式

2. 判断能力(极高重要性)

AI 生成的代码不一定是最优的,你需要能够识别:

  • 代码质量问题(命名、结构、可读性)

  • 安全漏洞(SQL 注入、XSS 等)

  • 性能问题(N+1 查询、内存泄漏)

  • 架构合理性(是否符合项目规范)

3. 决策能力(高重要性)

AI 可能给出多种方案,你需要根据实际情况选择:

  • 适用性:哪个方案更适合当前项目?

  • 权衡:性能、可维护性、开发成本如何平衡?

  • 风险:引入新技术的风险是否可控?

氛围编程 vs 传统编程

维度

传统编程

氛围编程

编码方式

手动逐行编写

描述意图,AI 生成

关注点

语法、API、实现细节

需求、架构、验收标准

迭代速度

较慢,需要手动修改

快速,对话式迭代

学习曲线

需要掌握语言和框架

需要掌握提问和判断

适用场景

所有场景

快速原型、CRUD、重复性工作

第一个氛围编程示例

让我们通过一个简单的例子体验氛围编程:

场景:创建一个 Python 脚本,统计目录下的文件类型分布

传统方式:你需要自己编写代码

import os
from collections import Counter

def count_file_types(directory):
    extensions = []
    for root, dirs, files in os.walk(directory):
        for file in files:
            ext = os.path.splitext(file)[1].lower()
            extensions.append(ext if ext else 'no_extension')
    return Counter(extensions)

if __name__ == '__main__':
    result = count_file_types('.')
    for ext, count in result.most_common():
        print(f'{ext}: {count}')

氛围编程方式:你描述需求,AI 生成代码

我需要一个 Python 脚本,功能如下:
1. 统计指定目录下所有文件的扩展名分布
2. 递归遍历子目录
3. 按数量从多到少排序输出
4. 支持命令行参数指定目录
5. 输出格式美观,使用表格形式

AI 会生成更完善的代码,包含命令行参数解析、表格输出、错误处理等。

氛围编程工具链

要进行高效的氛围编程,你需要合适的工具:

工具类型

代表产品

特点

AI IDE

Cursor, Windsurf

深度集成 AI,支持上下文感知

IDE 插件

GitHub Copilot, Codeium

在现有 IDE 中添加 AI 能力

命令行工具

Aider, Claude CLI

终端中进行 AI 编程

Web 工具

ChatGPT, Claude

通用对话,可用于编程

本教程将以 Cursor 为主要示例工具,因为它:

  • 专为 AI 编程设计

  • 支持丰富的上下文管理

  • 有强大的规则系统

  • 支持 MCP 扩展

开始你的氛围编程之旅

准备工作

  1. 安装 Cursor

    访问 https://cursor.sh 下载并安装

  2. 配置 AI 模型

    • 打开 Settings → Models

    • 选择你偏好的模型(Claude、GPT-4 等)

    • 配置 API Key(如果使用自己的 key)

  3. 熟悉基本快捷键

    快捷键

    功能

    Cmd/Ctrl + K

    内联编辑(在代码中直接修改)

    Cmd/Ctrl + L

    打开聊天面板

    Cmd/Ctrl + I

    打开 Composer(多文件编辑)

    Tab

    接受 AI 建议

小试牛刀

打开 Cursor,创建一个新文件,然后:

  1. Cmd/Ctrl + L 打开聊天

  2. 输入:

    创建一个 Python 函数,实现斐波那契数列的第 n 项计算,
    要求:
    1. 使用递归 + 记忆化
    2. 添加类型注解
    3. 添加文档字符串
    4. 添加单元测试
    
  3. 观察 AI 生成的代码

  4. 点击 “Apply” 应用到文件

恭喜!你已经完成了第一次氛围编程。

小结

本教程介绍了氛围编程的基本概念:

  • 氛围编程是什么:与 AI 协作的新编程范式

  • 核心理念:为 AI 协作创造合适的氛围

  • 所需能力:提问、判断、决策、创新

  • 工具选择:Cursor 是理想的入门工具

下一步

在下一个教程中,我们将深入了解各种 AI 编程助手的特点和选择。

练习

  1. 安装 Cursor 并完成基本配置

  2. 使用 AI 生成一个简单的 TODO 应用

  3. 对比你手写代码和 AI 生成代码的差异

  4. 尝试用不同的提示词描述同一个需求,观察结果差异

参考资源