首页 › tutorials › Claude Code全栈实战:空目录到可部署应用

Claude Code全栈实战:从空白目录到可部署应用

概述

本教程面向有基本编程基础但从未用过Claude Code的开发者。你将学会如何用Claude Code完成一个完整项目的全生命周期——从创建空目录、初始化配置、搭建项目骨架、迭代开发功能,到最终生成可部署产物。教程以一个"任务管理API + 前端"全栈应用为实战案例,每个步骤都给出具体命令和预期输出。

适用人群:了解基础命令行操作、会写简单代码、但希望借助AI工具大幅提升开发效率的开发者。

学习目标:完成本教程后,你将掌握Claude Code的完整开发工作流,能够独立用AI辅助完成任何中小型项目。


前置条件

条件 说明
操作系统 macOS、Linux或WSL2(Windows子系统)
Node.js v18+(用于安装Claude Code CLI)
终端 任意终端模拟器(iTerm2、Terminal、Windows Terminal等)
账户 Anthropic账户(有API Key或Claude Pro/Max订阅)
基础知识 了解Git基本命令、HTTP API概念

安装Claude Code(如果尚未安装):

npm install -g @anthropic-ai/claude-code

验证安装:

claude --version
# 预期输出: claude-code/x.x.x (具体版本号)

第一章:理解Claude Code的开发哲学

1.1 它不是聊天机器人,是协作搭档

Claude Code与传统AI编程助手有本质区别。传统工具(如Copilot)在你打字时给出建议,而Claude Code是一个运行在你终端中的智能代理,它能:

1.2 五大工作流模式

Claude Code支持从完全手动到完全自治的五种工作模式。初学者应从第一种开始,逐步增加自治度:

graph LR
    A["Sequential<br/>顺序模式<br/>🔵 手动控制"] --> B["Operator<br/>操作员模式<br/>🟡 半自动"]
    B --> C["Split & Merge<br/>拆分合并<br/>🟠 并行处理"]
    C --> D["Agent Teams<br/>团队模式<br/>🔴 多Agent协作"]
    D --> E["Headless<br/>无头模式<br/>⚫ 全自动"]

    style A fill:#4a90d9,color:#fff
    style B fill:#f5a623,color:#fff
    style C fill:#e67e22,color:#fff
    style D fill:#e74c3c,color:#fff
    style E fill:#2c3e50,color:#fff
模式 适用场景 人为介入程度
Sequential(顺序) 一步步执行,每步确认 高——每步都要批准
Operator(操作员) Claude做具体操作,人做决策 中——只审批关键操作
Split & Merge(拆分合并) 多个独立子任务并行 中——拆分时介入,合并时审查
Agent Teams(团队) 大型项目多模块并行开发 低——设定目标后自主执行
Headless(无头) CI/CD流水线、批量任务 无——完全无人值守

新手建议:前三个项目使用Sequential模式,充分理解Claude Code的行为模式后再逐步放手。


第二章:项目初始化——从零开始的第一步

2.1 创建项目目录并启动Claude Code

# 创建项目目录
mkdir taskflow-app && cd taskflow-app

# 初始化Git仓库(Claude Code对Git有深度集成)
git init

# 启动Claude Code
claude

首次启动会看到欢迎界面和认证提示。按照指引完成Anthropic账户认证。

2.2 运行 /init —— 最重要的第一步

进入Claude Code交互界面后,第一条命令应该是:

> /init

/init 命令会分析当前目录结构,自动生成 CLAUDE.md 文件。这个文件是Claude Code理解你项目的"大脑"——它告诉AI你的项目规则、技术栈偏好和代码规范。

对于空目录,/init 会生成一个基础模板:

# CLAUDE.md(/init 自动生成的基础版本)

## 项目概述
TaskFlow - 一个任务管理全栈应用

## 技术栈
- 后端: Node.js + Express + TypeScript
- 前端: React + Vite + TypeScript
- 数据库: SQLite(开发阶段)
- 测试: Vitest

## 开发规范
- 使用TypeScript严格模式
- 遵循RESTful API设计原则
- 提交信息使用Conventional Commits格式
- 代码必须有对应的测试

## 项目结构

taskflow-app/ ├── server/ # 后端API服务 ├── client/ # 前端React应用 ├── CLAUDE.md # 项目配置 └── README.md # 项目文档

## 构建与运行命令
- 安装依赖: `npm install`
- 启动后端: `cd server && npm run dev`
- 启动前端: `cd client && npm run dev`
- 运行测试: `npm test`
- 构建生产版本: `npm run build`

2.3 完善CLAUDE.md——让AI更懂你

/init 生成的是基础模板,你需要补充项目特定信息。告诉Claude Code:

> 请帮我完善CLAUDE.md,这是一个任务管理应用,包含以下功能:
> - 用户注册和登录
> - 任务的CRUD操作
> - 任务分类和标签
> - 简单的看板视图
> 
> 后端用Express + SQLite,前端用React。
> 代码风格遵循Airbnb规范,使用pnpm作为包管理器。

Claude Code会更新 CLAUDE.md,加入更详细的技术规范和架构约定。

常见问题:

问题 解决方案
/init 后CLAUDE.md内容太少 手动补充或让Claude Code根据你的需求描述生成详细版本
忘记运行 /init 随时可以运行,不影响已有代码
CLAUDE.md应该放在哪里? 项目根目录(最重要)、~/.claude/CLAUDE.md(全局偏好)

第三章:项目骨架搭建——让AI帮你做脏活

3.1 用计划模式做架构设计

不要让Claude Code直接写代码,先用Plan模式讨论架构:

> 进入计划模式。我要搭建一个任务管理全栈应用,请帮我设计项目结构、
> API路由设计和数据库表结构。用SQLite作为数据库,不需要ORM。

Claude Code会进入Plan模式,输出一份详细的技术方案。你可以审查、修改、迭代直到满意。

flowchart TD
    A["用户描述需求"] --> B["Claude Code<br/>进入Plan模式"]
    B --> C["输出技术方案"]
    C --> D{"用户审查"}
    D -->|"满意"| E["退出Plan模式<br/>开始实施"]
    D -->|"需要调整"| F["用户反馈修改意见"]
    F --> B

    style A fill:#4a90d9,color:#fff
    style E fill:#27ae60,color:#fff

3.2 生成项目骨架

方案确认后,一次性生成完整项目结构:

> 请根据刚才的计划,搭建完整的项目骨架。包括:
> 1. server/ 目录:Express应用、路由、数据库初始化脚本
> 2. client/ 目录:React + Vite 应用
> 3. 根目录:package.json、tsconfig.json、.gitignore
> 4. 每个目录都需要独立的package.json
> 
> 先创建文件结构和配置文件,不要写具体业务逻辑。

预期输出:Claude Code会创建如下结构:

taskflow-app/
├── CLAUDE.md
├── .gitignore
├── package.json              # 根monorepo配置
├── server/
│   ├── package.json
│   ├── tsconfig.json
│   ├── src/
│   │   ├── index.ts          # 入口文件
│   │   ├── routes/           # 路由定义
│   │   ├── middleware/       # 中间件
│   │   └── db/               # 数据库相关
│   └── tests/
├── client/
│   ├── package.json
│   ├── tsconfig.json
│   ├── vite.config.ts
│   ├── index.html
│   └── src/
│       ├── App.tsx
│       ├── main.tsx
│       ├── components/
│       ├── pages/
│       └── api/
└── shared/                   # 前后端共享类型
    └── types.ts

3.3 安装依赖并验证

> 安装所有依赖,确保项目能正常启动

Claude Code会运行:

# 根目录
pnpm install

# 后端
cd server && ppm add express cors better-sqlite3
pnpm add -D typescript @types/express @types/cors @types/better-sqlite3 vitest

# 前端
cd client && pnpm add react react-dom react-router-dom
pnpm add -D @vitejs/plugin-react vite typescript vitest

常见问题:

问题 解决方案
依赖安装失败 让Claude Code检查Node版本,或切换npm镜像源
TypeScript编译报错 告诉Claude Code具体错误信息,它会修正tsconfig.json
端口冲突 提示Claude Code使用不同端口(如3001代替3000)

第四章:迭代开发——核心功能的正确姿势

4.1 第一个功能:数据库和任务API

不要一次要求所有功能。按功能模块逐步开发:

> 现在实现第一个功能模块:任务的CRUD API。
> 
> 需要实现:
> - POST   /api/tasks     创建任务
> - GET    /api/tasks     获取任务列表
> - GET    /api/tasks/:id 获取单个任务
> - PUT    /api/tasks/:id 更新任务
> - DELETE /api/tasks/:id 删除任务
> 
> 数据库使用SQLite,创建tasks表。包含测试。

Claude Code会: 1. 创建数据库初始化脚本(server/src/db/schema.ts) 2. 实现路由处理函数(server/src/routes/tasks.ts) 3. 注册路由到主应用(server/src/index.ts) 4. 编写API测试(server/tests/tasks.test.ts)

关键交互——Claude Code在执行过程中会请求你的许可:

Claude wants to edit server/src/db/schema.ts [Allow? y/n]
Claude wants to run: pnpm --filter server test [Allow? y/n]

对于每个操作,你可以选择: - y:允许本次操作 - n:拒绝 - Shift+Tab:切换为"允许所有同类操作"

4.2 验证功能并处理错误

> 运行后端测试,确认所有API测试通过。如果有错误请修复。

Claude Code会自动运行测试,分析失败原因并修复:

cd server && pnpm test

# 预期成功输出:
# ✓ POST /api/tasks - 创建任务
# ✓ GET /api/tasks - 获取任务列表
# ✓ GET /api/tasks/:id - 获取单个任务
# ✓ PUT /api/tasks/:id - 更新任务
# ✓ DELETE /api/tasks/:id - 删除任务
# 
# Tests  5 passed (5)
# Time   1.2s

如果测试失败,Claude Code会显示错误分析:

# 测试失败示例:
# ✗ POST /api/tasks - 创建任务
#   → Expected status 201, received 500
#   → Error: Cannot read property 'title' of undefined
# 
# Claude Code自动分析:
# "问题出在请求体解析中间件未正确配置。
#  我需要添加 express.json() 中间件。"

4.3 Git检查点——让历史可追溯

每完成一个功能模块,创建一个Git提交:

> 请查看当前的代码变更,生成合适的commit message并提交。

Claude Code会: 1. 运行 git status 和 git diff 查看变更 2. 分析变更内容 3. 生成符合Conventional Commits规范的消息 4. 执行 git add 和 git commit

# Claude Code生成的commit:
feat(server): implement task CRUD API with SQLite

- Add database schema and initialization script
- Implement RESTful endpoints for tasks
- Add input validation middleware
- Include comprehensive test suite (5 tests)

Co-Authored-By: Claude <[email protected]>

4.4 第二个功能:前端界面

> 现在实现前端。创建一个简单的任务列表页面,包含:
> 1. 显示所有任务的列表
> 2. 添加新任务的表单
> 3. 标记任务完成/未完成的切换
> 4. 删除任务的按钮
> 
> 使用React Hook管理状态,不需要引入状态管理库。
> 样式使用CSS Modules。

Claude Code会在 client/src/ 下创建:

4.5 联调前后端

> 前后端需要联调。请确保:
> 1. 后端添加CORS中间件
> 2. 前端API调用指向正确的后端地址
> 3. Vite配置代理到后端的3001端口
> 4. 两个服务能同时启动

Claude Code会配置开发代理:

// client/vite.config.ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

export default defineConfig({
  plugins: [react()],
  server: {
    port: 5173,
    proxy: {
      '/api': {
        target: 'http://localhost:3001',
        changeOrigin: true,
      },
    },
  },
})

第五章:Git工作流——Claude Code与版本控制深度协作

5.1 分支策略

Claude Code天然支持Git Flow工作流:

> 创建feature/task-tags分支,实现任务标签功能。

Claude Code会:

git checkout -b feature/task-tags
# 然后开始实现标签功能...

5.2 代码审查

用Claude Code审查自己的代码:

> 审查当前分支相对于main分支的所有变更。关注:
> - 潜在的bug
> - 性能问题
> - 安全隐患
> - 代码风格一致性
> 
> 输出审查报告和改进建议。

Claude Code会生成结构化的审查报告:

## 代码审查报告

### 严重问题 (2)
1. [安全] server/src/routes/tasks.ts:45
   - SQL注入风险:直接拼接用户输入
   - 建议:使用参数化查询

2. [Bug] client/src/api/tasks.ts:23
   - 未处理网络错误,可能导致页面崩溃
   - 建议:添加try-catch和错误状态

### 改进建议 (3)
1. [性能] 任务列表缺少分页,数据量大时性能下降
2. [风格] 部分文件缺少错误类型定义
3. [可维护] API基础URL应提取为环境变量

5.3 合并与冲突解决

> 将feature/task-tags合并到main。如果有冲突请帮我解决。

Claude Code会分析冲突双方的内容,提出合并方案并征求你的确认。

gitgraph
    commit id: "init"
    commit id: "feat: CRUD API"
    branch feature/task-tags
    checkout feature/task-tags
    commit id: "feat: tag model"
    commit id: "feat: tag API"
    commit id: "test: tag tests"
    checkout main
    commit id: "feat: frontend list"
    merge feature/task-tags id: "merge: task tags"
    commit id: "chore: update CLAUDE.md"

第六章:测试与质量保障

6.1 补充测试覆盖

> 分析当前代码的测试覆盖率,为缺少测试的模块补充测试。
> 重点关注API端点和关键业务逻辑。

Claude Code会运行覆盖率分析:

cd server && pnpm test -- --coverage

# 输出:
# File            | % Stmts | % Branch | % Funcs | % Lines
# ----------------|---------|----------|---------|--------
# All files       |   72.3% |    65.1% |   80.0% |  71.8%
#  routes/tasks.ts|   95.0% |    88.9% |  100.0% |  95.0%
#  routes/tags.ts |   45.0% |    30.0% |   60.0% |  43.5%  ← 需要补充
#  middleware/    |   60.0% |    50.0% |   75.0% |  58.3%  ← 需要补充

然后自动为覆盖不足的模块生成测试。

6.2 端到端测试

> 用Vitest + fetch API为整个应用写端到端集成测试。
> 测试场景:创建任务 → 添加标签 → 筛选 → 完成任务 → 删除任务

第七章:部署准备——从开发到生产

7.1 构建生产版本

> 配置生产构建流程:
> 1. 后端编译为JavaScript
> 2. 前端构建为静态文件
> 3. Express服务前端静态文件(生产模式)
> 4. 创建启动脚本

Claude Code会配置构建流程:

// 根目录 package.json
{
  "scripts": {
    "build": "pnpm --filter server build && pnpm --filter client build",
    "start": "node server/dist/index.js",
    "dev": "concurrently \"pnpm --filter server dev\" \"pnpm --filter client dev\""
  }
}

7.2 环境变量配置

> 添加环境变量支持:
> - DATABASE_PATH:数据库文件路径
> - PORT:服务端口
> - NODE_ENV:运行环境
> 创建 .env.example 文件作为模板

7.3 Docker化(可选)

> 为这个应用创建Dockerfile和docker-compose.yml。
> 多阶段构建,最终镜像使用Alpine Linux。

Claude Code生成:

# Dockerfile(Claude Code生成)
FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile
COPY . .
RUN pnpm run build

FROM node:20-alpine AS runner
WORKDIR /app
COPY --from=builder /app/server/dist ./dist
COPY --from=builder /app/client/dist ./public
COPY --from=builder /app/package.json ./
RUN corepack enable && pnpm install --prod --frozen-lockfile
EXPOSE 3001
CMD ["node", "dist/index.js"]

实战案例:TaskFlow完整开发流程

以下是用Claude Code完成整个TaskFlow项目的完整流程图:

flowchart TB
    subgraph Phase1["阶段一:初始化(15分钟)"]
        A1["mkdir taskflow-app"] --> A2["git init"]
        A2 --> A3["claude 启动"]
        A3 --> A4["/init 生成CLAUDE.md"]
        A4 --> A5["完善项目配置"]
    end

    subgraph Phase2["阶段二:架构设计(10分钟)"]
        B1["Plan模式讨论架构"] --> B2["确定技术栈"]
        B2 --> B3["设计API路由"]
        B3 --> B4["设计数据库表"]
        B4 --> B5["审查并确认方案"]
    end

    subgraph Phase3["阶段三:骨架搭建(10分钟)"]
        C1["生成项目目录结构"] --> C2["创建配置文件"]
        C2 --> C3["安装依赖"]
        C3 --> C4["验证项目能启动"]
        C4 --> C5["Git初始提交"]
    end

    subgraph Phase4["阶段四:功能迭代(每个功能15-20分钟)"]
        D1["描述功能需求"] --> D2["Claude实现代码"]
        D2 --> D3["运行测试"]
        D3 --> D4{"测试通过?"}
        D4 -->|"是"| D5["审查变更"]
        D4 -->|"否"| D6["Claude自动修复"]
        D6 --> D3
        D5 --> D7["Git提交"]
        D7 --> D8["下一个功能"]
    end

    subgraph Phase5["阶段五:质量与部署(15分钟)"]
        E1["代码审查"] --> E2["补充测试"]
        E2 --> E3["生产构建配置"]
        E3 --> E4["Docker化"]
        E4 --> E5["部署就绪"]
    end

    Phase1 --> Phase2 --> Phase3 --> Phase4 --> Phase5

    style Phase1 fill:#3498db,color:#fff
    style Phase2 fill:#2ecc71,color:#fff
    style Phase3 fill:#f39c12,color:#fff
    style Phase4 fill:#e74c3c,color:#fff
    style Phase5 fill:#9b59b6,color:#fff

每个阶段的典型时间投入:

阶段 人工操作 AI操作 总耗时
初始化 5分钟 10分钟 ~15分钟
架构设计 10分钟(审查为主) 5分钟 ~15分钟
骨架搭建 3分钟 7分钟 ~10分钟
功能迭代(每个) 5-8分钟 10-15分钟 ~20分钟
质量与部署 5分钟 10分钟 ~15分钟

一个包含5-6个功能模块的中小型项目,总开发时间约 2-3小时(传统开发需要1-2天)。


关键技巧与陷阱避坑

技巧一:控制上下文窗口

Claude Code的上下文窗口有限。如果对话过长,理解能力会下降。解决方法:

技巧二:精确的需求描述

模糊描述 → 模糊结果。好的提示词模式:

❌ "帮我写个登录功能"
✅ "实现用户登录功能:
   - POST /api/auth/login 端点
   - 接受 {email, password} 请求体
   - 返回JWT token
   - 密码用bcrypt加密存储
   - 添加单元测试和集成测试"

技巧三:分步实施,逐步确认

不要一次性要求太多功能。遵循"描述→实现→验证→提交"的循环:

> 实现任务标签功能的数据库部分  ← 先做数据层
> (验证后)
> 实现标签的API端点              ← 再做API层
> (验证后)
> 实现标签的前端展示              ← 最后做展示层

技巧四:善用Plan模式

对于复杂的架构决策,始终先进入Plan模式:

> /plan 我想添加WebSocket实时通知功能,请先设计方案

审查方案后再执行,避免大规模返工。

常见陷阱

陷阱 症状 解决方案
一次性要求太多 代码质量下降、逻辑混乱 分功能模块逐步实现
不审查直接接受 潜入隐藏bug 每次变更后运行测试
上下文过长 Claude"忘记"之前的规定 定期 /compact 或重启会话
CLAUDE.md太简单 代码风格不一致 投入时间完善配置文件
跳过测试步骤 后期bug爆发 每个功能必须附带测试

完整开发流程速查表

# 1. 项目初始化
mkdir my-project && cd my-project
git init
claude
> /init

# 2. 架构规划
> 进入计划模式。描述需求和技术栈...

# 3. 骨架搭建
> 根据计划创建项目结构...

# 4. 功能迭代(重复以下步骤)
> 实现[具体功能]...
> 运行测试确认通过
> 查看变更并提交

# 5. 上下文管理(在对话过长时)
> /compact

# 6. 代码审查
> 审查所有变更,输出审查报告

# 7. 生产构建
> 配置生产构建和部署

延伸阅读


训练营适用性评估

评估维度 说明
适合训练营类型 全栈开发入门营、AI辅助编程速成营、前端/后端转型营
学员基础要求 能使用终端、了解基本Git命令、至少掌握一门编程语言
预计教学时长 3-4小时(含实操练习),可作为半天工作坊
教学建议 前1小时讲解概念+演示,后2-3小时学员跟做实战项目
考核方式 学员独立完成一个包含3个功能模块的全栈应用,所有测试通过
扩展方向 可衔接Skills开发、MCP服务器开发、自动化Hooks等进阶课程

参考来源

  1. Claude Code官方文档 - Common Workflows — Anthropic官方工作流模板,包含代码探索、调试、重构等场景
  2. Beyond One-Shot Prompts: 5 Claude Code Workflow Patterns Explained — 五大代理工作流模式的详细解析
  3. Claude Code Greenfield Workflow: From Empty Repo to First Slice — 从空白仓库到首个垂直切片的实战流程
  4. Claude Code in 2026: Practical End-to-End SDLC Workflow — 2026年SDLC全生命周期实战指南
  5. Claude Code实战手册:从零搭建到真实项目落地 — 中文社区的全流程实战复盘

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入