第1课

速成技巧 — 知道这些就能指挥AI

安装在第0课已完成。 如果还没有,先去第0课确认 claude --version 是否输出 2.1.x。(必须是CLI版Claude Code,不能是IDE扩展聊天。)

指挥AI的5个核心关键词

  1. API — 程序之间对话的规范。“做个API”
  2. 前端 — 看得见的界面。“用React做界面”
  3. 数据库(DB) — 存储数据的地方。“存到DB里”
  4. 提交(Commit) — 保存当前状态的存档点。“提交一下”
  5. 部署 — 放到互联网上。“部署”

这五个词就足以指出方向。AI能理解其余的。

AI的记忆用3个文件管理

  • CLAUDE.md — 项目规则。AI每次会话开始时自动读取。在这里写"我们团队是这样工作的"
  • 需求文档.md — 你做出的决定的记录。把"VIP折扣率10%“这样的业务决定连同日期一起记录
  • 进度文档.md — 做到哪里了。让新会话中的"接着做"能生效

三个文件都是Markdown格式。不懂代码的人也能读写。

指挥AI的对话技巧

  • 一次只吩咐一件事。“先做登录API"比"登录、注册、仪表盘都做了"要好
  • 出错时Claude Code会自动检查并修复。不需要自己复制粘贴
  • 对话超过100轮时AI质量会下降。开始新会话,但先更新上面3个文件

快速体验

以已完成安装为前提,进行第一次对话。只需5分钟。

  1. 在终端创建项目文件夹并运行Claude Code

对Agent说:“mkdir -p ~/projects/my-first-app && cd ~/projects/my-first-app && claude”

  1. 开始第一次对话

对Agent说:“在这个文件夹创建一个Go Gin服务器。一个在8080端口返回Hello, World的API。”

AI会创建文件、启动服务器并确认。在浏览器中打开http://localhost:8080查看。


为什么要这样指挥

你已经用语言指挥AI做过东西了。界面出来了,按钮能用了,数据保存了。但可能还有一个问题:

“继续扩展下去,真的没问题吗?”

要回答这个问题,首先要准确看清我们现在站在哪里。有什么工具,用什么术语,按什么模式工作。第1课是展开地图的时间。从第2课开始,我们在这张地图上修路。

AI编程工具的地形

能用语言指挥写代码的工具有好几个。大致分为两类。

基于编辑器的工具 — AI嵌入代码编辑器中。

工具特点
Cursor基于VS Code的AI编辑器。一边看代码一边让AI修改
GitHub CopilotVS Code/JetBrains插件。自动补全和聊天
Windsurf类似Cursor的AI编辑器

基于编辑器的工具优化了一边看代码一边修改的体验。对程序员来说很好。但对不读代码的人来说,屏幕上的代码只是无意义的文字。

终端Agent — AI在终端(黑色屏幕)中自主判断和执行。

工具特点
Claude CodeAnthropic制作的终端Agent。使用Claude模型
Codex CLIOpenAI制作的终端Agent。使用GPT/o模型

终端Agent不仅编辑代码,还能自主判断命令执行、测试确认、文件创建。当你说"做个界面"时,它创建文件、启动服务器、出错就修复、再确认。这种自主验证循环是与基于编辑器工具的决定性区别。

为什么选Claude Code

本课程以Claude Code为标准。

Claude Code目前在终端Agent中,处理最复杂的多文件任务的自主能力最为突出。Token是AI读取的文字块单位。200K(20万)约等于一部小说,1M(100万)约等于五部小说。Claude Code支持200K Token基础上下文,Opus 4.6模型支持最多1M Token,能一次把握整个项目并同时修改多个文件。当你说"做这个功能"时,它查找相关文件、编写代码、运行测试、修复错误,自动循环。Cursor等编辑器的Agent模式也尝试类似的事,但在文件探索范围和自主判断深度上,终端Agent领先一步。

**Codex CLI呢?**OpenAI的终端Agent,概念与Claude Code相同。程序本身构建速度快,包含在ChatGPT订阅中,可及性好。不过由于笔者没有在生产环境中使用过,本课程不涉及。学会Claude Code的原理后,可以同样应用到Codex CLI。工具不同但方法论相同。

已在第0课完成安装

安装详情(Mac·WSL·Docker·npm·认证·检查表)已移至第0课 — 安装Claude Code。核心要点再确认:

  • 安装一行:curl -fsSL https://claude.ai/install.sh | bash(Windows先装WSL或Docker)
  • 通关标准:claude --version 输出 2.1.x,且AI能自主执行命令并验证
  • 必须是 CLI版Claude Code,不能是IDE扩展聊天(Cursor/Antigravity/Windsurf),本课程才能正常运行

指挥用关键词 — 完整词典

不读代码也要指挥AI,需要了解最少的关键词。不需要学所有编程术语。只要能指出方向就够了。

**现在不用背。**下面的表是词典。浏览一遍,以后AI说你不懂的话时回来查。

后端 — 看不见的引擎

用户看不到的服务器端程序。接收、处理、存储、返回数据。

"用Go Gin做API"
"用FastAPI做后端"
"做Node.js Express服务器"
术语含义比喻
API程序间对话的规范餐厅的点单表格
端点API的各功能地址点单表上的各菜品
服务器24小时运行处理请求的程序厨房
GoGoogle制作的编程语言。快速且简单
Gin用Go做API的工具(框架)
FastAPI用Python做API的工具。容易上手
Node.js用JavaScript做服务器的环境

前端 — 看得见的界面

用户看到和点击的界面。在浏览器中运行。

"用React做界面"
"做登录页面"
"把列表用表格显示"
术语含义比喻
React做界面的JavaScript工具。目前使用最广
组件界面的片段(按钮、输入框、列表等)乐高积木
SPA不切换页面就能更新内容的应用
CSS决定外观(颜色、大小、布局)的语言室内设计

数据库 — 记忆装置

永久存储数据的地方。即使关闭服务器数据也会保留。

"做PostgreSQL数据库"
"做用户表"
"存到DB里"
术语含义比喻
PostgreSQL最受信赖的开源数据库保险箱
用行和列整理的数据Excel表格
DDL定义表结构的语言Excel的列标题设置
CRUD创建、读取、更新、删除Excel行的增/查/改/删
SQL命令数据库的语言

部署 — 发布到世界

把做好的东西放到互联网上让其他人能访问的过程。

"用Docker部署"
"放到AWS上"
"连接域名"
术语含义比喻
Docker把程序装箱在任何地方都能一样运行的工具搬家集装箱
AWSAmazon的云服务。服务器、存储、域名等租赁大楼
部署(deploy)把代码上传到服务器并运行店铺开业
CI/CD代码变更时自动测试和部署的流水线自动配送系统

其他常用术语

术语含义比喻
Git管理代码版本的工具。存档点游戏存档
提交(commit)保存当前状态的行为按存档按钮
GitHub把Git仓库放到互联网上的服务云存档
终端用文字命令电脑的黑色屏幕发短信给助手
目录/文件夹分类文件的箱子文件柜抽屉
JSON交换数据的标准格式。{ }里面写名称:值快递单格式
环境变量把密码或设置值放在代码外面的方法放在保险箱里的钥匙

这些术语不需要背。指挥AI时说"就是那个存数据的东西"也能听懂。但要理解AI回复的话,至少对这些熟悉一下比较好。

知道了关键词,下一个问题是:每次指挥AI都要解释这些吗?项目变大后AI能记住之前做的吗?上下文管理就在这里登场。

上下文管理 — 处理AI的记忆

如果问AI什么最重要,大多数人会说"聪明的模型”。错了。上下文。

上下文是指AI当前记住的所有信息。你说的话、AI说的话、项目文件、规则——这一切都是上下文。问题是这种记忆有限度。

AI会遗忘

对话变长后AI会忘记前面说的话。如果你说"记得之前做的登录功能吗"而它问"哪个登录功能?",上下文就消失了。

打开新会话是完全的白纸状态。昨晚通宵的对话蒸发了。这就是为什么"接着做"不管用。

那该怎么办?把记忆外部化到文件中。

CLAUDE.md — 项目的宪法

CLAUDE.md是放在项目文件夹中的特殊文件。Claude Code在每个会话开始时自动读取这个文件。即使你不每次都解释,AI也能从一开始就知道项目的规则。

把它想象成新团队成员第一天早上收到的简报文件。“我们团队是这样工作的,这个不能做,重要的东西在这里。”

下面是CLAUDE.md中写什么内容的示例。不是现在执行,而是写在文件中AI每次都会读。

# CLAUDE.md

## 项目概述
待办事项列表应用。Go Gin后端 + React前端 + SQLite。

## 命令
- `go run main.go` — 启动服务器(8080端口)
- `cd frontend && npm run dev` — 启动前端

## 规则
- API响应始终为JSON
- 错误消息用韩语
- 添加新功能时确认现有功能没有损坏

## 结构
- `main.go` — 服务器入口点
- `internal/handler/` — API处理器
- `internal/model/` — 数据模型
- `frontend/src/pages/` — 界面文件

这个文件最重要的特性:**不懂代码的人也能读写。**Markdown是用#做标题、用-做列表的简单书写格式。格式如此,内容是自然语言。

需求文档.md — 决定的记录

你让AI"用户登录后显示仪表盘”,AI做了。一周后你说"把登录后的第一个页面改成设置页面"?AI不知道原来的决定是什么。你也可能忘了。

把决定记录到文件中。

# 需求文档.md

## 认证
- 仅支持Naver OAuth登录
- 登录成功后跳转到仪表盘(2026-05-20决定)
- 没有密码找回功能(因为是OAuth)

## 待办事项管理
- 待办事项有标题、内容、截止日期、优先级
- 完成的待办事项标记完成而不是删除(2026-05-21决定)
- 优先级分高/中/低3级(2026-05-21决定)

标注日期的原因是为了以后追踪"为什么这样做?"。

进度文档.md — 当前位置标记

# 进度文档.md

## 已完成
- [x] 项目初始设置
- [x] 用户表创建
- [x] 登录API
- [x] 待办事项CRUD API

## 进行中
- [ ] 前端待办事项列表界面

## 计划中
- [ ] 优先级筛选
- [ ] 截止日期提醒

当你对AI说"接着做"时,有了这个文件它就能准确知道做到哪里了。

为什么是文件

这是不懂代码的人在长期项目中控制AI的关键。读不了代码,但能读文档。打开CLAUDE.md确认"这个规则对吗?",在需求文档中添加新决定,在进度文档中查看当前位置。

不要把AI的记忆交给AI。提取到文件中,你自己握着。

氛围编程模式

第一个使用氛围编程(vibe coding)这个词的人是Andrej Karpathy。凭感觉编程。不读代码。在界面上点击输入来确认。出错就把错误信息复制给AI。(Claude Code自动完成这个过程——检测错误并自行尝试修复。)

你已经在做的就是氛围编程。系统化整理后是这样的。

基本流程

想法 → 指挥AI → 确认结果 → 要求修改 → 重复

实际对话是这样的。

第1步:从数据结构开始

"看看这个Excel文件。设计一个存储这些数据的DB表。"

AI提出表结构建议。你要求修改:“这列不需要”,“日期格式这样做”。

第2步:做API

"为这个表做CRUD API。"

API做好了。存储和查询数据的功能。此时还没有界面。但AI在终端中直接测试。

第3步:做界面

"做一个调用这些API的React界面。列表、添加、修改、删除都要能做。"

在浏览器中确认。出现列表,有添加按钮,输入后能保存。

第4步:添加功能

"添加搜索功能。"
"加一个只筛选已完成项的按钮。"
"按优先级排序。"

到这里是氛围编程的黄金时间。3个功能以内像魔法一样快。

确认方法

不读代码,确认结果的方法只有一个:自己试用。

  • 在浏览器打开界面点击
  • 输入数据确认是否保存
  • 在列表中再次查看
  • 尝试修改和删除

出错?Claude Code自动检测错误并尝试修复。不需要自己复制粘贴。

AI自己修复。

这个模式的局限

氛围编程出奇地快。但超过5个功能时奇怪的事情开始发生。添加新功能时现有功能坏了。让AI修,别的地方又坏了。打地鼠游戏开始了。

为什么?答案在第2课。现在只要记住这个模式有效,但有局限就够了。

Claude Code使用方法 — 实战指南

安装好了,来用用吧。学习基本用法。

启动和退出

# 在项目文件夹中启动
cd ~/projects/my-first-app
claude

# 在Claude Code内对话
# 要退出:
/exit

基本对话

在Claude Code内用自然语言说就行。

> 在这个文件夹创建一个Go Gin服务器。一个在8080端口返回"Hello, World"的API。

AI创建文件、安装必要的包、编写代码。中间会问"可以创建这个文件吗?"、“可以执行这个命令吗?"。允许后继续。

有用的命令

在Claude Code内可以使用以斜杠(/)开头的命令。

命令功能
/exit退出Claude Code
/clear重置对话记录(上下文重置)
/compact总结对话以节省上下文
/help帮助

对话技巧

  1. 一次只吩咐一件事。“先做登录API"比"登录、注册、仪表盘都做了"效果好。

  2. 具体地吩咐。“出错时给用户显示红色消息"比"做得更好些"要好。

  3. **Claude Code自己捕捉错误。**出错时Claude Code自动检测并尝试修复。不需要自己复制粘贴。

  4. **中途确认。**比起一次吩咐10件事最后确认,每2-3件在浏览器中确认更安全。

  5. **上下文变长时重新开始。**对话超过100轮时AI响应质量下降。用/clear重置或在新终端重新运行claude

实验:制作待办事项列表应用

理论够了。亲自做做看。

目标

在一个Claude Code会话中制作待办事项列表应用并添加3个功能。总耗时30-60分钟。

准备工作

开始实验前需要安装以下内容。如果还没有,让Claude Code安装。

  • Go安装:对Claude Code说"帮我安装Go"
  • Node.js安装:对Claude Code说"帮我安装Node.js LTS"
  • 确认Claude Code运行claude --version是否正常

**提示:**安装过程中遇到不懂的也不要慌。问Claude Code"这怎么弄?“它会处理的。

准备

# 创建项目文件夹
mkdir -p ~/projects/todo-app
cd ~/projects/todo-app

# 运行Claude Code
claude

步骤1:创建基本应用

在Claude Code中输入以下内容。

做一个待办事项列表Web应用。

技术栈:
- 后端:Go + Gin
- 前端:React
- 数据库:SQLite(文件数据库,不需要安装)

功能:
- 添加待办事项(标题、内容)
- 查看待办事项列表
- 标记待办事项完成
- 删除待办事项

前端简单一点。所有内容在一个页面显示。
后端服务器同时提供前端服务。

AI开始工作。文件创建、包安装、代码编写自主进行。出现权限提示时批准。

完成后运行服务器并在浏览器中确认。

运行服务器。告诉我访问地址。

在浏览器中打开http://localhost:8080。尝试添加待办事项、标记完成、删除。

步骤2:添加功能 — 优先级

给待办事项添加优先级。高/中/低3级。
- 添加时可以选择优先级
- 列表中可以看到优先级
- 高是红色,中是蓝色,低是灰色

在浏览器中确认。选择优先级添加待办事项。

步骤3:添加功能 — 截止日期

给待办事项添加截止日期。
- 添加时从日历中选择日期
- 列表中显示截止日期
- 过期的用红色背景强调

在浏览器中确认。看看截止日期设为昨天的待办事项是否显示红色背景。

步骤4:添加功能 — 搜索

添加搜索待办事项的功能。
- 列表上方的搜索输入框
- 筛选标题或内容包含搜索词的待办事项
- 输入时实时筛选

在浏览器中确认。添加多个待办事项后输入搜索词看是否能筛选。

步骤5:创建CLAUDE.md

记录刚才创建的项目状态。

为这个项目创建CLAUDE.md文件。包括项目概述、运行命令、目录结构、功能列表。

打开生成的CLAUDE.md阅读。明天在新会话中"接着做"时,这个文件就是AI的记忆。

步骤6:创建需求文档.md

自己动手创建。不要让Claude Code做,用文本编辑器打开需求文档.md写:

编辑器指南(WSL用户):

  • 终端直接编辑:nano 需求文档.md(保存:Ctrl+O → Enter,退出:Ctrl+X)
  • VS Code编辑:code 需求文档.md(安装了VS Code的话会从WSL自动连接)
# 需求文档.md

## 待办事项管理
- 待办事项有标题、内容、优先级(高/中/低)、截止日期
- 完成的待办事项标记完成而不是删除
- 过期的待办事项用红色背景强调

## 搜索
- 在标题和内容中搜索
- 实时筛选

## 技术
- 数据库是SQLite文件数据库
- 后端同时提供前端服务

这个文件是你写的,不是AI。这很重要。决定由你做,记录也由你做。


第1课总结

本课涵盖的内容:

  1. 工具地形:分为基于编辑器(Cursor、Copilot)和终端Agent(Claude Code、Codex CLI)
  2. Claude Code:自主验证循环、大规模上下文、多文件编辑——目前最强大的终端Agent
  3. 安装在第0课完成claude --version 输出 2.1.x,且AI能自主运行CLI(IDE聊天不行)
  4. 关键词:后端、前端、DB、部署——只要能指出方向就够
  5. 上下文管理:用CLAUDE.md(规则)、需求文档(决定)、进度文档(状态)外部化AI的记忆
  6. 氛围编程模式:Excel → DB设计 → API → 界面 → 添加功能。3个以内是魔法,5个开始裂缝

下一课预告:*“为什么5个功能就崩溃了。"*对第1课做的应用连续添加5个功能。大约第3个时你会亲眼目睹现有功能崩坏的瞬间。然后我们会从结构上深入分析原因。


作业

完成第1课实验后,尝试以下内容。

  1. 再添加2个功能:什么都行。分类整理、暗色模式、待办事项排序等。观察到哪里顺利,从哪里开始变奇怪。

  2. 完善CLAUDE.md:打开AI创建的CLAUDE.md自己阅读。有不理解的部分吗?有遗漏的信息吗?自己修改试试。

  3. 在新会话中接着做:退出Claude Code再重新运行。说"接着做正在进行的功能”。观察有CLAUDE.md和没有CLAUDE.md时的区别。


Reins Engineering 全部课程

标题
第0课安装Claude Code
第1课如何指挥AI
第2课如何不信任AI
第3课不会崩坏的应用
第4课把决定移到代码外面
第5课有缰绳的AI
第6课通过就锁定
第7课翻转谄媚的方法
第8课Agent的工厂
第9课代码之外的自动化
第10课数据的法
第11课拯救失败的氛围编程

参考文献

  • Ouyang, L., Wu, J., Jiang, X. et al. (2022). “Training Language Models to Follow Instructions with Human Feedback.” NeurIPS 2022. link
  • Chen, M., Tworek, J., Jun, H. et al. (2021). “Evaluating Large Language Models Trained on Code.” arXiv preprint. link
  • Peng, S., Kalliamvakou, E., Cihon, P. & Demirer, M. (2023). “The Impact of AI on Developer Productivity: Evidence from GitHub Copilot.” arXiv preprint. link

变更历史

  • 2026-05-24: 初版