mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-07-31 04:37:45 +00:00
471 lines
8.9 KiB
Markdown
471 lines
8.9 KiB
Markdown
|
|
---
|
|||
|
|
name: claude-code-guide
|
|||
|
|
description: Claude Code 高级开发指南 - 全面的中文教程,涵盖工具使用、REPL 环境、开发工作流、MCP 集成、高级模式和最佳实践。适合学习 Claude Code 的高级功能和开发技巧。
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Claude Code 高级开发指南
|
|||
|
|
|
|||
|
|
全面的 Claude Code 中文学习指南,涵盖从基础到高级的所有核心概念、工具使用、开发工作流和最佳实践。
|
|||
|
|
|
|||
|
|
## 何时使用此技能
|
|||
|
|
|
|||
|
|
当需要以下帮助时使用此技能:
|
|||
|
|
- 学习 Claude Code 的核心功能和工具
|
|||
|
|
- 掌握 REPL 环境的高级用法
|
|||
|
|
- 理解开发工作流和任务管理
|
|||
|
|
- 使用 MCP 集成外部系统
|
|||
|
|
- 实现高级开发模式
|
|||
|
|
- 应用 Claude Code 最佳实践
|
|||
|
|
- 解决常见问题和错误
|
|||
|
|
- 进行大文件分析和处理
|
|||
|
|
|
|||
|
|
## 快速参考
|
|||
|
|
|
|||
|
|
### Claude Code 核心工具(7个)
|
|||
|
|
|
|||
|
|
1. **REPL** - JavaScript 运行时环境
|
|||
|
|
- 完整的 ES6+ 支持
|
|||
|
|
- 预加载库:D3.js, MathJS, Lodash, Papaparse, SheetJS
|
|||
|
|
- 支持 async/await, BigInt, WebAssembly
|
|||
|
|
- 文件读取:`window.fs.readFile()`
|
|||
|
|
|
|||
|
|
2. **Artifacts** - 可视化输出
|
|||
|
|
- React, Three.js, 图表库
|
|||
|
|
- HTML/SVG 渲染
|
|||
|
|
- 交互式组件
|
|||
|
|
|
|||
|
|
3. **Web Search** - 网络搜索
|
|||
|
|
- 仅美国可用
|
|||
|
|
- 域名过滤支持
|
|||
|
|
|
|||
|
|
4. **Web Fetch** - 获取网页内容
|
|||
|
|
- HTML 转 Markdown
|
|||
|
|
- 内容提取和分析
|
|||
|
|
|
|||
|
|
5. **Conversation Search** - 对话搜索
|
|||
|
|
- 搜索历史对话
|
|||
|
|
- 上下文检索
|
|||
|
|
|
|||
|
|
6. **Recent Chats** - 最近对话
|
|||
|
|
- 访问最近会话
|
|||
|
|
- 对话历史
|
|||
|
|
|
|||
|
|
7. **End Conversation** - 结束对话
|
|||
|
|
- 清理和总结
|
|||
|
|
- 会话管理
|
|||
|
|
|
|||
|
|
### 大文件分析工作流
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 阶段 1:定量评估
|
|||
|
|
wc -l filename.md # 行数统计
|
|||
|
|
wc -w filename.md # 词数统计
|
|||
|
|
wc -c filename.md # 字符数统计
|
|||
|
|
|
|||
|
|
# 阶段 2:结构分析
|
|||
|
|
grep "^#{1,6} " filename.md # 提取标题层次
|
|||
|
|
grep "```" filename.md # 识别代码块
|
|||
|
|
grep -c "keyword" filename.md # 关键词频率
|
|||
|
|
|
|||
|
|
# 阶段 3:内容提取
|
|||
|
|
Read filename.md offset=0 limit=50 # 文件开头
|
|||
|
|
Read filename.md offset=N limit=100 # 目标部分
|
|||
|
|
Read filename.md offset=-50 limit=50 # 文件结尾
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### REPL 高级用法
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 数据处理
|
|||
|
|
const data = [1, 2, 3, 4, 5];
|
|||
|
|
const sum = data.reduce((a, b) => a + b, 0);
|
|||
|
|
|
|||
|
|
// 使用预加载库
|
|||
|
|
// Lodash
|
|||
|
|
_.chunk([1, 2, 3, 4], 2); // [[1,2], [3,4]]
|
|||
|
|
|
|||
|
|
// MathJS
|
|||
|
|
math.sqrt(16); // 4
|
|||
|
|
|
|||
|
|
// D3.js
|
|||
|
|
d3.range(10); // [0,1,2,3,4,5,6,7,8,9]
|
|||
|
|
|
|||
|
|
// 读取文件
|
|||
|
|
const content = await window.fs.readFile('path/to/file');
|
|||
|
|
|
|||
|
|
// 异步操作
|
|||
|
|
const result = await fetch('https://api.example.com/data');
|
|||
|
|
const json = await result.json();
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 斜杠命令系统
|
|||
|
|
|
|||
|
|
**内置命令:**
|
|||
|
|
- `/help` - 显示帮助
|
|||
|
|
- `/clear` - 清除对话
|
|||
|
|
- `/plugin` - 管理插件
|
|||
|
|
- `/settings` - 配置设置
|
|||
|
|
|
|||
|
|
**自定义命令:**
|
|||
|
|
创建 `.claude/commands/mycommand.md`:
|
|||
|
|
```markdown
|
|||
|
|
根据需求执行特定任务的指令
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
使用:`/mycommand`
|
|||
|
|
|
|||
|
|
### 开发工作流模式
|
|||
|
|
|
|||
|
|
#### 1. 文件分析工作流
|
|||
|
|
```bash
|
|||
|
|
# 探索 → 理解 → 实现
|
|||
|
|
ls -la # 列出文件
|
|||
|
|
Read file.py # 读取内容
|
|||
|
|
grep "function" file.py # 搜索模式
|
|||
|
|
# 然后实现修改
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 2. 算法验证工作流
|
|||
|
|
```bash
|
|||
|
|
# 设计 → 验证 → 实现
|
|||
|
|
# 1. 在 REPL 中测试逻辑
|
|||
|
|
# 2. 验证边界情况
|
|||
|
|
# 3. 实现到代码
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
#### 3. 数据探索工作流
|
|||
|
|
```bash
|
|||
|
|
# 检查 → 分析 → 可视化
|
|||
|
|
# 1. 读取数据文件
|
|||
|
|
# 2. REPL 中分析
|
|||
|
|
# 3. Artifacts 可视化
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 核心概念
|
|||
|
|
|
|||
|
|
### 工具权限系统
|
|||
|
|
|
|||
|
|
**自动授予权限的工具:**
|
|||
|
|
- REPL
|
|||
|
|
- Artifacts
|
|||
|
|
- Web Search/Fetch
|
|||
|
|
- Conversation Search
|
|||
|
|
|
|||
|
|
**需要授权的工具:**
|
|||
|
|
- Bash (读/写文件系统)
|
|||
|
|
- Edit (修改文件)
|
|||
|
|
- Write (创建文件)
|
|||
|
|
|
|||
|
|
### 项目上下文
|
|||
|
|
|
|||
|
|
Claude 自动识别:
|
|||
|
|
- Git 仓库状态
|
|||
|
|
- 编程语言(从文件扩展名)
|
|||
|
|
- 项目结构
|
|||
|
|
- 依赖配置
|
|||
|
|
|
|||
|
|
### 内存系统
|
|||
|
|
|
|||
|
|
**对话内存:**
|
|||
|
|
- 存储在当前会话
|
|||
|
|
- 200K token 窗口
|
|||
|
|
- 自动上下文管理
|
|||
|
|
|
|||
|
|
**持久内存(实验性):**
|
|||
|
|
- 跨会话保存
|
|||
|
|
- 用户偏好记忆
|
|||
|
|
- 项目上下文保留
|
|||
|
|
|
|||
|
|
## MCP 集成
|
|||
|
|
|
|||
|
|
### 什么是 MCP?
|
|||
|
|
|
|||
|
|
Model Context Protocol - 连接 Claude 到外部系统的协议。
|
|||
|
|
|
|||
|
|
### MCP 服务器配置
|
|||
|
|
|
|||
|
|
配置文件:`~/.config/claude/mcp_config.json`
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"mcpServers": {
|
|||
|
|
"my-server": {
|
|||
|
|
"command": "node",
|
|||
|
|
"args": ["path/to/server.js"],
|
|||
|
|
"env": {
|
|||
|
|
"API_KEY": "your-key"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 使用 MCP 工具
|
|||
|
|
|
|||
|
|
Claude 会自动发现 MCP 工具并在对话中使用:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
"使用 my-server 工具获取数据"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 钩子系统
|
|||
|
|
|
|||
|
|
### 钩子类型
|
|||
|
|
|
|||
|
|
在 `.claude/settings.json` 配置:
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"hooks": {
|
|||
|
|
"tool-pre-use": "echo 'About to use tool'",
|
|||
|
|
"tool-post-use": "echo 'Tool used'",
|
|||
|
|
"user-prompt-submit": "echo 'Processing prompt'"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 常见钩子用途
|
|||
|
|
|
|||
|
|
- 自动格式化代码
|
|||
|
|
- 运行测试
|
|||
|
|
- Git 提交检查
|
|||
|
|
- 日志记录
|
|||
|
|
- 通知发送
|
|||
|
|
|
|||
|
|
## 高级模式
|
|||
|
|
|
|||
|
|
### 多代理协作
|
|||
|
|
|
|||
|
|
使用 Task 工具启动子代理:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
"启动一个专门的代理来优化这个算法"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
子代理特点:
|
|||
|
|
- 独立上下文
|
|||
|
|
- 专注单一任务
|
|||
|
|
- 返回结果到主代理
|
|||
|
|
|
|||
|
|
### 智能任务管理
|
|||
|
|
|
|||
|
|
使用 TodoWrite 工具:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
"创建任务列表来跟踪这个项目"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
任务状态:
|
|||
|
|
- `pending` - 待处理
|
|||
|
|
- `in_progress` - 进行中
|
|||
|
|
- `completed` - 已完成
|
|||
|
|
|
|||
|
|
### 代码生成模式
|
|||
|
|
|
|||
|
|
**渐进式开发:**
|
|||
|
|
1. 生成基础结构
|
|||
|
|
2. 添加核心功能
|
|||
|
|
3. 实现细节
|
|||
|
|
4. 测试和优化
|
|||
|
|
|
|||
|
|
**验证驱动:**
|
|||
|
|
1. 写测试用例
|
|||
|
|
2. 实现功能
|
|||
|
|
3. 运行测试
|
|||
|
|
4. 修复问题
|
|||
|
|
|
|||
|
|
## 质量保证
|
|||
|
|
|
|||
|
|
### 自动化测试
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 运行测试
|
|||
|
|
npm test
|
|||
|
|
pytest
|
|||
|
|
|
|||
|
|
# 类型检查
|
|||
|
|
mypy script.py
|
|||
|
|
tsc --noEmit
|
|||
|
|
|
|||
|
|
# 代码检查
|
|||
|
|
eslint src/
|
|||
|
|
flake8 .
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 代码审查模式
|
|||
|
|
|
|||
|
|
使用子代理进行审查:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
"启动代码审查代理检查这个文件"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
审查重点:
|
|||
|
|
- 代码质量
|
|||
|
|
- 安全问题
|
|||
|
|
- 性能优化
|
|||
|
|
- 最佳实践
|
|||
|
|
|
|||
|
|
## 错误恢复
|
|||
|
|
|
|||
|
|
### 常见错误模式
|
|||
|
|
|
|||
|
|
1. **工具使用错误**
|
|||
|
|
- 检查权限
|
|||
|
|
- 验证语法
|
|||
|
|
- 确认路径
|
|||
|
|
|
|||
|
|
2. **文件操作错误**
|
|||
|
|
- 确认文件存在
|
|||
|
|
- 检查读写权限
|
|||
|
|
- 验证路径正确
|
|||
|
|
|
|||
|
|
3. **API 调用错误**
|
|||
|
|
- 检查网络连接
|
|||
|
|
- 验证 API 密钥
|
|||
|
|
- 确认请求格式
|
|||
|
|
|
|||
|
|
### 渐进式修复策略
|
|||
|
|
|
|||
|
|
1. 隔离问题
|
|||
|
|
2. 最小化复现
|
|||
|
|
3. 逐步修复
|
|||
|
|
4. 验证解决方案
|
|||
|
|
|
|||
|
|
## 最佳实践
|
|||
|
|
|
|||
|
|
### 开发原则
|
|||
|
|
|
|||
|
|
1. **清晰优先** - 明确需求和目标
|
|||
|
|
2. **渐进实现** - 分步骤开发
|
|||
|
|
3. **持续验证** - 频繁测试
|
|||
|
|
4. **适当抽象** - 合理模块化
|
|||
|
|
|
|||
|
|
### 工具使用原则
|
|||
|
|
|
|||
|
|
1. **正确的工具** - 选择合适的工具
|
|||
|
|
2. **工具组合** - 多工具协同
|
|||
|
|
3. **权限最小化** - 只请求必要权限
|
|||
|
|
4. **错误处理** - 优雅处理失败
|
|||
|
|
|
|||
|
|
### 性能优化
|
|||
|
|
|
|||
|
|
1. **批量操作** - 合并多个操作
|
|||
|
|
2. **增量处理** - 处理大文件
|
|||
|
|
3. **缓存结果** - 避免重复计算
|
|||
|
|
4. **异步优先** - 使用 async/await
|
|||
|
|
|
|||
|
|
## 安全考虑
|
|||
|
|
|
|||
|
|
### 沙箱模型
|
|||
|
|
|
|||
|
|
每个工具在隔离环境中运行:
|
|||
|
|
- REPL:无文件系统访问
|
|||
|
|
- Bash:需要明确授权
|
|||
|
|
- Web:仅特定域名
|
|||
|
|
|
|||
|
|
### 最佳安全实践
|
|||
|
|
|
|||
|
|
1. **最小权限** - 仅授予必要权限
|
|||
|
|
2. **代码审查** - 检查生成的代码
|
|||
|
|
3. **敏感数据** - 不要共享密钥
|
|||
|
|
4. **定期审计** - 检查钩子和配置
|
|||
|
|
|
|||
|
|
## 故障排除
|
|||
|
|
|
|||
|
|
### 工具无法使用
|
|||
|
|
|
|||
|
|
**症状:** 工具调用失败
|
|||
|
|
|
|||
|
|
**解决方案:**
|
|||
|
|
- 检查权限设置
|
|||
|
|
- 验证语法正确
|
|||
|
|
- 确认文件路径
|
|||
|
|
- 查看错误消息
|
|||
|
|
|
|||
|
|
### REPL 性能问题
|
|||
|
|
|
|||
|
|
**症状:** REPL 执行缓慢
|
|||
|
|
|
|||
|
|
**解决方案:**
|
|||
|
|
- 减少数据量
|
|||
|
|
- 使用流式处理
|
|||
|
|
- 优化算法
|
|||
|
|
- 分批处理
|
|||
|
|
|
|||
|
|
### MCP 连接失败
|
|||
|
|
|
|||
|
|
**症状:** MCP 服务器无响应
|
|||
|
|
|
|||
|
|
**解决方案:**
|
|||
|
|
- 检查配置文件
|
|||
|
|
- 验证服务器运行
|
|||
|
|
- 确认环境变量
|
|||
|
|
- 查看服务器日志
|
|||
|
|
|
|||
|
|
## 实用示例
|
|||
|
|
|
|||
|
|
### 示例 1:数据分析
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// 在 REPL 中
|
|||
|
|
const data = await window.fs.readFile('data.csv');
|
|||
|
|
const parsed = Papa.parse(data, { header: true });
|
|||
|
|
const values = parsed.data.map(row => parseFloat(row.value));
|
|||
|
|
const avg = _.mean(values);
|
|||
|
|
const std = math.std(values);
|
|||
|
|
console.log(`平均值: ${avg}, 标准差: ${std}`);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 示例 2:文件搜索
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 在 Bash 中
|
|||
|
|
grep -r "TODO" src/
|
|||
|
|
find . -name "*.py" -type f
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 示例 3:网络数据获取
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
"使用 web_fetch 获取 https://api.example.com/data 的内容,
|
|||
|
|
然后在 REPL 中分析 JSON 数据"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 参考文件
|
|||
|
|
|
|||
|
|
此技能包含详细文档:
|
|||
|
|
|
|||
|
|
- **README.md** (9,594 行) - 完整的 Claude Code 高级指南
|
|||
|
|
|
|||
|
|
包含以下主题:
|
|||
|
|
- 核心工具深度解析
|
|||
|
|
- REPL 高级协同模式
|
|||
|
|
- 开发工作流详解
|
|||
|
|
- MCP 集成完整指南
|
|||
|
|
- 钩子系统配置
|
|||
|
|
- 高级模式和最佳实践
|
|||
|
|
- 故障排除和安全考虑
|
|||
|
|
|
|||
|
|
使用 `view` 命令查看参考文件获取详细信息。
|
|||
|
|
|
|||
|
|
## 资源
|
|||
|
|
|
|||
|
|
- **GitHub 仓库**: https://github.com/karminski/claude-code-guide-study
|
|||
|
|
- **原始版本**: https://github.com/Cranot/claude-code-guide
|
|||
|
|
- **Anthropic 官方文档**: https://docs.claude.com
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
本指南结合了:
|
|||
|
|
- 官方功能和公告
|
|||
|
|
- 实际使用观察到的模式
|
|||
|
|
- 概念性方法和最佳实践
|
|||
|
|
- 第三方工具集成
|
|||
|
|
|
|||
|
|
请在使用时参考最新的官方文档。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**使用这个技能深入掌握 Claude Code 的强大功能!**
|