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