——让 AI 成为真正懂你的编程伙伴
“工欲善其事,必先利其器。但真正的利器不是工具本身,而是你与工具之间的默契。”
—— 来自 10 个月深度使用 Claude Code 的开发者

- 前言:为什么要学高级用法?
- 第一章:CLAUDE.md —— 给 AI 注入项目”灵魂”
- 第二章:Hooks —— 让 Claude 自动遵守你的规则
- 第三章:Skills —— 打造你的专属 AI 技能库
- 第四章:MCP —— 连接外部世界的桥梁
- 第五章:上下文管理 —— 让 Claude 记住重要的事
- 第六章:高级命令与工作流
- 第七章:大佬实战经验分享
- 第八章:常见问题与避坑指南
Claude Code 不只是一个代码补全工具,它是一个系统级 AI Agent。如果你只用它来写代码片段,就像买了辆跑车只用来买菜。
这篇文档能帮你做到什么
💡 核心洞察:Claude Code 的真正威力不在于”完全自动化”,而在于人机协作的无缝衔接。你需要教会它理解你的工作方式,而不是期望它自动完美。
1.1 什么是 CLAUDE.md?
CLAUDE.md 是 Claude Code 自动读取的记忆文件,类似 Cursor 的 rules,但更强大。它为 Claude 提供项目相关的上下文信息,让它真正理解你的项目。
1.2 CLAUDE.md 的三层架构
./CLAUDE.md 团队共享的指令 项目架构、编码规范、常用工作流程
用户记忆(全局)
~/.claude/CLAUDE.md 所有项目的个人偏好 代码风格偏好、个人工具快捷方式
目录记忆(嵌套) 各目录的
CLAUDE.md 特定模块的上下文 模块说明、依赖关系
Claude Code 会递归读取这些文件:从当前工作目录开始,向上递归到根目录。
1.3 一个好的 CLAUDE.md 长什么样?
# 项目名称 - AI 协作上下文
项目概述
- 技术栈: Python 3.11 + FastAPI + PostgreSQL + Redis
- 架构风格: 微服务,事件驱动
- 当前阶段: MVP 开发阶段
核心架构
编码规范
- 使用 类型注解(Python 3.11+)
- 函数必须有 docstring(Google 风格)
- 测试框架:pytest,目标覆盖率 80%
- 提交格式:
feat|fix|refactor: 简洁描述
常用命令
make dev- 启动开发服务器make test- 运行测试make lint- 代码检查
禁止事项
- ❌ 不要在生产代码中使用
print(),使用logging - ❌ 不要修改
migrations/中的历史迁移文件 - ❌ 不要在测试中使用真实数据库连接
当前工作重点
- [ ] 用户认证模块重构
- [ ] 性能优化(关注 N+1 查询)
- [ ] API 文档补充
1.4 CLAUDE.md **实践
✅ 要做的:
- 保持精简:控制在 300 行以内,太长反而降低效果
- 持续更新:把它当作活文档,随项目演进
- 模块化结构:复杂项目可以拆分多个文件
- 明确优先级:把最重要的规则放在前面
❌ 不要做的:
- 堆砌技术细节:代码本身就是细节,CLAUDE.md 应该是”元信息”
- 写太泛的规则:“写高质量代码” —— 这种话 Claude 不需要
- 忽略更新:过期的信息比没有信息更糟糕
1.5 Boris Pro Tip:CLAUDE.md 的灵魂
“我的 CLAUDE.md 开头永远是一句话:这个项目的核心目标是什么。这样当 Claude 面临选择时,它能做出和我一致的判断。”
例如:
这是一个追求极致性能的实时系统,性能优先于代码可读性。
Boris Cherny(Claude Code 之父)在 X 上分享:
2.1 Hooks 是什么?
Hooks 是 Claude Code 的自动化规则引擎。它可以在特定事件发生时自动执行脚本,确保代码始终符合你的标准。
2.2 四种 Hook 类型
PreToolUse Claude 使用工具之前 权限检查、参数验证
PostToolUse Claude 使用工具之后 自动格式化、lint 检查
Notification Claude 需要你注意时 桌面通知、Slack 通知
Stop Claude 完成任务时 清理工作、状态记录
2.3 实战案例:自动代码格式化
场景:每次 Claude 修改 TypeScript 文件后,自动运行 Prettier。
配置 .claude/settings.json:
{ “hooks”: {
"PostToolUse": [ { "matcher": { "toolName": "Edit|Write", "filePath": ".*\.(ts|tsx)$" }, "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" } ] } ]
} }
2.4 实战案例:保护关键文件
场景:防止 Claude 意外修改生产配置文件。
创建脚本 .claude/hooks/protect-files.sh:
#!/bin/bash FILE_PATH=\((echo "\)INPUT“ | jq -r ’.tool_input.file_path // empty’)
# 保护列表 PROTECTED_FILES=( ”.env.production” “config/database.yml” “terraform/main.tf” )
for protected in “\({PROTECTED_FILES[@]}"; do if [[ "\)FILE_PATH” == “$protected” ]]; then
echo "❌ 受保护文件,需要人工确认:$FILE_PATH" exit 2 # 阻止操作
fi done
exit 0
并在 settings.json 中注册:
{ “hooks”: {
"PreToolUse": [ { "matcher": { "toolName": "Edit|Write" }, "hooks": [ { "type": "command", "command": ""$CLAUDE_PROJECT_DIR"/.claude/hooks/protect-files.sh" } ] } ]
} }
2.5 实战案例:桌面通知
macOS 配置:
]
} }
Linux 配置:
]
} }
3.1 什么是 Skills?
Skills 是 Claude Code 的能力扩展包。你可以把它理解为”给 Claude 安装新技能”。一个 Skill 包含:
- SKILL.md:技能描述和使用说明
- scripts/:自动执行的脚本
- references/:参考资料和模板
3.2 官方 Skills 推荐
frontend-design 前端设计和组件开发
npx skills-installer install @anthropics/claude-code/frontend-design
doc-coauthoring 文档协作写作
npx skills-installer install @anthropics/claude-code/doc-coauthoring
commit 智能提交信息生成
npx skills-installer install @anthropics/claude-code/commit
test-writer 自动生成测试
npx skills-installer install @anthropics/claude-code/test-writer
pdf PDF 文档处理
npx skills-installer install @anthropics/claude-code/pdf
3.3 创建自定义 Skill
场景:创建一个代码审查 Skill。
目录结构:
.claude/skills/code-review/ ├── SKILL.md ├── scripts/ │ └── analyze.sh └── references/
└── review-checklist.md
SKILL.md 内容:
— name: code-review
description: 代码审查技能,自动检查代码质量、安全性和**实践
Code Review Skill
使用场景
- 提交 PR 前自动审查
- 定期代码质量检查
- 新成员代码指导
触发方式
在对话中提到 “代码审查”、”review” 或使用 /code-review 命令。
审查维度
- 代码质量:命名、结构、复杂度
- 安全性:SQL 注入、XSS、敏感信息泄露
- 性能:N+1 查询、内存泄漏、不必要的循环
- 可维护性:注释、文档、测试覆盖
输出格式
参见 references/review-checklist.md
4.1 什么是 MCP?
MCP(Model Context Protocol)是 Claude Code 连接外部服务的桥梁。通过 MCP,Claude 可以:
- 直接操作数据库
- 调用 API
- 读取外部文档
- 执行远程命令
4.2 推荐的 MCP 服务器
context7 访问最新文档 解决知识过时问题
postgres PostgreSQL 数据库操作 直接查询和修改数据
github GitHub API 集成 自动处理 Issues/PRs
puppeteer 浏览器自动化 测试、截图、爬虫
filesystem 增强的文件系统操作 复杂文件处理
4.3 MCP 配置示例
在 .claude/settings.json 中配置:
{ “mcpServers”: {
"context7": { "type": "stdio", "command": "npx", "args": ["-y", "@context7/mcp-server"] }, "postgres": { "type": "stdio", "command": "npx", "args": ["-y", "@postgres/mcp-server"], "env": { "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb" } }
} }
4.4 测试 MCP 连接
# 测试 MCP 服务器是否正常 claude mcp test postgres claude mcp test context7
5.1 上下文窗口的困境
Claude Code 有个限制:上下文窗口是有限的。当对话越来越长,早期的信息会被”遗忘”。
5.2 Claude Code 团队推荐的上下文策略
5.3 使用 /compact 智能压缩
# 手动压缩,保留关键信息 /compact
# 压缩时指定保留重点 /compact focus on the API changes and the list of modified files
在 CLAUDE.md 中添加压缩指令:
上下文压缩规则 当执行 /compact 时,请始终保留:
- 完整的修改文件列表
- 当前测试状态
- 未解决的 bug 或问题
- 待办事项清单 场景:同时在多个分支上工作,每个分支一个独立的 Claude 会话。
5.4 使用 Git Worktrees 并行开发
# 创建 worktree git worktree add ../project-feature-a feature-a git worktree add ../project-feature-b feature-b
# 在不同目录启动 Claude Code cd ../project-feature-a && claude cd ../project-feature-b && claude
优势:
- 每个会话有独立的上下文
- 避免任务混淆
- 可以真正并行开发
5.5 使用 .claudeignore 排除无关文件
示例 .claudeignore:
# 依赖目录 node_modules/ vendor/ pycache/
构建产物
dist/ build/ *.min.js *.pyc
日志和缓存
*.log .cache/ .pytest_cache/
大型二进制文件
*.bin *.sqlite *.db
6.1 启动模式
# 交互模式(默认) claude
# 带初始提示启动 claude “帮我分析这个项目的性能瓶颈”
# 非交互模式(管道友好) echo “分析代码结构” | claude
# 指定权限模式 claude –permission-mode plan # 计划模式,只输出不执行 claude –permission-mode auto # 自动模式,危险操作除外 claude –permission-mode acceptAll # 全自动(谨慎使用)
6.2 常用斜杠命令
/help 帮助信息 忘记命令时
/model 切换模型 Opus/Sonnet 切换
/compact 压缩上下文 会话过长时
/clear 清除上下文 开始新任务
/init 生成 CLAUDE.md 新项目初始化
/resume 恢复历史会话 继续之前的工作
/insights 使用分析报告 复盘、优化习惯
/permissions 权限设置 调整安全级别
/cost 查看消耗 成本控制
/bug 报告问题 反馈 bug
/think 深度思考模式 复杂任务
6.3 远程控制模式
Boris 推荐:使用 claude remote-control 进行协同调试。
# 启动远程控制会话 claude remote-control
# 然后在 claude.ai/code 或手机 App 上连接 # 可以问:”为什么选择这个方案?” # Claude 会在 overlay 中回答,不影响主上下文
6.4 自定义命令
创建自定义命令 .claude/commands/optimize.md:
分析这个项目的性能,并提出三个具体的优化建议。 重点关注:
- 数据库查询效率
- 缓存策略
- 并发处理能力
使用:在 Claude Code 中输入
/project:optimize6.5 深度思考模式
让 Claude 在复杂问题上进行更深层的分析:
请深度思考(extended thinking)这个架构方案:
- 有哪些潜在的瓶颈?
- 在什么情况下会失败?
- 有没有更好的替代方案?
7.1 YK(ykdojo)的 40+ 条经验
YK 是 Claude Code 的早期用户,在 GitHub 上维护了 claude-code-tips 项目。
核心经验:
- 自定义状态栏:显示模型、分支、token 使用量
# 配置 ~/.claude/statusline.sh # 显示:model | branch | uncommitted | token % - Half-clone 技术:克隆对话但只保留后半部分
# 用于上下文过半但不想要完全新会话时 ./scripts/half-clone.sh - System Prompt Patching:修改系统提示词
“通过修补系统提示词,我把 Claude 变成了真正的结对编程伙伴。”
- Check-context 脚本:每次响应后检查上下文使用
# 当上下文超过 70% 时自动提醒 ./scripts/check-context.sh
7.2 Builder.io 团队的 50 条**实践
精华摘录:
- 远程控制是神器
“我的每个会话都从
claude remote-control开始。在手机上问 为什么,回答在 overlay 里,主上下文保持精简。” - 压缩时告诉 Claude 保留什么
/compact focus on the API changes and the list of modified files - 用 @ 引用文件,而不是复制粘贴
@src/auth/middleware.ts has the session handling. - PostToolUse Hook + Prettier = 永远格式化好的代码
{ “hooks”: {
"PostToolUse": [{ "matcher": { "toolName": "Edit|Write" }, "hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" }] }]
} }
7.3 一位 11 个月深度用户的 Top 10
来自 Reddit r/ClaudeAI 社区:
- CLAUDE.md 是最重要的投资
“我花在前 10 小时优化 CLAUDE.md 的时间,在接下来的 1000 小时里得到百倍回报。”
- 相信 Claude 的 /init
“在新项目中,先运行
/init,让它自己分析并生成 CLAUDE.md。通常比我手写的还好。” - 权限模式要选对
plan:新项目探索,不确定 Claude 会做什么auto:熟悉的项目,日常开发acceptAll:仅在完全信任的环境
- AI 是队友不是工具
“当我改变心态,从 使用工具 变成 与队友协作,效率翻倍。”
- 定期 review
/insights“每周看一次使用报告,发现我 60% 的时间在修同一个类型的 bug。这是流程问题,不是 Claude 的问题。”
8.1 上下文过长怎么办?
问题:会话越来越长,Claude 开始”健忘”。
解决方案:
- 主动使用
/compact,并告知保留重点 - 适时开启新会话(不是所有事都要在一个会话完成)
- 使用 Git Worktrees 实现真正的并行开发
- 配置好
.claudeignore
8.2 Claude 老是问权限怎么办?
问题:每操作一下就问”是否允许”。
解决方案:
# 在当前会话设置权限 /permissions
# 或者启动时指定 claude –permission-mode auto
8.3 如何让 Claude 记住我的偏好?
问题:每次都要重新说”我喜欢用 TypeScript”、“我的测试框架是 Jest”。
解决方案:写入 ~/.claude/CLAUDE.md(全局)或项目根目录的 CLAUDE.md(项目级)。
用户偏好
- 类型严格模式
- 测试框架:Jest + @testing-library
- 注释语言:中文
- 变量命名:camelCase 问题:API 访问不稳定或无法访问。
8.4 Claude Code 在国内使用?
解决方案:
- 配置 API 代理(见项目文档)
- 使用国内 API 代理服务
- 参考 Claude Code 中文社区指南
8.5 陷阱警示
陷阱 表现 解决方案 过长的 CLAUDE.md Claude 读取时间变长,效果下降 控制在 300 行以内 过度自动化 配了一堆 hooks 反而变慢 只自动化真正重复的事 忽略 /insights 不知道自己的使用模式 每周 review 一次 滥用 acceptAll 出了问题不知道是谁干的 熟悉的项目才用
A.1 最小可用配置
.claude/settings.json:
{ “hooks”: {
"PostToolUse": [ { "matcher": { "toolName": "Edit|Write" }, "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs -I {} sh -c 'if [ -f "{}" ]; then npx prettier --write "{}" 2>/dev/null || true; fi'" } ] } ]
} }
A.2 完整推荐配置
参见 GitHub 示例仓库:everything-claude-code
官方文档
- Claude Code 官方文档
- Hooks 指南
- Best Practices
社区资源
- ykdojo/claude-code-tips - 40+ 条实战经验
- Claude Code 中文指南
- Reddit r/ClaudeAI - 活跃社区
进阶阅读
- Builder.io: 50 Claude Code Tips and Best Practices
- Claude Code **实践指南(知乎)
掌握 Claude Code 的高级用法,不是要你成为”配置大师”,而是要建立你与 AI 之间的默契。
就像真正的队友一样:
- 它知道你的习惯(CLAUDE.md)
- 它遵守你的规则(Hooks)
- 它有你的工具箱(Skills + MCP)
- 它记得重要的事(上下文管理)
当你发现自己在想”这个任务让 Claude 来做,它应该知道怎么做”时,你就成功了。
最后更新:2026-04-16
参考来源:Claude Code 官方文档、社区经验分享、10+ 个月深度使用总结
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270485.html