Claude Code 高级技巧与最佳实践:从入门到精通
如果你已经掌握了 Claude Code 的基础使用,本文将带你进入更深层次,学习如何将 CodeCC 的官方直连服务发挥到极致。这些技巧来自真实的开发实践,能帮助你将开发效率提升 10 倍以上。
核心理念: 发射后不管
使用 Claude Code 的最高境界是 “发射后不管”(Fire and Forget):
- ❌ 不要: 手把手指导每一步,频繁介入
- ✅ 正确: 交代清楚任务,设好上下文,让 AI 自主完成
评价标准: 看最终的 Pull Request 质量,而不是关注它是怎么写出来的。
第一部分: CLAUDE.md - AI 的宪法
1.1 什么是 CLAUDE.md?
CLAUDE.md 是项目根目录的特殊文件,Claude Code 会自动读取它来理解你的项目规范。可以把它看作 AI 的宪法。
1.2 编写原则
❌ 错误示范: 写成大而全的手册
# CLAUDE.md
## React 组件完整指南 (5000字)
### 什么是组件?
组件是 React 的核心概念...
### 如何创建组件?
第一步: 创建文件...
第二步: 导入 React...
...
问题:
- 消耗大量 token
- Claude 找不到重点
- 维护困难
✅ 正确示范: 简洁的护栏和指引
# 项目开发指南
## 技术栈
- React 18 + TypeScript
- Vite + TailwindCSS
## 编码规范
- 使用函数式组件和 Hooks
- 文件名: PascalCase (组件) / camelCase (工具)
- 禁止使用 any 类型,改用 unknown 或具体类型
## 测试要求
- 运行测试: `npm test`
- 覆盖率 > 80%
## 遇到复杂用法或 TypeScript 错误时
参考 docs/typescript-guide.md 的高级故障排除
优势:
- 只记录最重要的 20% 规则
- 提供明确的问题解决路径
- 容易维护和更新
1.3 实用技巧
技巧 1: 从护栏开始,不是说明书
只在 Claude 容易出错的地方加说明:
## 禁止事项
- ❌ 不要使用 `dangerouslySetInnerHTML`
改用: DOMPurify.sanitize() 后再渲染
- ❌ 不要直接修改 state
改用: setState() 或 useReducer
- ❌ 不要在循环中使用 Hooks
改用: 提取到独立组件
技巧 2: 别用 @ 引用长文档
不好的做法:
详细文档见 @docs/api-reference.md (10000 行)
Claude 会把整个文件塞进上下文,非常臃肿。
正确做法:
## API 使用
- 基础用法: 见本文档
- 遇到复杂错误或高级用法时,参考 docs/api-reference.md 的故障排除章节
推销这个文件的价值,告诉 Claude 何时该读。
技巧 3: 永远提供替代方案
不好的做法:
- 永远不要用 --force 标志
正确做法:
- 禁止用 `git push --force` 到主分支
改用: `git push --force-with-lease` 到 feature 分支
或者: 创建新分支重新提交
技巧 4: 用 CLAUDE.md 倒逼代码优化
如果你发现 CLAUDE.md 越写越长,说明你的工具设计有问题。
反模式: 为复杂的 CLI 工具写 500 行文档
正确做法:
- 写一个简洁的 Bash 包装脚本
- 为包装脚本写 5 行文档
# scripts/deploy.sh - 简化的部署脚本
#!/bin/bash
# Usage: ./scripts/deploy.sh <env> <version>
npm run build
docker build -t myapp:$2 .
kubectl apply -f k8s/$1/
## 部署
运行: `./scripts/deploy.sh <env> <version>`
示例: `./scripts/deploy.sh staging v1.2.3`
1.4 完整示例模板
# 项目开发指南
## 技术栈
- 后端: Node.js + Express + PostgreSQL
- 前端: React 18 + TypeScript + TailwindCSS
- 测试: Vitest + Supertest
## 项目结构
src/ api/ # API 路由 services/ # 业务逻辑 models/ # 数据模型 utils/ # 工具函数
## 编码规范
- 所有函数必须有 TypeScript 类型注解
- 导入顺序: Node 内置 → 第三方库 → 本地模块
- 错误处理: 使用自定义 AppError 类,不要用 throw new Error()
## 数据库操作
- 使用 Prisma ORM,禁止原始 SQL
- 迁移: `npm run db:migrate`
- 种子数据: `npm run db:seed`
## 测试
- 运行测试: `npm test`
- 覆盖率报告: `npm run test:coverage`
- 要求: 单元测试覆盖率 > 80%, API 集成测试 100%
## API 规范
- RESTful 风格: GET /users, POST /users, PUT /users/:id
- 统一响应格式: `{ success: true, data: {...} }`
- 错误格式: `{ success: false, error: { code, message } }`
## Git 规范
- 提交信息: `feat:` / `fix:` / `refactor:` / `test:` / `docs:`
- 分支命名: `feature/user-auth`, `fix/login-bug`
- 提交前必须通过测试: `npm test`
## 遇到问题时
- 构建错误: 参考 docs/build-troubleshooting.md
- 数据库错误: 参考 docs/database-guide.md
- TypeScript 类型问题: 参考 docs/typescript-advanced.md
## 禁止事项
- ❌ 不要提交 .env 文件,改用 .env.example
- ❌ 不要绕过 ESLint,改用 // eslint-disable-next-line with reason
- ❌ 不要硬编码配置,改用环境变量
## 部署
- 开发环境: `npm run dev`
- 生产构建: `npm run build`
- 生产部署: `./scripts/deploy.sh production <version>`
第二部分: 上下文管理策略
2.1 理解上下文窗口
CodeCC 官方直连提供 200k+ tokens 的上下文窗口,但不代表你应该用满它。
想象成磁盘空间:
- 初始开销: ~20k tokens (10%)
- 可用空间: ~180k tokens (90%)
- 工作一段时间后,需要”清理”才能继续
2.2 检查上下文使用情况
经常运行:
/context
输出示例:
📊 上下文使用情况
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
已使用: 45,234 tokens (22.6%)
剩余: 154,766 tokens (77.4%)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
详细分配:
- 系统提示: 12,456 tokens
- CLAUDE.md: 3,789 tokens
- 对话历史: 18,234 tokens
- 代码上下文: 10,755 tokens
2.3 三种上下文管理策略
策略 1: /compact (不推荐 ❌)
自动压缩对话历史。
问题:
- 不透明,无法控制压缩结果
- 容易丢失重要信息
- 压缩质量不稳定
建议: 避免使用。
策略 2: /clear + /catchup (推荐 ✅)
清空上下文,然后让 Claude 读取最新改动。
使用场景: 简单任务重启
# 在会话中
/clear
# 然后
帮我读取当前 git 分支的所有改动,继续优化性能
或创建自定义斜杠命令 .claude/commands/catchup.md:
读取当前 git 分支相对于 main 的所有改动,总结主要变更
使用:
/clear
/catchup
策略 3: 文档化后清空 (复杂任务推荐 ✅)
大型任务分阶段执行,使用文档作为外部记忆。
工作流:
- 阶段 1: 规划
帮我规划重构 auth 模块的任务,将计划写入 docs/refactor-plan.md
- 阶段 2: 执行前半部分
按照 docs/refactor-plan.md 的第 1-3 步执行,
完成后更新进度到 docs/refactor-progress.md
- 清空上下文
/clear
- 阶段 3: 继续执行
读取 docs/refactor-plan.md 和 docs/refactor-progress.md,
继续执行第 4-6 步
优势:
- 上下文保持清爽
- 进度可追溯
- 可随时中断和恢复
第三部分: 自定义斜杠命令
3.1 何时使用斜杠命令
斜杠命令 = 常用提示词的快捷方式
应该使用 ✅:
- 每天重复 10+ 次的操作
- 个人工作流的快捷入口
不应该使用 ❌:
- 替代
CLAUDE.md(应该用文档) - 创建复杂的命令序列 (应该优化工具)
3.2 实用斜杠命令示例
命令 1: /catchup - 同步 Git 改动
.claude/commands/catchup.md:
读取当前 git 分支相对于 main 分支的所有改动,
总结主要变更并显示文件列表。
使用:
/clear
/catchup
继续优化性能
命令 2: /pr - 准备 Pull Request
.claude/commands/pr.md:
准备创建 Pull Request,执行以下步骤:
1. 运行代码格式化: `npm run format`
2. 运行 Linter: `npm run lint`
3. 运行所有测试: `npm test`
4. 检查 git diff,确认无意外改动
5. 生成 commit message (使用 conventional commits 规范)
6. 询问我是否确认提交
如果有任何错误,先修复再继续。
使用:
/pr
命令 3: /review - 代码审查
.claude/commands/review.md:
审查当前改动的代码质量,检查:
1. **类型安全**: 是否有 any 类型或类型断言?
2. **错误处理**: 是否妥善处理所有错误场景?
3. **性能**: 是否有 N+1 查询、不必要的重渲染?
4. **安全**: 是否有 XSS、SQL 注入等漏洞?
5. **测试**: 关键逻辑是否有测试覆盖?
6. **可读性**: 命名是否清晰、逻辑是否易懂?
给出具体改进建议和示例代码。
命令 4: /optimize - 性能优化
.claude/commands/optimize.md:
分析当前代码的性能瓶颈,重点关注:
1. 数据库查询优化 (N+1、索引)
2. 前端性能 (bundle 大小、lazy loading)
3. 内存泄漏风险
4. 不必要的重复计算
提供优化方案和预期性能提升。
3.3 团队共享斜杠命令
团队统一的命令放在项目根目录:
.claude/
commands/
catchup.md # 个人命令
pr.md # 个人命令
team/
review.md # 团队命令
deploy.md # 团队命令
test.md # 团队命令
第四部分: 钩子 (Hooks) 配置
4.1 什么是钩子?
钩子是确定性的强制规则,在特定操作前后自动执行。
对比:
CLAUDE.md: “应该这样做” (建议)- Hooks: “必须这样做” (强制)
4.2 钩子类型
类型 1: 提交时阻塞 (推荐 ✅)
在 git commit 前强制检查。
配置 .claude/hooks/pre-commit.sh:
#!/bin/bash
echo "🔍 Running pre-commit checks..."
# 运行测试
npm test
if [ $? -ne 0 ]; then
echo "❌ Tests failed! Commit blocked."
exit 1
fi
# 运行 Linter
npm run lint
if [ $? -ne 0 ]; then
echo "❌ Linting failed! Commit blocked."
exit 1
fi
# 检查类型
npm run typecheck
if [ $? -ne 0 ]; then
echo "❌ Type check failed! Commit blocked."
exit 1
fi
echo "✅ All checks passed!"
exit 0
在 .claude/settings.json 中启用:
{
"hooks": {
"preToolUse": {
"bash": [
{
"pattern": "git commit",
"script": ".claude/hooks/pre-commit.sh"
}
]
}
}
}
效果: Claude 尝试 commit 时,自动运行检查,失败则阻止提交。
类型 2: 提示型钩子
非阻塞,只提供反馈。
配置 .claude/hooks/hint-large-files.sh:
#!/bin/bash
large_files=$(find . -type f -size +1M -not -path "./node_modules/*")
if [ -n "$large_files" ]; then
echo "⚠️ Warning: Found large files (>1MB):"
echo "$large_files"
echo "Consider using Git LFS or .gitignore"
fi
exit 0 # 不阻塞
类型 3: 写入时阻塞 (不推荐 ❌)
在 Edit/Write 操作时阻塞。
问题:
- 中途打断 Claude 会让它困惑
- 破坏工作流连贯性
正确做法: 让 Claude 完成工作,提交时再检查。
4.3 实战钩子示例
示例 1: 强制测试通过
{
"hooks": {
"preToolUse": {
"bash": [
{
"pattern": "git commit",
"script": "npm test && touch /tmp/tests-passed || exit 1"
}
]
}
}
}
示例 2: 防止提交敏感文件
#!/bin/bash
# .claude/hooks/check-secrets.sh
secrets=$(git diff --cached --name-only | grep -E '\.(env|key|pem|p12)$')
if [ -n "$secrets" ]; then
echo "❌ Attempting to commit sensitive files:"
echo "$secrets"
echo "Please add them to .gitignore"
exit 1
fi
exit 0
示例 3: 自动格式化代码
#!/bin/bash
# .claude/hooks/auto-format.sh
echo "🎨 Auto-formatting code..."
npm run format
# 重新暂存格式化后的文件
git add -u
echo "✅ Code formatted"
exit 0
第五部分: 规划模式最佳实践
5.1 何时使用规划模式?
必须使用 ✅:
- 影响 3+ 文件的功能变更
- 架构级别的重构
- 不确定实现路径的新功能
可以不用 ❌:
- 修复单个文件的 bug
- 添加简单的工具函数
5.2 如何写好规划提示?
❌ 不好的提示
帮我添加用户认证功能
问题: 太模糊,Claude 需要猜测需求。
✅ 好的提示
设计并实现用户认证功能,要求:
**功能需求**:
1. 支持邮箱+密码注册/登录
2. JWT token 认证
3. 密码加密存储 (bcrypt)
4. 登录状态持久化 (7天)
**技术约束**:
- 使用现有的 PostgreSQL 数据库
- 后端: Express + Prisma
- 前端: React Context 管理登录状态
**安全要求**:
- 密码强度验证 (8+ 字符,含数字和特殊字符)
- 防止暴力破解 (失败 5 次锁定 15 分钟)
- CSRF protection
**测试要求**:
- 单元测试: 密码加密/验证逻辑
- 集成测试: 注册/登录 API 端点
- E2E 测试: 完整的注册-登录-退出流程
请先规划实现步骤,包括数据库 schema、API 设计、前端状态管理方案。
5.3 规划审查检查清单
规划完成后,审查:
- ✅ 是否考虑了错误处理?
- ✅ 是否包含测试策略?
- ✅ 是否定义了数据结构?
- ✅ 是否有性能考虑?
- ✅ 是否有安全检查?
- ✅ 实现步骤是否清晰可执行?
第六部分: CodeCC 特有优化技巧
6.1 利用官方直连的长上下文
CodeCC 官方直连提供完整的长上下文支持:
适合的任务:
帮我重构这个 50 个文件的 Express 项目:
1. 从 JavaScript 迁移到 TypeScript
2. 统一错误处理机制
3. 添加完整的类型定义
4. 所有测试保持通过
Claude 能同时理解所有文件,保持一致性。
低价渠道无法做到的:
- 上下文被限制到 4k-8k tokens
- 无法理解大型项目结构
- 跨文件修改容易出错
6.2 使用最新模型的高级功能
CodeCC 同步官方最新模型:
Sonnet 4.5 的思维链
使用思维链分析这个性能问题:
<详细描述问题>
要求:
1. 展示分析过程
2. 列出可能的原因
3. 排除法找到根因
4. 提供验证方案
Opus 4.5 的复杂推理
设计一个分布式任务队列系统,要求:
- 支持优先级调度
- 故障自动重试
- 可水平扩展
- 任务持久化
给出完整的架构设计,包括:
1. 系统组件图
2. 数据流设计
3. 容错机制
4. 性能优化方案
6.3 多模型协作策略
根据任务类型选择模型:
| 任务类型 | 推荐模型 | 原因 |
|---|---|---|
| 简单 bug 修复 | Haiku | 快速、低成本 |
| 日常开发 | Sonnet 4.5 | 平衡性能和成本 |
| 架构设计 | Opus 4.5 | 最强推理能力 |
| 代码审查 | Sonnet 4.5 | 擅长发现问题 |
总结
通过本文,你已经掌握了:
- ✅ 如何编写高效的
CLAUDE.md - ✅ 三种上下文管理策略
- ✅ 自定义斜杠命令的最佳实践
- ✅ 钩子配置和使用技巧
- ✅ 规划模式的正确用法
- ✅ CodeCC 官方直连的独特优势
这些技巧能帮助你将开发效率提升 10 倍,但记住:真正的效率来自于让 AI 自主工作,而不是手把手指导。
下一步学习
- 📖 Claude Code 快速入门指南 - 基础使用
- ⚙️ 如何配置 CodeCC 中转服务 - 完整配置
- 👥 团队协作中使用 Claude Code - 团队最佳实践
欢迎访问 CodeCC 官网 体验官方直连服务!