Codecc.dev
返回博客列表
进阶教程

Claude Code 高级技巧与最佳实践:从入门到精通

CodeCC Team
·
·
约 19 分钟阅读
#claude-code #高级技巧 #最佳实践 #codecc

如果你已经掌握了 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 行文档

正确做法:

  1. 写一个简洁的 Bash 包装脚本
  2. 为包装脚本写 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. 阶段 1: 规划
帮我规划重构 auth 模块的任务,将计划写入 docs/refactor-plan.md
  1. 阶段 2: 执行前半部分
按照 docs/refactor-plan.md 的第 1-3 步执行,
完成后更新进度到 docs/refactor-progress.md
  1. 清空上下文
/clear
  1. 阶段 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 自主工作,而不是手把手指导

下一步学习

欢迎访问 CodeCC 官网 体验官方直连服务!