当前位置: 首页 > news >正文

claude code(六):【Claude Code官方最佳实践4️⃣】:常见的工作流程

Claude Code 不强加特定的工作流程,给您使用它的灵活性。在这种灵活性提供的空间内,我们的用户社区中出现了几种有效使用 Claude Code 的成功模式:

a. 探索、规划、编码、提交

这个多功能工作流程适用于许多问题:

  1. 要求 Claude 阅读相关文件、图像或 URL,提供通用指针(“阅读处理日志的文件”)或特定文件名(“阅读 logging.py”),但明确告诉它现在还不要编写任何代码。

    • 这是工作流程中您应该考虑大量使用子代理的部分,特别是对于复杂问题。告诉 Claude 使用子代理来验证细节或调查它可能有的特定问题,特别是在对话或任务的早期,往往会保持上下文可用性,而在效率损失方面没有太多缺点。
  2. 要求 Claude 制定如何处理特定问题的计划。我们建议使用"思考"这个词来触发扩展思考模式,这给 Claude 额外的计算时间来更彻底地评估替代方案。这些特定短语直接映射到系统中递增的思考预算级别:“think” < “think hard” < “think harder” < “ultrathink”。每个级别为 Claude 分配逐渐增加的思考预算来使用。

    • 如果这一步的结果看起来合理,您可以让 Claude 创建一个文档或 GitHub 问题来记录其计划,这样如果实施(步骤 3)不是您想要的,您可以重置到这个点。
  3. 要求 Claude 在代码中实施其解决方案。这也是要求它在实施解决方案的各个部分时明确验证其解决方案合理性的好地方。

  4. 要求 Claude 提交结果并创建拉取请求。如果相关,这也是让 Claude 更新任何 README 或变更日志并解释它刚刚做了什么的好时机。

步骤 #1-#2 是至关重要的——没有它们,Claude 往往会直接跳到编写解决方案的代码。虽然有时这就是您想要的,但要求 Claude 首先研究和规划会显著提高需要预先深入思考的问题的性能。

b. 编写测试,提交;编码,迭代,提交

这是 Anthropic 最喜欢的工作流程,适用于可以通过单元测试、集成测试或端到端测试轻松验证的更改。测试驱动开发(TDD)在智能编程中变得更加强大:

  1. 要求 Claude 基于预期的输入/输出对编写测试。明确说明您正在进行测试驱动开发,这样它就会避免创建模拟实现,即使对于代码库中尚不存在的功能也是如此。
  2. 告诉 Claude 运行测试并确认它们失败。在这个阶段明确告诉它不要编写任何实现代码通常很有帮助。
  3. 当您对测试满意时,要求 Claude 提交测试
  4. 要求 Claude 编写通过测试的代码,指示它不要修改测试。告诉 Claude 继续,直到所有测试都通过。Claude 通常需要几次迭代来编写代码、运行测试、调整代码,然后再次运行测试。
    • 在这个阶段,要求它用独立的子代理验证实现没有过度拟合测试会很有帮助
  5. 当您对更改满意时,要求 Claude 提交代码

当 Claude 有明确的目标进行迭代时,它表现最佳——视觉模拟、测试用例或其他类型的输出。通过提供像测试这样的预期输出,Claude 可以进行更改、评估结果,并逐步改进直到成功。

c. 编写代码,截图结果,迭代

类似于测试工作流程,您可以为 Claude 提供视觉目标:

  1. 给 Claude 一种截取浏览器截图的方法(例如,使用Puppeteer MCP 服务器、iOS 模拟器 MCP 服务器,或手动复制/粘贴截图到 Claude)。
  2. 通过复制/粘贴或拖放图像,或给 Claude 图像文件路径来给 Claude 一个视觉模拟。
  3. 要求 Claude 在代码中实现设计,截取结果的截图,并迭代直到其结果与模拟匹配。
  4. 当您满意时要求 Claude 提交

像人类一样,Claude 的输出通过迭代往往会显著改善。虽然第一个版本可能很好,但经过 2-3 次迭代后,它通常会看起来好得多。给 Claude 查看其输出的工具以获得最佳结果。

d. 安全 YOLO 模式

不是监督 Claude,您可以使用claude --dangerously-skip-permissions来绕过所有权限检查,让 Claude 不间断地工作直到完成。这对于修复 lint 错误或生成样板代码等工作流程效果很好。

让 Claude 运行任意命令是有风险的,可能导致数据丢失、系统损坏,甚至数据泄露(例如,通过提示注入攻击)。为了最小化这些风险,在没有互联网访问的容器中使用--dangerously-skip-permissions。您可以使用 Docker Dev Containers 遵循这个参考实现

e. 代码库问答

在新代码库入职时,使用 Claude Code 进行学习和探索。您可以向 Claude 询问在结对编程时会向项目中其他工程师询问的同类问题。Claude 可以智能地搜索代码库来回答一般性问题,如:

  • 日志记录是如何工作的?
  • 我如何创建一个新的 API 端点?
  • foo.rs第 134 行的async move { ... }是做什么的?
  • CustomerOnboardingFlowImpl处理哪些边缘情况?
  • 为什么我们在第 333 行调用foo()而不是bar()
  • baz.py第 334 行在 Java 中的等价物是什么?

在 Anthropic,以这种方式使用 Claude Code 已经成为我们的核心入职工作流程,显著改善了提升时间并减少了其他工程师的负担。不需要特殊的提示!只需提问,Claude 会探索代码来找到答案。

f. 使用 Claude 与 git 交互

Claude 可以有效地处理许多 git 操作。许多 Anthropic 工程师使用 Claude 进行 90%+ 的 git 交互:

  • 搜索 git 历史来回答诸如"哪些更改进入了 v1.2.3?"、"谁拥有这个特定功能?"或"为什么这个 API 是这样设计的?"等问题。明确提示 Claude 查看 git 历史来回答此类查询会有帮助。
  • 编写提交消息。Claude 会自动查看您的更改和最近的历史,以考虑所有相关上下文来组成消息
  • 处理复杂的 git 操作,如回滚文件、解决 rebase 冲突以及比较和移植补丁

g. 使用 Claude 与 GitHub 交互

Claude Code 可以管理许多 GitHub 交互:

  • 创建拉取请求:Claude 理解简写"pr",并会基于差异和周围上下文生成适当的提交消息。
  • 对简单的代码审查评论实施一次性解决方案:只需告诉它修复您 PR 上的评论(可选地,给它更具体的指令),完成后推送回 PR 分支。
  • 复失败的构建或 linter 警告
  • 分类和整理开放问题,通过要求 Claude 循环遍历开放的 GitHub 问题

这消除了记住gh命令行语法的需要,同时自动化日常任务。

h. 使用 Claude 处理 Jupyter notebook

Anthropic 的研究人员和数据科学家使用 Claude Code 来读取和编写 Jupyter notebook。Claude 可以解释输出,包括图像,提供了一种快速探索和与数据交互的方式。没有必需的提示或工作流程,但我们推荐的工作流程是在 VS Code 中并排打开 Claude Code 和 .ipynb文件。

您也可以要求 Claude 在向同事展示之前清理或美化您的 Jupyter notebook。具体告诉它使 notebook 或其数据可视化"美观"往往有助于提醒它正在为人类观看体验进行优化。

http://www.cnnetsun.cn/news/2613626.html

相关文章:

  • Keil PK51 V9.55栈分配问题解析与解决方案
  • 别再自己造轮子了!用Avue-data快速搞定企业级数据大屏(附前后端联调避坑指南)
  • 【ChatGPT广告文案生成实战指南】:20年营销技术专家亲授7大高转化模板与避坑清单
  • 从IMU到机器人定位:手把手教你用ESKF融合IMU与GPS数据(附Python代码)
  • [题材选股] “长鑫”退潮,“材料”接棒:锁定10只主升浪核心股!QTYX-V3.4.8量化复盘
  • 免费获取米哈游游戏字体:11款精美架空文字字体完整指南与创意应用
  • 终极指南:5步在Mac上解锁QQ音乐加密文件,实现全平台播放自由
  • 解放你的音乐收藏:qmcdump实战解密QQ音乐加密文件
  • NHSE终极指南:5步轻松打造你的专属动物森友会岛屿
  • 终极Wand增强指南:三步免费解锁专业游戏修改功能 [特殊字符]
  • 机房运维实战:用清华同方同方易教V2.4给50台学生机批量装系统,20分钟搞定一桌
  • Kali Linux磁盘扩容避坑指南:搞定fstab和resume配置,开机唤醒不再‘转圈圈’
  • 混合模型路由:让 Agent 在质量与成本之间自动平衡
  • 从GWR到GTWR再到mGTWR:时空地理加权回归模型演进与Python实战选型指南
  • 【技术解析】基于Node.js与Session管理的EduCoder答案接口自动化实践
  • Windows鼠标指针美化终极指南:免费获取macOS风格指针完整教程
  • 3分钟掌握Python金融数据获取:告别爬虫,轻松获取同花顺问财数据
  • 保姆级教程:用VSCode+Verilog插件实现代码自动例化和Testbench生成(含ctags配置避坑)
  • IMU融合定位实战:手把手教你用ESKF搞定无人机状态估计(附Python代码)
  • 终极魔兽争霸III增强插件:15+实用功能一站式配置指南
  • 从‘理想模型’到‘抗扰实战’:深入聊聊扰动观测器(DOB)设计中的三个经典陷阱与调参心得
  • 用Simulink复现异步电机V/F控制:从理论到模型搭建的保姆级指南(含SPWM模块详解)
  • 从低代码平台迁移到自主部署:破解供应商锁定,重获增长自由
  • CMAQ模型配置避坑指南:从WRF输出到CCTM运行,我的16线程MPI调试记录
  • Coze机器人集成REST API实战:5分钟实现The Colony论坛发帖
  • 从ScrollView到高性能列表:CocosCreator中drawcall合并与对象池的保姆级配置流程
  • Downkyi技术深度解析:B站视频下载架构与性能优化指南
  • 智能媒体捕获工具深度解析:5个专业技巧提升资源获取效率
  • 跨平台资源下载工具res-downloader:高效获取全网视频音频素材
  • 终极免费MOD开发神器:用RPFM让你的全面战争创作效率飙升300%