共计 3527 个字符,预计需要花费 9 分钟才能阅读完成。
文章目录[显示]
Claude Code 从入门到脱发 · Day 9
学了八天理论和碎片技巧,今天我们把它们串起来。
目标:用 Claude Code 从零搭建一个 " 待办事项 " API 服务。选这个项目不是因为它简单(虽然确实不复杂),而是因为它足够典型——初始化项目、写代码、连数据库、跑测试、Git 管理,日常开发的完整链路都能覆盖到。
重点不是最终产物,而是过程中的工作方式。你会看到 Claude Code 在真实项目里是怎么协助开发的。
本文你将学到:
- 从零初始化项目的完整流程
- 如何用 Plan Mode 规划架构
- 如何让 Claude Code 帮你写代码、测试、提交
- CLAUDE.md + Hooks + Skills 的实际配合
阅读时间 :10 分钟 | 实操时间 :60 分钟 | 难度:中级
项目规划
先不急着写代码。Day 2 讲过 Plan Mode,现在正是用它的时候。
按两次 Shift+Tab 进入 Plan Mode:
> 我要创建一个待办事项 API 服务,技术栈用 Node.js + Express + TypeScript + SQLite。> 帮我做一个技术方案:> - 目录结构
> - API 接口设计
> - 数据模型
> - 需要的依赖包
Claude Code 会输出一份详细的技术方案,大概像这样:
目录结构:todo-api/
src/
routes/ # 路由定义
services/ # 业务逻辑
models/ # 数据模型
middleware/ # 中间件
types/ # TypeScript 类型
app.ts # Express 应用
server.ts # 启动入口
tests/ # 测试文件
package.json
tsconfig.json
CLAUDE.md
API 接口:GET /api/todos # 获取所有待办
POST /api/todos # 创建待办
GET /api/todos/:id # 获取单个待办
PUT /api/todos/:id # 更新待办
DELETE /api/todos/:id # 删除待办
数据模型:Todo {
id: number
title: string
completed: boolean
created_at: string
updated_at: string
}
确认方案没问题后,退出 Plan Mode,开始执行。
第一步:初始化项目
> 帮我创建 todo-api 项目,按照刚才的方案初始化目录结构、> package.json、tsconfig.json,安装必要的依赖
Claude Code 会:
- 创建目录
- 生成
package.json(含 express、typescript、better-sqlite3 等依赖) - 生成
tsconfig.json - 运行
npm install - 创建基础的
src/app.ts和src/server.ts
你只需要确认它的操作,整个过程两分钟完成。
第二步:配置 CLAUDE.md
项目创建好后,第一件事不是写业务代码,而是写 CLAUDE.md。
> 帮我生成一个 CLAUDE.md,包含:> - 项目技术栈信息
> - 常用命令(开发、测试、构建)> - 代码风格约定(函数式、不用 any、文件不超过 200 行)> - Git 提交规范(中文、conventional commits)
Claude Code 会生成一个 CLAUDE.md。检查一下内容,确认后提交。
从现在开始,Claude Code 的所有操作都会遵守这份规范。
第三步:TDD 写业务代码
这里我们用 TDD(测试驱动开发)的方式——先写测试,再写实现。
> 用 TDD 方式实现 Todo 的 CRUD 接口。> 先写测试文件 tests/todos.test.ts,覆盖以下场景:> - 创建待办(正常 + 标题为空的异常情况)> - 获取所有待办
> - 获取单个待办(存在 + 不存在)> - 更新待办状态
> - 删除待办
Claude Code 会先创建测试文件。这时候运行测试当然会全部失败——因为还没有实现代码。
> 现在实现代码,让所有测试通过
它会创建:
src/models/todo.ts—— 数据库操作src/services/todo-service.ts—— 业务逻辑src/routes/todos.ts—— 路由处理- 更新
src/app.ts—— 注册路由
写完后自动跑测试,确认全部通过。
第四步:加上中间件
> 给 API 加上:> 1. 请求日志中间件(记录方法、路径、耗时)> 2. 错误处理中间件(统一的错误响应格式)> 3. 输入验证(创建和更新接口的 body 校验)
Claude Code 会创建中间件文件、更新 app.ts,并补充对应的测试。
第五步:用 Hooks 自动化
到这里你可能已经注意到:每次 Claude Code 改完文件,你都在想 " 格式化了没?类型检查过了没?"
配置 Hooks 一劳永逸。创建 .claude/settings.json:
{
"permissions": {
"allowedTools": [
"Read", "Write", "Edit", "Glob", "Grep",
"Bash(npm test)", "Bash(npm run lint)",
"Bash(npx tsc --noEmit)", "Bash(git *)"
]
},
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "filepath=\"$CLAUDE_FILE_PATH\"; if echo \"$filepath\"| grep -qE'\\.tsx?$'; then npx prettier --write \"$filepath\"2>/dev/null && npx tsc --noEmit 2>&1 | head -10; fi"
}
]
}
]
}
}
从现在开始,每次编辑 TypeScript 文件后自动格式化 + 类型检查。
第六步:阶段性提交
> 帮我提交当前的改动,这是初始版本的 CRUD API 实现
Claude Code 会:
git status查看改动git diff分析改了什么- 生成 commit message:
feat(api): 实现待办事项 CRUD 接口 - 等你确认后提交
第七步:加点功能
项目雏形有了,加点进阶功能:
> 给待办事项加上 "优先级" 字段(low/medium/high),> 支持按优先级筛选和排序。> 需要:更新数据模型、更新接口、补充测试
Claude Code 会修改多个文件,一气呵成:
- 更新 model 添加 priority 字段
- 更新 service 支持筛选和排序
- 更新路由支持 query 参数
- 更新测试覆盖新场景
工作流回顾
回头看整个过程:
Plan Mode 规划
|
初始化项目
|
配置 CLAUDE.md(立规矩)|
TDD 写代码(先测试后实现)|
配置 Hooks(自动化检查)|
阶段性提交
|
迭代新功能
|
再次提交
这就是用 Claude Code 开发项目的标准流程。不是让 AI 一口气写完所有代码,而是像带一个高效的搭档一样,分步骤、有节奏地推进。
踩坑记录
实战过程中你大概率会遇到这些问题:
1. Claude Code 改着改着跑偏了
如果你觉得它走错了方向,按 Esc 中断,说清楚你要什么。不要让它在错误的方向上越走越远。
2. 上下文太长导致它 " 忘记 " 了之前的规划
大型任务做到一半,/clear 清一下上下文,重新告诉它当前进度和接下来要做什么。
3. 测试没跑过就提交了
这就是 Day 5 讲的 Hooks 要解决的问题。配置一个 PreToolUse Hook,在 git commit 前自动跑测试。
4. 生成的代码风格不一致
回去检查 CLAUDE.md 是不是写得够具体。" 代码风格好 " 不如 " 使用 const 箭头函数定义组件,不使用 function 声明 " 来得有效。
常见问题 Q&A
Q1:Claude Code 能从零创建完整的生产项目吗?
能创建功能完整的原型,但距离 " 生产就绪 " 还有距离。生产项目需要的错误处理细节、边界场景覆盖、性能优化,仍然需要人工把关。把它当搭档而不是替代品。
Q2:大型项目怎么用 Claude Code?
分模块。不要说 " 帮我写一个电商系统 ",而是 " 帮我写用户注册模块 "、" 帮我写购物车模块 "。每个模块独立开发、独立测试。
Q3:不同技术栈都能用吗?
Claude Code 对 JavaScript/TypeScript 生态支持最好,Python 次之,Java/Go/Rust 也能用。核心能力(读代码、改代码、跑命令)不受技术栈限制。
小结
今天用 Claude Code 从零搭建了一个完整的 API 项目,核心流程:
- Plan Mode 先规划,确认方案后再动手
- CLAUDE.md 先配好,让 AI 遵守你的规矩
- TDD 方式开发,先写测试再写实现
- Hooks 自动化检查,减少手动操作
- 分步提交,保持版本控制清晰
明天是系列最后一篇——高级技巧和省钱指南。十天学完,你的 Claude Code 使用水平会从 " 能用 " 变成 " 好用 "。
当然,发际线的事 …… 我管不了。
明天见。
系列进度:9/10