第 4 章

Claude Code——用命令行把整个代码库交给 AI

第4章:Claude Code——用命令行把整个代码库交给 AI

Claude Code 是 Anthropic 官方出品的命令行 AI 编程工具。它和 Cursor 的区别不是"更好"或"更差",而是适用场景不同:Cursor 是 IDE 插件,Claude Code 是终端 Agent,能读写文件、执行命令、自主完成多步任务。本章覆盖安装、配置、核心工作流和一个完整的数据库迁移案例。

Agent vs 编辑器辅助:本质区别

维度 Cursor(编辑器模式) Claude Code(Agent 模式)
交互方式 在 IDE 里对话,手动接受修改 命令行对话,自主执行操作
文件操作 展示 diff,你确认 直接读写文件
命令执行 不执行,只生成代码 执行 shell 命令(git、npm、python 等)
适合任务 边写代码边迭代 大型重构、数据迁移、自动化任务
上下文大小 受 IDE 窗口限制 可读取整个代码库

结论:Cursor 适合"边写边看"的交互式开发,Claude Code 适合"给它一个目标,让它自己搞定"的 Agent 任务。两者互补,不是替代关系。

安装

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

需要 Node.js 18+。安装完成后运行 claude 进入交互模式。

认证方式(3种)

方式1:Anthropic API Key(推荐个人用户)

export ANTHROPIC_API_KEY="sk-ant-api03-..."
claude

方式2:Claude.ai 账号(Pro/Max 订阅)

claude  # 首次运行会打开浏览器,用 Claude.ai 账号授权

适合已有 Claude 订阅、不想单独管理 API Key 的用户。

方式3:Amazon Bedrock / Google Vertex AI

export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
claude

适合企业用户,代码不经过 Anthropic 服务器,满足数据主权要求。

CLAUDE.md:让 Claude Code 了解你的项目

在项目根目录创建 CLAUDE.md,Claude Code 每次启动时会读取它,相当于 Claude Code 版的 .cursorrules:

# 项目:电商后台管理系统

## 技术栈
- 后端:Python 3.12 + FastAPI + SQLAlchemy 2.0
- 数据库:PostgreSQL 16(主)+ Redis 7(缓存)
- 测试:pytest + pytest-asyncio

## 目录结构
- src/api/ — FastAPI 路由
- src/models/ — SQLAlchemy 数据模型
- src/services/ — 业务逻辑
- src/tests/ — 测试文件

## 开发规范
- 所有数据库操作必须在 services/ 层,不在 api/ 层
- 新功能必须有对应的 pytest 测试
- 提交前运行 ruff check . 和 pytest

## 常用命令
- 启动开发服务器:uvicorn src.main:app --reload
- 运行测试:pytest src/tests/ -v
- 数据库迁移:alembic upgrade head

## 注意事项
- src/config.py 里有数据库连接配置,不要硬编码
- 生产数据库用 DATABASE_URL 环境变量

实战案例:MongoDB 迁移到 PostgreSQL(3阶段)

这是一个真实场景:把 150 个 API 端点从 MongoDB 迁移到 PostgreSQL,预计手工需要 2-3 周,Claude Code 用了 3 天。

Phase 1:分析现有代码

claude> 分析 src/ 目录下所有 Python 文件,找出所有 MongoDB 操作(pymongo 和 mongoengine),
生成一个报告:每个文件里有哪些 collection 操作,分别在哪几行

Claude Code 读取所有文件,生成了一份详细的迁移清单,包括 24 个 collection、150+ 个查询操作的列表。

Phase 2:生成 PostgreSQL Schema 和迁移脚本

claude> 根据刚才分析的 MongoDB Schema,设计等价的 PostgreSQL 数据库 Schema。
要求:
1. 使用 SQLAlchemy 2.0 的 mapped_column 语法
2. 保留原有的字段名,调整数据类型(ObjectId → UUID,nested doc → JSONB)
3. 生成 Alembic 迁移文件
4. 生成数据迁移脚本,把 MongoDB 数据导入 PostgreSQL

Phase 3:更新 API 层

claude> @src/api/products.py 把这个文件里的所有 MongoDB 查询替换为 SQLAlchemy 查询。
参考 @src/models/product.py 里的新 Schema。
替换完成后运行 pytest src/tests/test_products.py 确认测试通过。

Claude Code 修改文件,自动运行测试,如果失败会自动分析错误并修复。

.claudeignore:控制 Claude Code 能访问哪些文件

# .claudeignore
.env
.env.*
secrets/
*.pem
*.key
node_modules/
dist/
build/

Claude Code 会跳过这些文件和目录,防止意外读取密钥或修改构建产物。

成本参考

任务类型 大约成本 说明
单文件审查 $0.01–0.05 使用 Haiku 模型
中型功能实现(5-10个文件) $0.10–0.50 使用 Sonnet 模型
大型迁移(100+ 文件) $2–10 使用 Sonnet,多轮对话
完整项目分析 $5–20 取决于代码库大小

使用 claude --model claude-haiku-4-5 切换到更便宜的模型处理简单任务。

本章要点

  1. Claude Code 是 Agent,Cursor 是辅助工具:前者自主执行多步任务,后者需要你逐步确认。两者互补。
  2. CLAUDE.md 是 Agent 的上下文基础:越详细,Claude Code 的输出越符合你的项目规范。
  3. 3种认证方式满足不同需求:个人用 API Key,订阅用户用 Claude.ai 授权,企业用 Bedrock/Vertex。
  4. 大型迁移任务是 Claude Code 的主场:数据库迁移、API 改造、批量重构——这类任务手工极其耗时,Claude Code 可以在几小时内完成。
  5. 用 .claudeignore 保护敏感文件:永远不要让 AI 访问密钥文件、生产配置、或者你不想让它修改的构建产物。
本章评分
4.5  / 5  (66 评分)

💬 留言讨论