[Anthropic官方文章] Claude Code 最佳实践:值得反复逐字阅读,把核心内容理解透,才能举一反三,跟上更新节奏

picture.image

Anthropic 团队4月份发布的「Claude Code: Best practices for agentic coding」,我自己隔一段时间就会重新打开读一遍,每次都有新收获,所以想重新写一篇解读,跟大家共享。

Claude Code: Best practices for agentic coding

https://www.anthropic.com/engineering/claude-code-best-practices

在这篇文章中团队分享了如何高效使用 Claude Code 的最佳实践指南。Claude Code 是一个面向程序员的“智能助手”,可以帮助开发者更高效地编写代码、管理项目、处理 Git 和 GitHub 操作等。它的设计初衷是提供灵活、低层次的工具,允许用户自由定制工作流程,同时保持安全性和可控性。

picture.image

  1. 定制你的开发环境

Claude Code 的强大之处在于它能根据你的项目环境自动拉取上下文,但你需要做一些设置来让它更高效。

创建 CLAUDE.md 文件

这是一个特殊的文件,Claude 会自动读取其中的内容作为上下文。你可以在里面写下:

· 项目常用的命令(比如 npm run build

· 代码风格指南(比如用 ES 模块而非 CommonJS)

· 测试或提交代码的注意事项

· 开发环境配置(比如用哪个版本的 Python)

你可以把 CLAUDE.md 放在项目根目录、子目录或家目录(~/.claude/CLAUDE.md),甚至在 monorepo 中多层放置。文件内容要简洁明了,方便 Claude 和团队成员理解。可以用 /init 命令让 Claude 自动生成一个初始版本。

优化 CLAUDE.md

就像写 Prompt 一样,CLAUDE.md 的内容需要不断调整。你可以用 # 快捷键让 Claude 自动记录常用命令或风格指南到文件中。Anthropic 团队还会用“提示优化器”来改进 CLAUDE.md 的指令,比如加粗 “IMPORTANT” 来强化某些规则。

设置工具白名单

Claude Code 默认会对修改文件的操作或运行某些命令(如 git commit)请求许可,以确保安全。你可以通过以下方式调整白名单:

· 在运行时选择“总是允许”

· 用 /permissions 命令添加常用工具

· 编辑 .claude/settings.json 或全局 ~/.claude.json

· 用 --allowedTools 命令行参数临时设置

用 GitHub CLI(gh)

如果你用 GitHub,安装 gh 工具可以让 Claude 更方便地创建 issue、PR 或查看评论。如果没有 gh,Claude 也能通过 API 或其他工具访问 GitHub。

  1. 给 Claude 更多工具

Claude Code 能利用你的 shell 环境和外部工具,变得更强大。

用 Bash 工具

Claude 可以直接用你环境里的 Bash 工具(比如 grep、awk 或自定义脚本)。但你需要:

· 告诉 Claude 工具的名称和用法

· 让它运行 --help 查看工具文档

· 把常用工具写进 CLAUDE.md

用 MCP

Claude 支持 MCP 协议,可以连接到外部服务器(如 Puppeteer 或 Sentry)来执行复杂任务。你可以在项目或全局配置文件中添加 MCP 服务器,或者在代码库里共享 .mcp.json 文件。用 --mcp-debug 标志可以帮助调试配置问题。

自定义斜杠命令

你可以在 .claude/commands 文件夹里创建 Markdown 文件,定义重复性工作流程的模板(比如调试、分析日志)。这些模板会变成 / 开头的命令,方便调用。比如,创建一个 /fix-github-issue 命令,自动拉取并修复 GitHub issue。

  1. 常见工作流程

Claude Code 没有强制的工作流程,但社区总结了一些高效的模式:

探索 → 计划 → 编码 → 提交

适合大多数任务:

  1. 让 Claude 先读相关文件或资料(比如“读 logging.py”),但别急着写代码。

  2. 要求 Claude 制定计划,用 “think” 或 “think harder” “ultra think”触发更深入的思考。

  3. 确认计划后,让 Claude 写代码并验证。

  4. 最后让 Claude 提交代码并创建 PR。

先写测试 → 提交 → 写代码 → 迭代 → 提交

适合测试驱动开发(TDD):

  1. 让 Claude 写测试用例,确保不包含实现代码。

  2. 运行测试,确认失败。

  3. 提交测试。

  4. 让 Claude 写代码直到通过测试,可能需要几轮迭代。

  5. 提交代码。

写代码 → 截图 → 迭代

适合需要视觉效果的任务:

  1. 给 Claude 提供设计稿(通过截图、拖放图片或文件路径)。

  2. 让 Claude 实现代码,截图结果并与设计稿对比。

  3. 迭代直到匹配设计稿。

“安全 YOLO”模式

用 --dangerously-skip-permissions 跳过所有权限检查,适合快速修复 lint 错误或生成样板代码。但要小心,最好在隔离的容器(如 Docker)里运行,防止意外修改或数据泄露。

代码库问答

适合新手快速上手项目,问 Claude 类似“日志系统怎么工作?”或“某行代码为什么这样写?”的问题。它会自动搜索代码库回答,省去翻文档的麻烦。

Git 和 GitHub 操作

Claude 可以处理:

· 查看 Git 历史(比如“v1.2.3 包含了哪些改动?”)

· 写提交信息

· 处理复杂 Git 操作(如解决 rebase 冲突)

· 创建 PR、修复代码审查评论、修复 CI 失败或 lint 警告

Jupyter 笔记本

Claude 可以读写 Jupyter 笔记本,分析输出(包括图片),还能优化笔记本的视觉效果,适合数据科学家。

  1. 优化你的工作流

一些通用的技巧能让 Claude Code 更好用:

明确指令

越具体的指令,效果越好。比如,别说“加个测试”,而是说“为 foo.py 写一个测试,覆盖用户未登录的边界情况”。

提供图片

Claude 能处理截图、设计稿或图表,方便 UI 开发或调试。可以用拖放、复制粘贴或提供文件路径。

指定文件

用 tab 补全快速指定文件或目录,让 Claude 知道要处理哪些资源。

提供 URL

给 Claude 提供文档或网页链接,加快上下文获取。用 /permissions 避免重复授权同一域名。

及时纠错

· 让 Claude 先做计划,确认后再编码。

· 用 Esc 键中断 Claude 的操作,调整指令。

· 双击 Esc 回溯历史,修改之前的 Prompt。

· 让 Claude 撤销更改,尝试新方案。

用 /clear 清空上下文

长时间会话可能积累无关信息,用 /clear 重置上下文,保持 Claude 专注。

用清单和草稿

复杂任务(如修复多个 lint 错误)可以用 Markdown 文件作为任务清单,让 Claude 逐一处理并标记完成。

传递数据

可以通过复制粘贴、管道输入(cat foo.txt | claude)、命令行工具或 URL 给 Claude 提供数据。

  1. 无头模式(Headless Mode)

无头模式适合自动化任务,比如 CI 流水线或预提交钩子。用 -p 标志指定 Prompt,配合 --output-format stream-json 获取结构化输出。常见用途:

· Issue 分类:自动为新 GitHub issue 添加标签。

· 代码审查:检查代码中的拼写错误、过时注释或命名问题。

  1. 多 Claude 协作

可以让多个 Claude 实例并行工作,提升效率:

一个写代码,另一个审查

让一个 Claude 写代码,另一个审查或写测试,分担上下文负担。可以用 Markdown 文件让它们“交流”。

多个 Git 分支

在不同文件夹 checkout 多个分支,每个分支跑一个 Claude,处理独立任务。

用 Git Worktrees

在同一代码库创建多个工作树,每个 Claude 在不同分支或任务上并行工作,避免冲突。

无头模式自动化

· 分散任务:让 Claude 生成任务列表(如迁移 2000 个文件),然后逐个调用 Claude 处理。

· 流水线集成:将 Claude 的 JSON 输出接入现有处理流程。

总结

Claude Code 是一个灵活的工具,能大幅提升编码效率,但需要你主动优化它的使用方式。核心是:

· 通过 CLAUDE.md 和白名单定制环境

· 结合 Bash、MCP 和自定义命令扩展功能

· 选择适合的工作流程(探索-计划-编码、TDD、视觉迭代等)

· 提供具体指令、图片、文件或 URL

· 及时纠错、清理上下文、用清单管理复杂任务

· 利用多 Claude 协作或无头模式处理大规模任务

文章鼓励你实验并分享自己的最佳实践,Anthropic 团队也在不断从用户反馈中学习。

0
0
0
0
评论
未登录
暂无评论