Claude Code 实战指南:用 AI 玩转终端编程,效率狂飙!

1.前言

Claude Code 是一个运行在终端中的 AI 代理工具,直接与开发环境集成,无需额外服务器或 IDE 插件。用户通过自然语言描述任务,Claude 即可理解代码库上下文并执行操作(如编辑文件、运行测试、处理 Git 流程等)。

常用命令速查表

命令 功能 使用场景
/help 查看帮助文档 新手入门首选
/clear 清理会话历史 优化性能,释放内存
/memory 设置项目记忆(如 API 地址、环境) 避免重复输入关键信息
/init 初始化项目配置 新项目首次使用时
/review 请求代码审查 提交前的质量检查
/bug 提交问题报告 遇到错误时反馈给 Anthropic
/compact 压缩会话数据 减少 Token 占用,控制成本
/cost 查看 Token 使用情况 监控资源消耗
/doctor 系统诊断检查 排查权限/网络问题
/config 查看或修改配置 调整工具行为(如 API 密钥)

​ 前几天给大家介绍过关于免费使用claude-code,最近这2天我的代码也是使用claude-code来实现的,感觉非常丝滑。如果没有免费账号的小伙伴可以看我之前的文章《惊爆!国内轻松白嫖 Claude Code,编程效率狂飙》。另外windows平台上的小伙伴不能使用的也可以看我这篇文章《Windows 用户狂喜!免费玩转顶级 AI 编程工具 Claude Code,步骤全揭秘》。

下面就给大家介绍一下关于claude-code的使用的一些命令。

2.Claude Code使用

init

前面的安装这里就不给大家讲了。首先我们会创建一个项目这里会用到init这个命令。在Claude Code 命令行中输入下面

shell 复制代码
/init

命令输入后我们会创建一个CLAUDE.md 文件。

CLAUDE.md 是 Claude Code 的核心配置文件,它会被自动读取并加入到上下文中。这个文件应该包含

  • 项目基础信息和架构说明;

  • 常用命令和构建脚本;

  • 代码规范和约定;

  • 测试指南;

  • 开发环境配置;

  • 其他必要的上下文信息(可通过 @path/to/import 来引用项目文件)。

    推荐通过 init 命令创建 CLAUDE.md 文件:

shell 复制代码
# 使用 /init 命令自动生成
claude
> /init

# 或者手动创建并填充内容
touch CLAUDE.md

CLAUDE.md 文件可以放置在多个位置:

  • ​ 项目根目录:./CLAUDE.md(推荐,可提交到 git);

  • ​ 项目本地:./CLAUDE.local.md(不提交到 git);

  • ​ 全局配置:~/.claude/CLAUDE.md

  • ​ 父目录和子目录中也会被自动读取。

    下面是我生成的一个CLAUDE.md 文档

    我们可以利用它创建新的项目把相关要求写上,后面的项目代码就围绕这个文档来生成,这样代码就不会乱。我们也可以利用它来熟悉了解github上开源的新项目。

配置工具权限

Claude Code 默认采用保守的权限策略。你可以通过以下四种方式显式授权:

  • 启动时的交互式授权提示

  • 运行 /permissions 命令

  • 手动编辑 .claude/settings.json

  • 启动参数 --allowedTools

    这个其实就是我们每次运行代码的时候Claude Code会提示我们是否当前会话继续执行。

    每次运行点击确认会比较麻烦。我们也可以通过修改或则通过permissions 命令设置

在.claude 影藏文件也可以看到这个文件设置

shell 复制代码
# 使用 /permissions 命令管理权限
> /permissions

# 或者通过命令行参数
claude --allowedTools Edit,Bash(git commit:*)

工作流程

通常我们使用claude_code 也不是一开始就让他们给我们写代码,我们是需要通过.MD 文件来指挥它干活。

通常会有一个 1.探索阶段 - 了解现有代码, 2.计划阶段 - 使用扩展思考 3. 编码阶段 4. 提交阶段 等步骤。

当然我们也可以使用以测试驱动为开发流程大致流程如下:

shell 复制代码
# 1. 编写测试
"请基于期望的输入输出编写测试,确保测试会失败"

# 2. 运行测试确认失败
"运行测试确认失败,不要编写实现代码"

# 3. 提交测试
"请提交测试代码"

# 4. 实现功能
"请编写代码使测试通过,不要修改测试"

# 5. 提交实现
"请提交实现代码"

有的做前端开发的也可以参考下面的流程

shell 复制代码
# 1. 提供设计图
# 拖拽图片到 Claude Code 界面

# 2. 实现 UI
"请按照设计图实现界面"

# 3. 截图对比
"请截图当前实现,与设计图对比并改进"

# 4. 迭代优化
"请继续优化,直到效果满意"

上下文管理

Claude Code 的上下文窗口有限,且上下文过长会导致幻觉严重,需要合理管理上下文信息

  • 使用 @ 引用文件;
  • 在任务切换时使用 /clear 清空上次任务信息;
  • 长时间会话定期压缩上下文;(这个我用的比较少)
  • 必要时从历史会话恢复(即找回之前的上下文信息);
  • 将重要信息通过 # <context> 记录到 CLAUDE.md 中。

参考下面的命令行

shell 复制代码
# 使用文件引用
请参考 @PRD.MD 的结构

# 压缩上下文
> /compact

# 清理上下文
> /clear

# 增加记忆
# <context>

# 恢复历史会话
/resume

项目(模版)管理

另外我们也可以借助别人给我们提供好的项目的项目模版库的MD文件。 例如大家可以参考这个开源项目的MD文件

github.com/davila7/cla... 这个项目有Claude 代码设置模板(适用于 Python、JavaScript、Go、Rust 等)

我们这里以FastAPI 这个项目模版MD文件给大家看一下。

shell 复制代码
# FastAPI 项目配置

此文件为使用 Claude Code 进行 FastAPI Web 应用开发提供具体指导。

## 项目概述

这是一个为现代API开发优化的FastAPI应用项目,具有自动文档生成、类型提示和异步支持功能。

## FastAPI 专用开发命令

### 项目管理
- `uvicorn app.main:app --reload` - 启动带自动重载的开发服务器
- `uvicorn app.main:app --host 0.0.0.0 --port 8000` - 在所有接口上启动服务器
- `uvicorn app.main:app --workers 4` - 启动多进程服务器

### 数据库管理
- `alembic init alembic` - 初始化 Alembic 迁移
- `alembic revision --autogenerate -m "message"` - 创建迁移
- `alembic upgrade head` - 应用迁移
- `alembic downgrade -1` - 回滚一个迁移

### 开发工具
- `python -m pytest` - 运行测试
- `python -m pytest --cov=app` - 运行带覆盖率的测试
- `mypy app/` - 类型检查
- `black app/` - 代码格式化

## FastAPI 项目结构

```
myproject/
├── app/                        # 应用包
│   ├── __init__.py
│   ├── main.py                # FastAPI 应用
│   ├── core/                  # 核心配置
│   │   ├── __init__.py
│   │   ├── config.py         # 设置
│   │   └── security.py       # 身份验证
│   ├── api/                   # API 路由
│   │   ├── __init__.py
│   │   ├── deps.py           # 依赖项
│   │   └── v1/
│   │       ├── __init__.py
│   │       ├── api.py        # API 路由器
│   │       └── endpoints/
│   ├── models/                # 数据库模型
│   │   ├── __init__.py
│   │   ├── base.py
│   │   └── user.py
│   ├── schemas/               # Pydantic 模式
│   │   ├── __init__.py
│   │   └── user.py
│   ├── repositories/          # 数据访问层
│   │   ├── __init__.py
│   │   └── user.py
│   ├── services/              # 业务逻辑
│   │   ├── __init__.py
│   │   └── auth.py
│   └── db/                    # 数据库配置
│       ├── __init__.py
│       └── database.py
├── alembic/                   # 数据库迁移
├── tests/                     # 测试文件
├── requirements.txt           # 依赖项
└── docker-compose.yml        # Docker 配置
```

## FastAPI 应用设置

```python
# app/main.py
from fastapi import FastAPI
from app.core.config import settings
from app.api.v1.api import api_router

app = FastAPI(
    title=settings.PROJECT_NAME,
    version=settings.VERSION,
    openapi_url=f"/api/v1/openapi.json"
)

# 包含路由器
app.include_router(api_router, prefix="/api/v1")

@app.get("/")
async def root():
    return {"message": "欢迎使用 FastAPI"}
```

## 配置管理

```python
# app/core/config.py
from pydantic import BaseSettings

class Settings(BaseSettings):
    PROJECT_NAME: str = "FastAPI App"
    VERSION: str = "1.0.0"
    SECRET_KEY: str
    DATABASE_URL: str
    
    class Config:
        env_file = ".env"

settings = Settings()
```

## FastAPI 最佳实践

### API 设计
- 使用 Pydantic 模型进行请求/响应验证
- 实现适当的 HTTP 状态码
- 添加全面的 API 文档
- 为通用功能使用依赖注入
- 实现适当的错误处理

### 数据库集成
- 使用带异步支持的 SQLAlchemy
- 为数据访问实现仓储模式
- 使用 Alembic 进行数据库迁移
- 添加适当的数据库连接池
- 实现数据库健康检查

### 身份验证与安全
- 使用 JWT 令牌进行身份验证
- 实现带作用域的 OAuth2
- 为 API 端点添加速率限制
- 在生产环境中使用 HTTPS
- 实现适当的 CORS 配置

### 性能优化
- 为 I/O 操作使用 async/await
- 实现响应缓存
- 添加数据库查询优化
- 使用连接池
- 监控应用性能

## 测试策略

### 测试组织
```python
# tests/conftest.py
import pytest
from fastapi.testclient import TestClient
from app.main import app

@pytest.fixture
def client():
    return TestClient(app)
```

### 测试类型
- **单元测试** 用于业务逻辑
- **集成测试** 用于 API 端点
- **数据库测试** 使用测试夹具
- **身份验证测试** 用于安全性

## 部署考虑

### 生产环境设置
- 使用多进程的 Uvicorn
- 实现适当的日志记录和监控
- 设置反向代理(Nginx)
- 使用环境变量进行配置
- 实现健康检查

### Docker 配置
```dockerfile
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0"]
```

### 环境变量
```bash
SECRET_KEY=your-secret-key
DATABASE_URL=postgresql://user:pass@host/db
REDIS_URL=redis://localhost:6379
```

## 常见 FastAPI 模式

### 依赖注入
```python
from fastapi import Depends
from app.db.database import get_db

@app.get("/users/")
async def get_users(db: Session = Depends(get_db)):
    return users
```

### 后台任务
```python
from fastapi import BackgroundTasks

@app.post("/send-email/")
async def send_email(background_tasks: BackgroundTasks):
    background_tasks.add_task(send_email_task)
    return {"message": "邮件已发送"}
```

### 中间件
```python
@app.middleware("http")
async def add_process_time_header(request, call_next):
    response = await call_next(request)
    return response
```

## 开发工作流程

### 开始使用
1. 克隆仓库
2. 创建虚拟环境:`python -m venv venv`
3. 安装依赖:`pip install -r requirements.txt`
4. 设置环境变量
5. 运行迁移:`alembic upgrade head`
6. 启动服务器:`uvicorn app.main:app --reload`

### 代码质量
- **Black** - 代码格式化
- **isort** - 导入排序  
- **mypy** - 类型检查
- **pytest** - 测试框架
- **flake8** - 代码检查

当然你也可以更加上面文档内容增加和修改符合你们公司的项目规范和相关要求了。通过上面的约束我们编写的代码就不会乱了。

MCP 扩展工具

MCP 当然也是不可或缺的功能了。Claude Code 支持 MCP(Model Context Protocol)来扩展功能。关于它的配置可以参考官方文档

docs.anthropic.com/zh-CN/docs/...

下面给大家看一下studio 方式安装context7 命令行如下

shell 复制代码
claude add context7 -- npx -y @upstash/context7-mcp

安装完成后我们可以查看,输入

shell 复制代码
/mcp list

我们在安装一个SSE的MCP

shell 复制代码
claude mcp add --transport sse sse-server https://mcp.deepwiki.com/sse

查看一下 输入 mcp list

这样我们的claude-code就安装好2个MCP-server 。

3.Claude Code使用实战

初始化

上面我们简单介绍了Claude Code项目命令。接下来我们使用Claude Code做一个小项目看看它的强大。

我们这里先建一个空项目ZZ, 输入init创建项目初始化内容。

我们创建一个空的claude.md 文档,这个claude.md 是claude -code 默认内置的。

接下来我们把前面的FastAPI-CLAUDE.md 内容复制过来,这个时候我们项目骨架已经确定好了。

需求编写

接下来我们先写一个需求,然后让claude-code生成PRD文档。

shell 复制代码
  我需要生成一个打地鼠的游戏,大致的需求内容如下"你的任务是使用 HTML、CSS 和 JavaScript 创建一个简单的网页版"打地鼠"游戏。以下是游戏的详细规则:
  1. 游戏界面是一个 4x4 的网格。
  2. 每隔 1 - 2 秒,会有一只"地鼠"随机出现在一个格子里。
  3. 玩家点击"地鼠"即可得分,分数需要实时显示。
  4. 游戏包含一个"开始/重新开始"按钮和一个 30 秒的倒计时。

  请将实现上述功能的所有代码打包到一个 index.html 文件中。在编写代码时,要确保结构清晰,逻辑正确,并且代码具有良好的可读性。

  请在标签内写下完整的 index.html 文件代码"
  以上需求先帮我生成PRD文档,并结合CLAUDE.md。先不要写代码,先把需求整理出来。

这个时候我们可以看到claude-code在帮我干活了

好了,已经生成我们要的PRD文档了,我们打开一下,看一下PRD内容。

shell 复制代码
# 打地鼠游戏产品需求文档 (PRD)

## 1. 产品概述

### 1.1 产品名称
网页版打地鼠游戏

### 1.2 产品描述
一个基于HTML、CSS和JavaScript开发的单页面打地鼠游戏,玩家需要在规定时间内点击随机出现的地鼠来获得分数。

### 1.3 目标用户
- 休闲娱乐用户
- 网页游戏爱好者
- 寻求简单反应训练的用户

## 2. 功能需求

### 2.1 核心功能

#### 2.1.1 游戏界面 (F001)
- **需求描述**: 创建4x4的游戏网格界面
- **功能详情**:
  - 网格包含16个格子
  - 每个格子可以显示地鼠或空白状态
  - 格子具有明确的视觉边界
- **验收标准**:
  - 网格布局正确显示为4行4列
  - 格子大小一致且具有良好的视觉效果
  - 支持响应式设计

#### 2.1.2 地鼠出现机制 (F002)
- **需求描述**: 地鼠随机出现在网格中
- **功能详情**:
  - 地鼠每隔1-2秒随机出现
  - 每次只能有一只地鼠出现
  - 地鼠出现位置完全随机
  - 地鼠显示时间为固定持续时间
- **验收标准**:
  - 时间间隔在1-2秒之间随机
  - 地鼠位置随机分布均匀
  - 地鼠自动消失机制正常

#### 2.1.3 点击交互 (F003)
- **需求描述**: 玩家可以点击地鼠获得分数
- **功能详情**:
  - 点击地鼠时立即消失并加分
  - 点击空格子无效果
  - 点击反馈明确
- **验收标准**:
  - 点击地鼠成功率100%
  - 点击响应时间<100ms
  - 提供视觉或音效反馈

#### 2.1.4 分数系统 (F004)
- **需求描述**: 实时显示和更新玩家分数
- **功能详情**:
  - 每击中一只地鼠得1分
  - 分数实时更新显示
  - 分数在游戏界面明显位置显示
- **验收标准**:
  - 分数计算准确无误
  - 分数更新无延迟
  - 分数显示清晰可读

#### 2.1.5 游戏控制 (F005)
- **需求描述**: 提供游戏开始/重新开始功能
- **功能详情**:
  - 开始/重新开始按钮
  - 游戏状态管理(开始、进行中、结束)
  - 重置所有游戏数据
- **验收标准**:
  - 按钮功能正常
  - 游戏状态切换正确
  - 重置功能完整

#### 2.1.6 倒计时系统 (F006)
- **需求描述**: 30秒游戏时间限制
- **功能详情**:
  - 显示剩余时间
  - 时间到自动结束游戏
  - 倒计时视觉效果
- **验收标准**:
  - 时间计算精确到秒
  - 游戏结束时机准确
  - 倒计时显示清晰

### 2.2 UI/UX需求

#### 2.2.1 界面布局
- 顶部区域:分数显示和剩余时间
- 中央区域:4x4游戏网格
- 底部区域:开始/重新开始按钮

#### 2.2.2 视觉设计
- 简洁明了的界面设计
- 明确的地鼠和空格子视觉区分
- 合适的颜色搭配和字体大小
- 响应式设计适配不同屏幕

#### 2.2.3 交互反馈
- 鼠标悬停效果
- 点击成功/失败反馈
- 游戏结束提示

## 3. 技术需求

### 3.1 技术栈
- **前端**: HTML5、CSS3、JavaScript (ES6+)
- **部署**: 单个index.html文件,包含所有代码

### 3.2 性能要求
- 游戏运行流畅,无明显卡顿
- 响应时间<100ms
- 支持主流浏览器(Chrome、Firefox、Safari、Edge)

### 3.3 兼容性
- 桌面端主流浏览器
- 移动端浏览器基本支持

## 4. 非功能性需求

### 4.1 可用性
- 直观的用户界面
- 无需说明即可上手
- 明确的游戏规则提示

### 4.2 可维护性
- 代码结构清晰
- 良好的注释
- 模块化设计

### 4.3 可扩展性
- 易于调整游戏参数(网格大小、时间等)
- 便于添加新功能(音效、难度等级等)

## 5. 交付要求

### 5.1 交付物
- 单个index.html文件
- 包含完整的HTML、CSS、JavaScript代码
- 代码注释完整

### 5.2 文件结构
```html
index.html
├── HTML结构
├── CSS样式(<style>标签内)
└── JavaScript逻辑(<script>标签内)
```

## 6. 验收标准

### 6.1 功能验收
- [ ] 4x4网格正确显示
- [ ] 地鼠随机出现机制正常
- [ ] 点击交互响应正确
- [ ] 分数计算和显示准确
- [ ] 30秒倒计时功能正常
- [ ] 开始/重新开始按钮功能正常
- [ ] 游戏结束逻辑正确

### 6.2 质量验收
- [ ] 代码结构清晰
- [ ] 界面美观易用
- [ ] 无明显bug
- [ ] 浏览器兼容性良好

## 7. 风险评估

### 7.1 技术风险
- **风险**: 定时器精度问题
- **缓解**: 使用高精度定时器API

### 7.2 用户体验风险
- **风险**: 移动端操作不便
- **缓解**: 优化触摸区域大小

## 8. 后续迭代规划

### 8.1 V1.1版本
- 添加音效
- 增加难度等级
- 改进视觉效果

### 8.2 V1.2版本
- 添加排行榜
- 增加游戏统计
- 支持多主题

大家可以看一下这个AI对上面需求扩写,这样的PRD文档是不是比较清晰了。这样的需求文档发给AI 后面它写的代码就容易乱了。

代码生成

接下来我们继续让AI 帮我们干活。

css 复制代码
│ > @PRD.md 请基于上面PRD.MD文档生成代码,以测试驱动为开发流程,完成上面的代码。  

​ 代码生成完成,我们打开生成的HTML 代码(这个是个静态页面比较简单)

我们使用浏览器打开

好了这个打地鼠的游戏就已经做好了。

生成readme.md

接下来我们让生成readme.md。这样需求、代码、文档就全了。

shell 复制代码
│ > 请根据上面的代码和需求生成readme.md文档      

好了文档写写完了,详细文档内容就不贴了。我们直接上图

这样我们通过简单对话聊天就完成了一个小项目了。大家也根据自己的需求结合MCP 等功能来实现 vibecoding 编程。 还没有免费的claude_code 的小伙伴点击这个链接注册 anyrouter.top/register?af... 抓紧上车。

4.总结

今天主要带大家深入了解并实践了 Claude Code 的使用方法。Claude Code 作为一款运行在终端中的强大 AI 代理工具,能直接与开发环境集成,通过自然语言描述任务,即可理解代码库上下文并执行各类操作,在 AI 编程领域优势显著,极大地提升了开发效率。

在实战部分,我们以创建一个打地鼠游戏为例,展示了如何利用 Claude Code 从需求编写、生成 PRD 文档、代码生成到生成 readme.md 文档的完整开发流程。通过简单的对话交流,Claude Code 就能高效地完成项目的各个环节,充分体现了其在项目开发中的强大能力。

总的来说,Claude Code 为开发者提供了一个便捷、高效的编程辅助工具,能够显著提升编程效率。感兴趣的小伙伴可以按照本文步骤去尝试使用 Claude Code,开启高效编程之旅。今天的分享就到这里结束了,我们下一篇文章见。

相关推荐
爱勇宝13 分钟前
没有 Fn 键关触控板?我做了一个双击即用的 Windows 小工具
前端·后端·程序员
沙湖遇雨1 小时前
8.ByteBuf 的数据模型、生命周期和内存分配
后端
by组态1 小时前
Ricon组态系统API参考手册
前端·后端·物联网
再吃一根胡萝卜1 小时前
Agent 如何选择与生成 SQL —— Text2SQL 全链路详解
后端
苍何1 小时前
把操作流程直接录成 Skill,豆包太夯了!
后端
Go_error1 小时前
在 Go 服务层中如何优雅地管理事务?
后端·go
爱读源码的大都督2 小时前
DeepSeek面试官问:多租户 RAG 系统怎样实现细粒度权限控制?
后端·面试·架构
苍何2 小时前
我们终于成立了 AgentWork 开源社区,16.4 万字豆包工作蓝皮书同步开源(建议收藏)
后端