HoRain云--Claude Code 基础用法
HoRain云小助手个人主页 个人专栏: 《Linux 系列教程》《c语言教程》⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。专栏介绍专栏名称专栏介绍《C语言》本专栏主要撰写C干货内容和编程技巧让大家从底层了解C把更多的知识由抽象到简单通俗易懂。《网络协议》本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘一起解密网络协议在运行中协议的基本运行机制《docker容器精解篇》全面深入解析 docker 容器从基础到进阶涵盖原理、操作、实践案例助您精通 docker。《linux系列》本专栏主要撰写Linux干货内容从基础到进阶知识由抽象到简单通俗易懂帮你从新手小白到扫地僧。《python 系列》本专栏着重撰写Python相关的干货内容与编程技巧助力大家从底层去认识Python将更多复杂的知识由抽象转化为简单易懂的内容。《试题库》本专栏主要是发布一些考试和练习题库涵盖软考、HCIE、HRCE、CCNA等目录⛳️ 推荐专栏介绍基本对话方式1、交互模式最常用2、一次性任务模式3、单次查询模式-p4、继续上一次对话-c理解和分析代码1、了解项目整体情况2、分析特定文件或模块3、追踪代码调用链4、理解复杂逻辑修改代码1、添加新功能2、修复 Bug3、重构代码4、审查修改内容执行命令和测试1、让 Claude 运行命令2、运行特定测试3、查看命令输出文件操作1、创建新文件2、查找文件和内容3、批量修改Git 操作1、查看变更2、提交代码3、分支管理4、处理合并冲突上下文管理技巧1、手动指定文件2、清除上下文3、压缩上下文4、合理拆分任务常用斜杠命令实用技巧1、让 Claude 先分析再动手2、提供错误信息和日志3、用截图描述 UI 问题4、善用继续5、要求解释修改内容6、限制 Claude 的操作范围常见工作流示例工作流一快速了解新项目实例工作流二修复一个 Bug实例工作流三添加一个新功能实例工作流四代码审查注意事项本章介绍 Claude Code 日常开发中最常用的核心功能包括如何与 Claude 对话、读取和修改代码、执行命令、处理文件以及一些能大幅提升效率的实用技巧。基本对话方式1、交互模式最常用在项目目录下启动 Claude Code进入交互模式后即可直接输入问题或指令cd /path/to/your/project claude在交互模式中直接输入自然语言即可无需任何特殊格式这个项目是做什么的帮我找出 src/auth.ts 里的 bug给 UserService 添加一个 getUserById 方法用 符合可以指定文件比如我们在 claude-test 目录下有个 test.html。我们可以进入 claude-testcd claude-test然后询问test.html 这个文件是干嘛的2、一次性任务模式如果只需要执行一个任务不需要进入交互模式可以直接在命令后面带上任务描述claude 解释一下 package.json 里的 scripts 字段执行完毕后自动退出适合在 shell 脚本中使用或快速查询。3、单次查询模式-p使用-p参数执行一次性查询Claude 的回答会直接输出到终端适合与其他命令组合使用claude -p 这段代码有什么问题 src/utils.ts# 将 Claude 的分析结果保存到文件 claude -p 分析项目依赖的安全风险 security-report.md4、继续上一次对话-cClaude Code 会保存对话历史。使用-c参数可以在当前目录继续最近一次未完成的对话无需重新建立上下文claude -c理解和分析代码1、了解项目整体情况刚进入一个陌生项目时可以先让 Claude 做整体分析这个项目的架构是怎样的项目用了哪些主要的技术和依赖请介绍一下项目的目录结构Claude Code 会自动读取项目文件进行分析你不需要手动指定要读取哪些文件它会自行判断需要查看哪些内容。2、分析特定文件或模块解释一下 src/middleware/auth.ts 的工作原理UserRepository 类里有哪些方法分别是做什么的这个 SQL 查询语句是什么意思3、追踪代码调用链当用户登录时代码执行流程是怎样的从入口到数据库全部列出来findUserByEmail 这个函数在哪里被调用这个接口的数据最终存到了哪张数据库表里4、理解复杂逻辑这段递归函数是什么意思能举个例子说明吗为什么这里要用 useCallback不用会怎样这个正则表达式能匹配什么格式的字符串修改代码1、添加新功能描述你需要的功能Claude 会找到合适的位置并实现在 UserService 里添加一个 updatePassword 方法需要验证旧密码给登录接口添加请求频率限制同一 IP 每分钟最多 5 次创建一个 formatCurrency 工具函数支持传入货币代码参数2、修复 Bug描述问题现象Claude 会定位原因并给出修复方案用户登出后刷新页面仍然显示已登录状态帮我找出原因并修复这个函数在输入为空数组时会报错修复它控制台报错 Cannot read properties of undefined (reading map)帮我定位并修复3、重构代码把这个 500 行的组件拆分成更小的子组件将 callback 风格的异步代码改为 async/await这几个函数里有大量重复代码帮我提取成通用函数4、审查修改内容Claude Code 每次修改文件前都会展示 diff供你审查。你可以在 Claude 提出修改方案后进行讨论先不要改代码只告诉我你打算怎么修改你刚才的修改有个问题没有处理并发情况重新来过这个方案可以但把函数名改成 validateUserCredentialsClaude Code 在执行任何文件修改前都会展示修改内容并请求你的确认。你可以选择接受yes、拒绝no或者在确认前继续讨论。不要觉得必须一次接受所有修改——先看觉得没问题再确认。执行命令和测试1、让 Claude 运行命令Claude Code 可以直接在终端执行命令你可以用自然语言描述要做什么运行测试看看有没有失败的安装 dayjs 这个依赖把项目构建一下看看有没有报错Claude 会根据项目配置如package.json中的 scripts 或CLAUDE.md中的命令选择正确的命令执行。2、运行特定测试运行 auth 模块的测试运行所有测试并生成覆盖率报告这个测试为什么失败了帮我修复3、查看命令输出Claude 会将命令输出作为上下文直接根据输出内容给出下一步建议运行 npm run build如果有报错帮我修复跑一下 lint把所有警告都修复掉文件操作1、创建新文件创建 src/utils/date.ts实现日期格式化相关的工具函数新建一个 Docker Compose 配置文件包含 PostgreSQL 和 Redis 服务创建 .github/workflows/ci.yml配置 GitHub Actions 自动运行测试2、查找文件和内容项目里有没有处理文件上传的代码在哪里哪些地方用到了 localStorage找出所有使用了 console.log 的文件3、批量修改把所有文件里的 http://api.example.com 替换成 https://api.example.com把 src/components/ 下所有组件的 PropTypes 改为 TypeScript 类型定义给 src/api/ 目录下所有接口函数添加 JSDoc 注释Git 操作Claude Code 深度集成了 Git可以用自然语言完成几乎所有 Git 操作。1、查看变更我改了哪些文件这次的改动有哪些内容最近 10 次提交都改了什么2、提交代码提交这次的改动把这次的修改提交commit 信息说明修复了登录验证的 bugClaude 会根据实际改动内容自动生成符合规范的 commit 信息也可以用快捷命令claude commit3、分支管理新建一个 feature/user-profile 分支切换到 develop 分支把 main 分支的最新改动合并进来4、处理合并冲突帮我解决合并冲突这个文件有冲突帮我看看哪个版本是正确的上下文管理技巧1、手动指定文件使用文件路径语法可以明确告诉 Claude 需要参考哪个文件避免它自己去猜参考 src/types/user.ts 里的类型定义给 UserService 添加类型注解对照 docs/api-spec.md 里的规范检查接口实现是否符合要求2、清除上下文当对话进行了很长时间或者切换到了完全不同的任务时建议清除上下文重新开始/clear清除后 Claude 的记忆回到初始状态新会话不受之前对话内容的影响。3、压缩上下文当感觉 Claude 开始遗忘之前的内容或者对话变得很长时可以压缩上下文/compact这会让 Claude 将当前对话内容总结为精简摘要释放上下文空间同时保留关键信息继续工作。4、合理拆分任务复杂任务不要一次性全部描述拆成几个步骤逐步完成效果更好❌ 不好的做法一次性丢给 Claude 太多要求帮我重构整个用户模块包括添加类型注解、拆分文件、 优化数据库查询、添加缓存、写测试、更新文档✅ 好的做法按逻辑顺序拆分成独立步骤第一步分析 src/user/ 目录的现有结构告诉我有哪些问题 第二步先给所有函数添加 TypeScript 类型注解 第三步把超过 200 行的文件拆分成更小的模块 第四步优化数据库查询添加必要的索引常用斜杠命令在交互模式中输入/会弹出所有可用命令的列表。以下是最常用的斜杠命令命令功能使用场景/help查看所有可用命令和功能说明不知道有哪些功能时/clear清除对话历史开始全新会话切换到新任务时/compact压缩当前对话上下文释放空间对话很长时 Claude 开始遗忘/init分析项目并生成 CLAUDE.md 文件首次在新项目中使用/resume从历史中选择并恢复之前的对话继续昨天未完成的任务/undo撤销上一次文件修改Claude 的修改效果不对时/redo重做被撤销的修改撤销后发现还是原来的好/login登录或切换账号需要切换到另一个账号时/config查看和修改配置调整 Claude Code 行为设置/cost查看本次会话的 Token 用量使用 API 账号时关注成本实用技巧1、让 Claude 先分析再动手遇到复杂问题先让 Claude 说明思路确认方向正确后再执行不要修改代码先分析登录失败的可能原因列出你的排查思路你打算怎么实现这个功能先描述方案我确认后再写代码2、提供错误信息和日志遇到报错时直接把错误信息粘贴到对话中Claude 会根据错误内容定位问题运行时报了这个错误帮我分析原因 TypeError: Cannot read properties of null (reading userId) at getUserProfile (src/services/user.ts:42:18) at async ProfileController.getProfile (src/controllers/profile.ts:15:20)3、用截图描述 UI 问题Claude Code 支持多模态输入可以将截图直接粘贴到对话中描述 UI 相关的问题[粘贴截图] 这个按钮点击后没有反应但控制台没有报错帮我排查[粘贴设计稿截图] 按照这个设计实现 Header 组件4、善用继续如果 Claude 的回答被截断或者你觉得它还没说完直接说继续即可继续还有吗把剩下的部分也实现了5、要求解释修改内容对于重要的代码修改可以要求 Claude 解释每处改动的原因修改完之后给我解释一下每处改动的目的这里为什么要用 Promise.allSettled 而不是 Promise.all6、限制 Claude 的操作范围当你不希望 Claude 随意改动其他文件时可以明确限定范围只修改 src/auth.ts 这一个文件不要改其他地方只读取代码不要修改帮我分析这个模块的性能瓶颈常见工作流示例工作流一快速了解新项目实例# 第一步启动并了解项目 这个项目是做什么的用了哪些技术# 第二步了解目录结构 介绍一下项目的目录结构重点介绍核心模块# 第三步了解如何运行 怎么在本地把这个项目跑起来# 第四步生成项目说明文件 帮我生成一个 CLAUDE.md 文件总结项目的关键信息工作流二修复一个 Bug实例# 第一步描述问题 用户反馈修改个人信息后页面顶部的用户名没有实时更新# 第二步让 Claude 分析原因 先分析一下可能的原因不要修改代码# 第三步确认方案后修复 你说的第二种原因看起来更可能按那个思路修复# 第四步验证修复 运行相关的测试确认修复有效工作流三添加一个新功能实例# 第一步描述需求 需要给订单列表添加按状态筛选的功能状态有待付款、已付款、已发货、已完成# 第二步了解现有代码 先看看订单相关的现有代码结构# 第三步实现功能 在不影响现有功能的前提下实现筛选功能# 第四步补充测试 为这个新功能写测试用例# 第五步提交代码 把这次的改动提交工作流四代码审查# 审查特定文件 帮我审查 src/payment/processor.ts 这个文件 重点关注错误处理、边界情况和安全风险 # 审查 git 改动 审查我这次的所有改动看看有没有明显的问题 # 针对性检查 这段代码有没有 SQL 注入的风险注意事项关于文件修改Claude Code 会在修改前展示 diff 并请求确认不要无脑全部接受尤其是涉及核心逻辑的修改请仔细阅读 diff 内容再决定是否接受。关于敏感文件在CLAUDE.md或.claude/settings.json中明确标注不允许 Claude 读取或修改的文件如.env、密钥文件避免意外暴露。关于大型任务一个对话中不要堆积太多未完成的任务容易导致 Claude 失去焦点。完成一个任务后再开始下一个或者使用/clear重新开始。关于代码质量Claude 生成的代码不总是最优解对于重要模块执行完成后建议做一轮 code review理解每处改动的目的确保符合项目的设计原则。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧