冷蟊初退 孤灯野澜 志起鸡鸣 墓不悲秋 技术交流 软件开发 商业合作 加Q:411239339

Day 9 用 Claude Code 从零搭建一个全栈应用

浏览:8次阅读
没有评论

共计 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 会:

  1. 创建目录
  2. 生成 package.json(含 express、typescript、better-sqlite3 等依赖)
  3. 生成 tsconfig.json
  4. 运行 npm install
  5. 创建基础的 src/app.tssrc/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 会:

  1. git status 查看改动
  2. git diff 分析改了什么
  3. 生成 commit message:feat(api): 实现待办事项 CRUD 接口
  4. 等你确认后提交

第七步:加点功能

项目雏形有了,加点进阶功能:

> 给待办事项加上 "优先级" 字段(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

正文完
创作不易,扫码加点动力
post-qrcode
 0
果较瘦
版权声明:本站原创文章,由 果较瘦 于2026-03-29发表,共计3527字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。