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

我是如何使用Claude Code

文章目录

  • 我如何使用Claude Code
    • ⭐ 开始新的对话
    • 📝 创建精确的提示
    • 🔄 让Claude Code使用Claude Code
    • 🧠 告诉Claude思考
    • ✏️ 编辑以前的消息
    • 🚀 Yolo模式
    • 🔌 MCP服务器
    • 🛠️ Claude SDK
    • 规划模式
    • 📚 让Claude RTFM(阅读文档)
    • 语音输入
    • 💾 早暂存,常暂存
    • 🌳 Git Worktrees
    • 🧪 一次性工作实验
    • 如果可能,不要尝试一次性完成
    • 自主反馈还是人在回路中?
    • 早中断,常中断
    • 配置你的终端
    • 连接你的IDE
    • 自定义命令
    • 向Claude粘贴图像
    • 📋 核心技巧总结
    • 🎯 结论
    • 👨‍💻 关于作者

我如何使用Claude Code

作者:Philipp Spiess
发布时间:2025年6月11日 • 14分钟阅读

一个月前,我订阅了Claude Max。之前我已经使用包括Claude Code在内的AI代理一段时间了,但有了固定价格后,我的使用量激增,它已经成为我许多任务的日常驱动工具。我发现自己现在去VS Code的次数少了很多。

由于AI代理对每个人来说都是全新的,我想分享一些我最近注意到的一些模式可能会很有趣。以下是我使用Claude Code的方式。

⭐ 开始新的对话

如果有一件事我希望你从中学到,那就是你绝对应该更频繁地调用 /clear

关键要点:

  • AI代理在对话时间越长时往往变得更不可预测
  • 当你问不同的问题时尤其如此
  • 即使这意味着重复一些指令,创建一个新的提示通常更有效
  • 一旦我开始更积极地这样做,我的结果显著改善

📝 创建精确的提示

我觉得这不言而喻,但当你与一个健忘的新毕业生一起工作时(我喜欢这样想Claude),重要的是你要写出你脑中拥有的所有上下文

提示编写要点:

  • 这很困难,坦率地说,我认为我自己还不是很擅长
  • 你能给Claude提供的上下文越多,它就会越有效
  • 如果你想到一些边缘情况,绝对要告诉Claude
  • 如果你记得"在这个代码库中我们过去为这类问题使用过类似的模式",写下来
  • 提示越精确,Claude做得就越好
  • 读心术技术还没有到那里

隐含上下文的重要性:

  • 考虑任何隐含的上下文
  • 例如:如果你要求Claude创建一个现代设计,它可能完全不知道你指的现代是什么
  • 最好给出例子:创建一个Linear风格的应用UI设计

🔄 让Claude Code使用Claude Code

你知道吗,你可以将Claude Code的工具用作MCP服务器claude mcp serve)?

Task工具的强大功能:

  • 当我发现这一点时,我查看了它暴露的工具,并注意到一个叫做Task的工具
  • 这个工具的前提是启动一个子代理
  • 子代理将拥有与你的主代理相同的工具访问权限(除了它不能生成另一个子任务)
  • 子代理会报告结果

使用场景:

  • 知道这个功能可用在你有一个需要监督的更复杂问题时非常方便
  • 以下是我最近如何使用此功能对同一问题进行四种不同角色深入分析的例子:
> 读取当前目录中的文件以推断构建Tailwind Plus组件的模式。你应该生成4个具有略微不同优先级的子任务(例如设计颜色导出、可访问性导出、移动/响应式专家、整体样式专家)并比较他们的结果。✻ 思考中…现在我将生成4个专门的子任务,具有不同的优先级来分析组件的各个方面。⏺ Task(设计颜色专家分析)⎿  完成 (24个工具使用 · 41.5k tokens · 3分4.4秒)⏺ Task(可访问性专家分析)⎿  完成 (15个工具使用 · 38.0k tokens · 2分0.0秒)⏺ Task(移动/响应式专家分析)⎿  完成 (14个工具使用 · 45.5k tokens · 2分1.2秒)⏺ Task(整体样式专家分析)⎿  完成 (23个工具使用 · 58.7k tokens · 2分22.0秒)

这很壮观而且可以并行完成。这是保持主任务上下文窗口有序并让Claude保持专注的绝佳方式。

🧠 告诉Claude思考

就像我们这些血肉之躯的老人类一样,Claude默认是懒惰的

Claude的懒惰特性:

  • 当你告诉Claude做某事时,它会选择阻力最小的路径
  • 如果你告诉它做至少三件事,我敢打赌它不会多做一件事

解决方案:

  • 同样的道理也适用于使用扩展思维能力
  • 为了获得更好的结果,特别是在规划过程
  • 我建议告诉Claude进行超级思考

✏️ 编辑以前的消息

使用技巧:

  • 每当你太急于点击发送或只是觉得之前的消息可以更精确以获得更好的结果时
  • 你可以按两次Escape跳转到之前的消息并分叉对话
  • 我一直使用这个功能来优化提示或简单地让Claude重试

恢复功能:

  • 如果你想以某种方式回到之前的状态
  • 你可以使用--resume标志启动Claude来列出所有先前的线程

🚀 Yolo模式

这对我来说可能是极其不负责任的,但我现在主要使用--dangerously-skip-permissions运行Claude(感谢Peter成为坏影响)。

使用场景:

  • 这不是所有事情都必要的
  • 但如果我让Claude处理一些长期运行的任务
  • 真的不想每分钟都必须切换焦点回到它,因为它使用新的终端命令

配置方法:
我在我的zsh配置文件中设置了这个:

alias yolo="claude --dangerously-skip-permissions"

副作用:
有趣的是,现在Claude可以做任何它想做的事,我也更频繁地遇到速率限制配额警告

🔌 MCP服务器

个人观点:
我个人对MCP服务器不是很兴奋,因为没有一个真正为我带来任何价值。

问题分析:

  • 在大多数情况下,我发现它们只是用我大部分时间不需要的东西消耗宝贵的tokens
  • Claude Code中的内置工具对我来说足够了(特别是当按照我这里概述的方式使用时)

Playwright MCP经验:

  • 过去,我使用过Playwright MCP
  • 虽然看到Claude启动浏览器、点击按钮和截图非常迷人
  • 但我发现它主要是很快填满上下文窗口而没有真正带来更好的结果

🛠️ Claude SDK

SDK特性:

  • Claude有一个SDK
  • 非常强大,特别是如果你乐意处理stream-json输出格式
  • 但即使对于小事情,能够直接向claude传递提示并让它打印回复也为创建快捷方式提供了很好的机会

实用示例 - 自动Git提交:
例如,我在我的路径中有一个gcauto可执行文件,它执行以下操作:

#!/bin/bash
git commit -m "$(claude -p "查看暂存的git更改并创建总结性的git提交标题。只回应标题,不要确认。")"

使用方法:
所以每当我现在提交东西时,我只是暂存它们并运行gcauto

规划模式

Claude Code有一个内置的规划模式,当你按两次Shift+Tab时触发。在这种模式下,Claude不会写入你的文件系统。

不过我个人喜欢用另一个模型进行规划,只是为了增加一些变化。在过去几周里,我一直在Google AI Studio中直接使用Gemini 2.5 Pro。我真的不知道这怎么可能,但我不认为我甚至需要为此付费?

📚 让Claude RTFM(阅读文档)

新手错误:
我在开始时犯的一个新手错误是告诉Claude用框架x建立一个新项目。

问题分析:

  • 当然,这是可行的
  • 但我注意到Claude经常使用过时的设置和项目结构
  • 特别是对于快速发展的前端框架

解决方案:
我现在做的是要求Claude先阅读手册。这可以通过不同的方式完成:

方法描述
文档链接粘贴文档链接并要求Claude先阅读它
技术调研要求Claude找出最先进的技术
深入研究使用Task工具并让Claude对特定主题进行深入研究

深入研究任务的例子可能看起来像这样:

> 创建一个深入研究任务,找出如何将网站从tailwind 3迁移到4,然后向我展示结果的简短摘要⏺ 我将创建一个研究任务来调查从Tailwind CSS v3到v4的迁移,重点关注你的Tailwind UI代码库的具体上下文。⏺ Task(Tailwind v3到v4迁移研究)⎿  完成 (4个工具使用 · 29.9k tokens · 5分47.6秒)⏺ 摘要从Tailwind CSS v3迁移到v4涉及重大变化,但带来了主要的性能改进(3.5倍更快的构建)和更好的开发者体验。要点:- 使用自动升级工具:npx @tailwindcss/upgrade@next- 配置从JavaScript移动到使用@theme指令的CSS优先- 破坏性更改包括放弃的浏览器支持、新的导入语法和移除的弃用实用程序- 性能提升:构建现在以微秒计算- 容器查询现在是内置的(不需要插件)使用升级工具迁移很直接,但计划测试时间以确保所有组件正确渲染。

语音输入

像Superwhisper这样的应用程序使得口述提示变得非常容易。我发现当我想写一个更长的提示时这非常有效,因为它会更快地将想法从我的脑袋中取出。

这对任何LLM输入字段都非常有效,因为LLM通常可以弄清楚你的意思,即使转录很差并且充满错误。

💾 早暂存,常暂存

遇到的问题:

  • 我在Claude Code中缺少的一个功能是能够制作自动文件系统快照
  • 我经常遇到Claude变得有点太激进并开始在我不想要的时候进行大量更改的情况
  • 如果这发生在我得到一些好的更改之后,这可能会严重搞乱工作目录

解决策略:
为了规避这个问题,我开始早期和经常暂存(即git add)更改。

具体做法:

  • 如果我在一轮后很满意,我通常会暂存所有内容
  • 这样我知道我可以稍后轻松恢复到它

🌳 Git Worktrees

为什么使用Worktrees:

  • 我对Claude Code如此着迷,以至于我现在在我的机器上为我工作的每个主要项目至少有两个工作树
  • 这允许我让Claude在同一个仓库中处理两个不同的问题

设置方法:
设置也很容易!这就像创建一个分支,但代码将在不同的目录中。

具体步骤:
在你的git仓库内,运行:

git worktree add ../tailwindcss.com-2 chore/upgrade-next

结果:
瞧,你现在有另一个工作目录供Claude Code在其中完全放飞自我

🧪 一次性工作实验

AI时代的新机遇:
有了AI,代码变得真的很便宜。这意味着你现在可以构建你只使用一次的东西而不会感到内疚。任何你希望能让你当前任务更容易的东西都可以凭空创建

实际案例展示:
以下是我最近构建的一些在编码代理之前永远不值得我花时间的例子:

工具类型具体项目用途
仪表板迁移进度可视化可视化我在工作中大规模迁移期间的当前进度
浏览器扩展Tailwind版本检测器显示网站使用的是哪个版本的Tailwind CSS
CLI工具转录分享系统上传Claude Code转录以供公开分享
成本分析API费用统计汇总我的Claude Code API成本,看看我从Max计划中获得了多少价值
桌面应用Git GUI集成在git GUI内实验Claude Code的Electron应用程序

如果可能,不要尝试一次性完成

我目前专注于一个大规模的变更,需要我在过程中触及许多Tailwind Plus组件。我天真的第一个想法是创建一个令人惊叹的、深思熟虑的提示,包含大量细节,肯定可以让AI一次性完成所有这些工作…这肯定是可能的,对吧?

嗯,剧透警告,但我在这种方法上惨败了。它不仅没有首先做我想要的事情,还让我无法审查更改或进行任何有意义的更改。我必须重新开始。

这次我首先向Claude Code询问了有关问题的问题。我们在编写任何代码之前讨论了可能的更改。只有当我确信它知道我想要什么时,我才让它更改一个组件。经过一些测试和反馈后,我让它再做两个。然后再做五个,直到我最终让它扇出并完成剩余的工作。

虽然这显然不如创建完美提示那么壮观,但它让我更快地达到最终结果,并且有更紧密的反馈循环和监督。与手工在数百个不同组件中进行这种更改相比,我仍然能够节省大量时间。

这很可能是我使用方法错误的问题。我看到很多其他人声称在大型一次性任务上很成功(其中一些说Claude连续工作数小时)。然而,根据我自己的经验,错误很快复合,LLM经常在上下文窗口增长时失去线索(即使有广泛的子代理调用,甚至尝试Gemini 2.5 Pro)。我很希望有人能与我分享他们的秘密!

自主反馈还是人在回路中?

与上述问题相关,这也是我仍在努力解决的一个领域。每当我看到人们赞扬AI代理时,他们都提到一些自主反馈循环的重要性,这样LLM可以自己改进结果。

然而,我还没有能够有效地做到这一点。当我尝试设置单元测试或linter反馈时,Claude会阅读它,然后建议一切都正常工作,而实际上仍有许多问题/警告。当我设置它可以导航到页面并截图时,上下文窗口很快就充满了tokens。可以肯定地说,对我来说体验并不好。

我喜欢做的是自己运行开发服务器。每当Claude回到我这里时,我自己看一看,要么原样复制粘贴任何最终的堆栈跟踪,要么给出一些关于我想要不同做法的提示。我个人发现这种方法更可能让我得到我想要的。

早中断,常中断

每当我看到出现问题时,我通常立即按Escape中断Claude,并要求它撤销最新的更改,然后引导它更多地朝我想要的方向前进。当然,这只有在你保持关注时才有效,而我坦率地说经常没有做到这一点。

配置你的终端

Claude Code有一个隐藏的/terminal-setup命令,它会查看你当前的终端设置并进行一些更改,比如使得可以使用Shift+Enter添加换行符或注册正确的铃声类型。虽然我无法在Warp中弄清楚换行符的事情,但我的终端现在在Claude再次需要人工输入时会发出哔哔声。

连接你的IDE

另一个相对较新的功能是你可以连接Claude来查看你在IDE中打开的文件并读取linter警告等。这是通过从IDE的终端内运行claude或运行/ide命令来设置的。如果你想告诉Claude"修复我的linter问题",这很方便。

自定义命令

你可以在Claude Code中创建自定义斜杠命令。如果你发现自己不止一次写类似的提示,这可能是你节省更多时间的机会。

我设置了一些东西来清理Claude非常热衷于创建的临时脚本或辅助文件,无论好坏。

向Claude粘贴图像

你可以向Claude Code粘贴图像。只需直接复制图像或将文件拖到你的终端中,它就会作为附件添加到你的下一条消息中。当我想进行小的视觉更改时,我有时会使用这个功能。

📋 核心技巧总结

技巧类别关键要点实用性评级
对话管理频繁使用/clear开始新对话⭐⭐⭐⭐⭐
提示工程提供充分上下文和具体指令⭐⭐⭐⭐⭐
并行处理使用Task工具进行子任务分析⭐⭐⭐⭐
迭代开发避免一次性完成大任务⭐⭐⭐⭐⭐
版本控制早暂存、常暂存,使用worktrees⭐⭐⭐⭐
工具集成利用SDK创建自动化脚本⭐⭐⭐

🎯 结论

根本性改变:
Claude Code从根本上改变了我处理许多编程任务的方式。

现实评估:

  • 虽然它并不完美,需要调整你的工作流程
  • 生产力的提升是真实的
  • 关键是在自动化和人工监督之间找到正确的平衡
  • 并愿意尝试不同的方法

未来展望:

  • 随着AI编码助手的继续发展,我期望这些模式中的许多会发生变化
  • 但现在,这些技术使我的日常编码生活显著更有生产力,我敢说,更有趣

👨‍💻 关于作者

Philipp Spiess

当前职位: Tailwind Labs的工程师

工作经历:

  • Sourcegraph和Meta的工程师
  • This Week in React的策展人
  • React DOM团队成员
  • PSPDFKit的团队负责人

原文链接: https://spiess.dev/blog/how-i-use-claude-code

翻译说明: 本文翻译自Philipp Spiess的博客文章,展示了他使用Claude Code的实践经验和技巧总结。


文章转载自:
http://biconvex.wjrtg.cn
http://cerebra.wjrtg.cn
http://attitudinarian.wjrtg.cn
http://begrudge.wjrtg.cn
http://abbacy.wjrtg.cn
http://absorptance.wjrtg.cn
http://buzzard.wjrtg.cn
http://cembalist.wjrtg.cn
http://capercaillie.wjrtg.cn
http://caddis.wjrtg.cn
http://acquire.wjrtg.cn
http://bloodroot.wjrtg.cn
http://caseidin.wjrtg.cn
http://byr.wjrtg.cn
http://accordion.wjrtg.cn
http://ballooner.wjrtg.cn
http://cardcarrier.wjrtg.cn
http://acrid.wjrtg.cn
http://backwardly.wjrtg.cn
http://beneficially.wjrtg.cn
http://carefulness.wjrtg.cn
http://categorical.wjrtg.cn
http://boor.wjrtg.cn
http://chromo.wjrtg.cn
http://aeroacoustics.wjrtg.cn
http://blacklist.wjrtg.cn
http://adjoint.wjrtg.cn
http://arriviste.wjrtg.cn
http://amebocyte.wjrtg.cn
http://bacteriostat.wjrtg.cn
http://www.dtcms.com/a/252336.html

相关文章:

  • 基于NAS与内网穿透技术的远程访问架构设计及安全实现
  • 浏览器实现跨系统交互
  • 【寻找Linux的奥秘】第十章:基础文件IO(上)
  • 华为流程体系拆解系列:L1-L6分层拆解逻辑
  • CentOS 7 环境下 Visual Studio Code 安装与部署
  • 分布式系统全链路监控之一:分布式全链路监控基础概念和OpenTelemetry
  • 5.安装IK分词器
  • 鸿蒙组件通用事件开发全攻略:从基础交互到工程实践
  • 华大TAU1114-1216A00四系统GNSS定位模块,车载/穿戴/IoT全适配!-165dBm高灵敏度,定位快人一步!“
  • 基于nacos和gateway搭建微服务管理平台详细教程
  • 安宝特案例丨突破传统手术室,Vuzix AR 眼镜圆满助力全膝关节置换术
  • 【力扣 中等 C】912. 排序数组
  • 高级网络中间人攻击与加密防护机制
  • 安宝特方案丨AR破解带电配网作业困局!全方位解决方案赋能电力运维新变革
  • 日志混乱与数据不一致问题实战排查:工具协同调试记录(含克魔使用点)
  • java 数组排序算法
  • 【Linux指南】文件内容查看与文本处理
  • OpenCV CUDA模块设备层------简介
  • C++初阶-queue和deque(队列和双端队列)
  • cockplit 出现 Cannot refresh cache whilst offline 处理
  • 时间序列分析
  • 【Java】抽象类与接口全解析
  • android 启动速度优化
  • Ubuntu 22.04离线安装Docker和NVIDIA Container Toolkit(使用gpu)
  • 在 VMware (WM) 虚拟机上安装的 Ubuntu 22.04 分配了 20GB 磁盘,但仅使用 10GB 就显示 “空间已满“
  • 【ZYNQ Linux开发】gpio子系统相关驱动先于Xgpio注册完成而加载失败的问题分析与探究
  • 《从IaaS到容器化:深度解析云计算三层架构与阿里云ECS+K8s协同实践》
  • 快速入门数据结构--栈
  • 【云计算领域数学基础】组合数学优化
  • 1.19集成开发环境(IDE)