文章目录
- 刚接手一个新项目时,很多人的第一反应是打开编辑器,从入口文件开始一行行看。别这样做! 这样看一周也理不清头绪。 我的方法是"从宏观到微观"的三板斧: 第一步:获取高级概览 cd /path/to/project claude 然后直接问: > 给我这个代码库的概览 Claude 会分析整个项目结构,告诉你: 这是什么类型的项目(Web应用、API服务、CLI工具等) 使用了哪些主要技术栈 核心模块有哪些 项目的目录结构组织方式 第二步:理解架构模式 > 解释这里使用的主要架构模式 这个问题太关键了!我曾经接手一个微服务项目,看了一周都没搞清楚服务间的调用关系。问了这个问题后,Claude 直接告诉我: 采用的是事件驱动架构 使用了 CQRS 模式 服务间通过消息队列通信 有清晰的分层结构 瞬间豁然开朗! 第三步:深入关键细节 有了架构理解后,再针对性地深入: > 关键的数据模型有哪些? > 认证是如何处理的?
- 理解了整体架构后,接下来是快速定位具体功能的实现代码。 场景1:找功能实现 > 找出处理用户认证的文件 Claude 不仅会列出相关文件,还会解释每个文件的作用。比如: auth.service.ts – 核心认证逻辑 auth.guard.ts – 路由守卫 auth.middleware.ts – 请求预处理 场景2:理解组件交互 > 这些认证文件是如何协同工作的? 这会得到一个清晰的调用链路图,比看代码注释高效100倍。 场景3:追踪执行流程 > 追踪从前端到数据库的登录流程 从用户点击登录按钮,到前端发送请求,到后端验证,再到数据库查询,整个流程一清二楚。
- 经验1:使用项目术语 不同团队有自己的命名习惯。如果你们把"用户"叫"Member",那就问: > 找出处理成员认证的文件 这样得到的结果更准确。 经验2:从测试入手 如果项目有完善的测试,我会先问: > 显示支付模块的测试文件 测试文件通常能快速了解模块的功能和用法。 经验3:建立词汇表 大型项目往往有自己的术语。我会让 Claude 帮我整理: > 创建项目特定术语的词汇表 这样后续交流更顺畅。
- 遇到错误时,很多开发者的第一反应是复制错误信息到 Google。但很多时候,同样的错误信息可能有完全不同的原因。 我的方法是把完整上下文给 Claude: > 运行 npm test 时遇到了错误 然后把错误堆栈粘贴给 Claude。关键是提供: 完整的错误信息 执行的命令 重现步骤(如果知道的话) 让 Claude 分析后,再问: > 建议几种修复方法 注意,我故意问"几种方法",而不是"怎么修复"。这样可以: 看到不同的解决思路 理解每种方案的优缺点 选择最适合当前项目的方案 选定方案后: > 更新 user.ts 添加你建议的空值检查
- 修复一个 Bug 不难,难的是避免类似问题再次出现。 我的做法是: 第一步:根因分析 > 这个错误的根本原因是什么? > 代码的其他部分是否可能存在相同问题? 第二步:添加防护措施 > 添加验证以防止此类错误 第三步:补充测试 > 编写能够捕获此错误的测试用例
- 经验1:区分错误类型 告诉 Claude 错误的特性: > 这个错误间歇性发生,大约10次里有1次 间歇性错误和持续错误的分析方法完全不同。 经验2:分享环境信息 > 我在 macOS 上使用 Node 18.17.0 环境差异可能导致的问题,Claude 能帮你考虑到。 经验3:让 Claude 解释 修复后,我会问: > 解释为什么这个修复有效 理解原理,下次遇到类似问题就能自己解决了。
- 代码重构最难的不是怎么改,而是改什么。项目大了,到处都是"历史遗留代码",从哪里开始? 我的方法是让 Claude 帮我扫描: > 查找代码库中已弃用的 API 使用 或者更具体: > 查找所有使用 moment.js 的地方并建议替代方案 Claude 会列出所有使用旧 API 的地方,并给出现代化的替代方案。
- 找到了重构目标,接下来是安全地执行。我的原则是:小步快跑,每步验证。 第一步:获取重构建议 > 建议如何重构 utils.js 以使用现代 JavaScript 特性 第二步:明确行为不变 > 重构 utils.js 以使用 ES2024 特性,同时保持相同的行为 重点强调"保持相同的行为",避免 Claude 引入破坏性变更。 第三步:立即验证 > 为重构后的代码运行测试 第四步:如果没有测试? > 在重构前为 utils.js 编写测试 先补测试,再重构,安全系数翻倍。
- 经验1:明确兼容性要求 如果项目需要支持旧环境: > 重构时保持 IE11 兼容性 经验2:请求解释收益 > 解释这种重构方法的好处 不是为了用新语法而重构,而是为了更好的性能、可维护性。 经验3:分批次重构 大型重构不要一次性做完: > 先只重构日期处理函数 减少风险,便于代码审查。
- 有些问题不是简单问答能解决的。比如: 设计一个新的认证系统 评估技术选型的利弊 规划数据库分片策略 这时候,我会触发 Claude 的扩展思考模式: > 我需要使用 OAuth2 实现一个新的认证系统。 > 深入思考在我们代码库中的最佳方案。 关键触发词: think think more / think harder / think longer think a lot 触发后,你会看到 Claude 的思考过程以斜体灰色文本显示。这个过程可能持续几十秒甚至更久,不要中断它! 这正是深度分析的价值所在。
- 场景1:架构规划 > 我们正在从单体应用迁移到微服务。 > 思考拆分用户模块的最佳策略。 场景2:复杂调试 > 我们有一个只在高负载下出现的内存泄漏。 > 思考所有可能的原因和调查方法。 场景3:权衡分析 > 思考在我们的新日志系统中使用 PostgreSQL 与 MongoDB 的权衡。
- 经验1:提供充分上下文 扩展思考的效果取决于你提供的信息: > 思考如何优化我们的 API 响应时间。 > 目前平均是 2 秒,我们需要降到 200 毫秒以下。 > 我们使用的是 Node.js + PostgreSQL + Redis。 经验2:追问和深化 第一次思考后,继续深入: > 思考这种方法中潜在的安全漏洞 > 更深入地思考我们应该处理的边缘情况 经验3:保存思考过程 Claude 的思考过程本身很有价值。我会复制出来,作为设计文档的一部分。
- 作为开发者,你是不是经常遇到这种情况: 正在开发新功能,突然来了一个紧急 Bug 不得不 stash 当前修改,切换分支修 Bug 修完回来,恢复 stash,结果各种冲突 Git Worktrees 就是为了解决这个问题而生的。 简单说,Worktrees 允许你在同一台机器上,同时检出同一个仓库的多个分支到不同目录。每个目录都是独立的工作区,互不干扰。
- 创建新的 Worktree: # 为新功能创建 worktree git worktree add ../my-project-feature-a -b feature-a # 或者用现有分支创建 git worktree add ../my-project-bugfix bugfix-123 在不同 Worktree 中运行 Claude Code: # 终端1:开发新功能 cd ../my-project-feature-a claude # 终端2:修复 Bug cd ../my-project-bugfix claude 两个 Claude 实例完全隔离! 一个在写新功能,一个在修 Bug,互不影响。 管理 Worktrees: # 查看所有 worktrees git worktree list # 完成后删除 git worktree remove ../my-project-feature-a
- 重要! 新 Worktree 是干净的代码目录,需要初始化开发环境: JavaScript 项目: cd ../my-project-feature-a npm install # 或 yarn / pnpm Python 项目: cd ../my-project-feature-a python -m venv venv source venv/bin/activate pip install -r requirements.txt
- 经验1:命名规范 用描述性的目录名: git worktree add ../myproject-auth-refactor -b auth-refactor git worktree add ../myproject-urgent-fix -b hotfix-123 一眼就知道每个 worktree 是做什么的。 经验2:长期任务隔离 对于需要几天才能完成的任务,单独一个 worktree: # 早上继续开发 cd ../myproject-big-feature claude –continue 经验3:PR 准备区 专门用一个 worktree 来准备 PR: git worktree add ../myproject-pr-prep -b pr-prep cd ../myproject-pr-prep claude > 帮我准备一个干净的 PR
- 团队协作时,有些操作是固定的流程。与其每次手动输入,不如封装成命令。 创建命令目录: mkdir -p .claude/commands 创建优化命令: echo “分析这段代码的性能并建议三个具体的优化措施:” > .claude/commands/optimize.md 使用命令: > /project:optimize 就这么简单!
- 固定命令很好,但有时候需要动态参数。使用 $ARGUMENTS 占位符: 创建 Fix Issue 命令: cat > .claude/commands/fix-issue.md <<‘EOF’ 查找并修复问题 #$ARGUMENTS。按以下步骤操作: 1. 理解工单中描述的问题 2. 在代码库中定位相关代码 3. 实现解决根本原因的方案 4. 添加适当的测试 5. 准备简洁的 PR 描述 EOF 使用命令: > /project:fix-issue 123 $ARGUMENTS 会被替换为 123。 更多应用场景: # 生成测试 echo “为 $ARGUMENTS 函数生成全面的测试” > .claude/commands/test.md # 代码审查 echo “审查 $ARGUMENTS 的安全漏洞” > .claude/commands/security-review.md # 文档生成 echo “为 $ARGUMENTS 添加带示例的文档” > .claude/commands/document.md
- 有些命令是通用的,适合所有项目。放在个人目录: mkdir -p ~/.claude/commands 创建个人命令: echo “审查这段代码的常见安全问题: – SQL 注入 – XSS 漏洞 – CSRF 保护 – 认证缺陷 – 敏感数据泄露” > ~/.claude/commands/security-audit.md 在任何项目中使用: > /user:security-audit 个人命令 vs 项目命令: /user:xxx – 个人命令,所有项目可用 /project:xxx – 项目命令,团队成员共享
目录
- 前言
- 一、快速理解新代码库 – 告别"看代码看到眼花"
- 1.1 项目概览三板斧
- 1.2 精准定位代码
- 💡 实战经验分享
- 二、高效修复错误 – 不再为 Bug 掉头发
- 2.1 错误诊断的正确姿势
- 2.2 从修复到预防
- 💡 实战经验分享
- 三、代码重构 – 让旧代码焕发新生
- 3.1 识别重构目标
- 3.2 安全重构策略
- 💡 实战经验分享
- 四、扩展思考 – 处理复杂架构决策
- 4.1 深度思考模式
- 4.2 最佳使用场景
- 💡 实战经验分享
- 五、Git Worktrees 并行开发 – 多任务处理神器
- 5.1 理解 Worktrees
- 5.2 实战操作
- 5.3 环境初始化注意事项
- 💡 实战经验分享
- 六、自定义斜杠命令 – 打造专属工具箱
- 6.1 项目级命令
- 6.2 参数化命令 – 更灵活的利器
- 6.3 个人命令库
- 💡 实战经验分享
- 其他实用功能速览
- 测试覆盖
- PR 创建
- 文档管理
- 图像处理
- 会话恢复
- 总结与心得
从代码小白到团队效率担当,掌握这些工作流程后,我终于告别了996
还记得刚加入新公司时的那种无助感吗?面对一个几万行代码的项目,光是理解架构就要花上好几周,遇到 Bug 更是焦头烂额。直到半年前,我开始使用 Claude Code,一切都变了。
起初,我只把它当作一个"更聪明的代码补全工具"。但随着深入了解,我发现它真正强大的是一套完整的工作流程体系。从理解代码库到并行开发,从错误修复到架构决策,每个环节都能找到对应的最佳实践。
这篇文章,我想和你分享我摸索出来的6个最实用的工作流程。 这些都是我在实战中反复验证过的,如果你也是有经验的开发者,相信看完后会有相见恨晚的感觉。
刚接手一个新项目时,很多人的第一反应是打开编辑器,从入口文件开始一行行看。别这样做! 这样看一周也理不清头绪。
我的方法是"从宏观到微观"的三板斧:
第一步:获取高级概览
cd /path/to/project claude
然后直接问:
> 给我这个代码库的概览
Claude 会分析整个项目结构,告诉你:
- 这是什么类型的项目(Web应用、API服务、CLI工具等)
- 使用了哪些主要技术栈
- 核心模块有哪些
- 项目的目录结构组织方式
第二步:理解架构模式
> 解释这里使用的主要架构模式
这个问题太关键了!我曾经接手一个微服务项目,看了一周都没搞清楚服务间的调用关系。问了这个问题后,Claude 直接告诉我:
- 采用的是事件驱动架构
- 使用了 CQRS 模式
- 服务间通过消息队列通信
- 有清晰的分层结构
瞬间豁然开朗!
第三步:深入关键细节
有了架构理解后,再针对性地深入:
> 关键的数据模型有哪些? > 认证是如何处理的?
理解了整体架构后,接下来是快速定位具体功能的实现代码。
场景1:找功能实现
> 找出处理用户认证的文件
Claude 不仅会列出相关文件,还会解释每个文件的作用。比如:
auth.service.ts– 核心认证逻辑auth.guard.ts– 路由守卫auth.middleware.ts– 请求预处理
场景2:理解组件交互
> 这些认证文件是如何协同工作的?
这会得到一个清晰的调用链路图,比看代码注释高效100倍。
场景3:追踪执行流程
> 追踪从前端到数据库的登录流程
从用户点击登录按钮,到前端发送请求,到后端验证,再到数据库查询,整个流程一清二楚。
经验1:使用项目术语
不同团队有自己的命名习惯。如果你们把"用户"叫"Member",那就问:
> 找出处理成员认证的文件
这样得到的结果更准确。
经验2:从测试入手
如果项目有完善的测试,我会先问:
> 显示支付模块的测试文件
测试文件通常能快速了解模块的功能和用法。
经验3:建立词汇表
大型项目往往有自己的术语。我会让 Claude 帮我整理:
> 创建项目特定术语的词汇表
这样后续交流更顺畅。
遇到错误时,很多开发者的第一反应是复制错误信息到 Google。但很多时候,同样的错误信息可能有完全不同的原因。
我的方法是把完整上下文给 Claude:
> 运行 npm test 时遇到了错误
然后把错误堆栈粘贴给 Claude。关键是提供:
- 完整的错误信息
- 执行的命令
- 重现步骤(如果知道的话)
让 Claude 分析后,再问:
> 建议几种修复方法
注意,我故意问"几种方法",而不是"怎么修复"。这样可以:
- 看到不同的解决思路
- 理解每种方案的优缺点
- 选择最适合当前项目的方案
选定方案后:
> 更新 user.ts 添加你建议的空值检查
修复一个 Bug 不难,难的是避免类似问题再次出现。
我的做法是:
第一步:根因分析
> 这个错误的根本原因是什么? > 代码的其他部分是否可能存在相同问题?
第二步:添加防护措施
> 添加验证以防止此类错误
第三步:补充测试
> 编写能够捕获此错误的测试用例
经验1:区分错误类型
告诉 Claude 错误的特性:
> 这个错误间歇性发生,大约10次里有1次
间歇性错误和持续错误的分析方法完全不同。
经验2:分享环境信息
> 我在 macOS 上使用 Node 18.17.0
环境差异可能导致的问题,Claude 能帮你考虑到。
经验3:让 Claude 解释
修复后,我会问:
> 解释为什么这个修复有效
理解原理,下次遇到类似问题就能自己解决了。
代码重构最难的不是怎么改,而是改什么。项目大了,到处都是"历史遗留代码",从哪里开始?
我的方法是让 Claude 帮我扫描:
> 查找代码库中已弃用的 API 使用
或者更具体:
> 查找所有使用 moment.js 的地方并建议替代方案
Claude 会列出所有使用旧 API 的地方,并给出现代化的替代方案。
找到了重构目标,接下来是安全地执行。我的原则是:小步快跑,每步验证。
第一步:获取重构建议
> 建议如何重构 utils.js 以使用现代 JavaScript 特性
第二步:明确行为不变
> 重构 utils.js 以使用 ES2024 特性,同时保持相同的行为
重点强调"保持相同的行为",避免 Claude 引入破坏性变更。
第三步:立即验证
> 为重构后的代码运行测试
第四步:如果没有测试?
> 在重构前为 utils.js 编写测试
先补测试,再重构,安全系数翻倍。
经验1:明确兼容性要求
如果项目需要支持旧环境:
> 重构时保持 IE11 兼容性
经验2:请求解释收益
> 解释这种重构方法的好处
不是为了用新语法而重构,而是为了更好的性能、可维护性。
经验3:分批次重构
大型重构不要一次性做完:
> 先只重构日期处理函数
减少风险,便于代码审查。
有些问题不是简单问答能解决的。比如:
- 设计一个新的认证系统
- 评估技术选型的利弊
- 规划数据库分片策略
这时候,我会触发 Claude 的扩展思考模式:
> 我需要使用 OAuth2 实现一个新的认证系统。 > 深入思考在我们代码库中的最佳方案。
关键触发词:
thinkthink more/think harder/think longerthink a lot
触发后,你会看到 Claude 的思考过程以斜体灰色文本显示。这个过程可能持续几十秒甚至更久,不要中断它! 这正是深度分析的价值所在。
场景1:架构规划
> 我们正在从单体应用迁移到微服务。 > 思考拆分用户模块的最佳策略。
场景2:复杂调试
> 我们有一个只在高负载下出现的内存泄漏。 > 思考所有可能的原因和调查方法。
场景3:权衡分析
> 思考在我们的新日志系统中使用 PostgreSQL 与 MongoDB 的权衡。
经验1:提供充分上下文
扩展思考的效果取决于你提供的信息:
> 思考如何优化我们的 API 响应时间。 > 目前平均是 2 秒,我们需要降到 200 毫秒以下。 > 我们使用的是 Node.js + PostgreSQL + Redis。
经验2:追问和深化
第一次思考后,继续深入:
> 思考这种方法中潜在的安全漏洞 > 更深入地思考我们应该处理的边缘情况
经验3:保存思考过程
Claude 的思考过程本身很有价值。我会复制出来,作为设计文档的一部分。
作为开发者,你是不是经常遇到这种情况:
- 正在开发新功能,突然来了一个紧急 Bug
- 不得不 stash 当前修改,切换分支修 Bug
- 修完回来,恢复 stash,结果各种冲突
Git Worktrees 就是为了解决这个问题而生的。
简单说,Worktrees 允许你在同一台机器上,同时检出同一个仓库的多个分支到不同目录。每个目录都是独立的工作区,互不干扰。
创建新的 Worktree:
# 为新功能创建 worktree git worktree add ../my-project-feature-a -b feature-a # 或者用现有分支创建 git worktree add ../my-project-bugfix bugfix-123
在不同 Worktree 中运行 Claude Code:
# 终端1:开发新功能 cd ../my-project-feature-a claude # 终端2:修复 Bug cd ../my-project-bugfix claude
两个 Claude 实例完全隔离! 一个在写新功能,一个在修 Bug,互不影响。
管理 Worktrees:
# 查看所有 worktrees git worktree list # 完成后删除 git worktree remove ../my-project-feature-a
重要! 新 Worktree 是干净的代码目录,需要初始化开发环境:
JavaScript 项目:
cd ../my-project-feature-a npm install # 或 yarn / pnpm
Python 项目:
cd ../my-project-feature-a python -m venv venv source venv/bin/activate pip install -r requirements.txt
经验1:命名规范
用描述性的目录名:
git worktree add ../myproject-auth-refactor -b auth-refactor git worktree add ../myproject-urgent-fix -b hotfix-123
一眼就知道每个 worktree 是做什么的。
经验2:长期任务隔离
对于需要几天才能完成的任务,单独一个 worktree:
# 早上继续开发 cd ../myproject-big-feature claude --continue
经验3:PR 准备区
专门用一个 worktree 来准备 PR:
git worktree add ../myproject-pr-prep -b pr-prep cd ../myproject-pr-prep claude > 帮我准备一个干净的 PR
团队协作时,有些操作是固定的流程。与其每次手动输入,不如封装成命令。
创建命令目录:
mkdir -p .claude/commands
创建优化命令:
echo "分析这段代码的性能并建议三个具体的优化措施:" > .claude/commands/optimize.md
使用命令:
> /project:optimize
就这么简单!
固定命令很好,但有时候需要动态参数。使用 $ARGUMENTS 占位符:
创建 Fix Issue 命令:
cat > .claude/commands/fix-issue.md <<'EOF' 查找并修复问题 #$ARGUMENTS。按以下步骤操作: 1. 理解工单中描述的问题 2. 在代码库中定位相关代码 3. 实现解决根本原因的方案 4. 添加适当的测试 5. 准备简洁的 PR 描述 EOF
使用命令:
> /project:fix-issue 123
$ARGUMENTS 会被替换为 123。
更多应用场景:
# 生成测试 echo "为 $ARGUMENTS 函数生成全面的测试" > .claude/commands/test.md # 代码审查 echo "审查 $ARGUMENTS 的安全漏洞" > .claude/commands/security-review.md # 文档生成 echo "为 $ARGUMENTS 添加带示例的文档" > .claude/commands/document.md
有些命令是通用的,适合所有项目。放在个人目录:
mkdir -p ~/.claude/commands
创建个人命令:
echo "审查这段代码的常见安全问题: - SQL 注入 - XSS 漏洞 - CSRF 保护 - 认证缺陷 - 敏感数据泄露" > ~/.claude/commands/security-audit.md
在任何项目中使用:
> /user:security-audit
个人命令 vs 项目命令:
/user:xxx– 个人命令,所有项目可用/project:xxx– 项目命令,团队成员共享
经验1:建立团队命令库
我们团队创建了这些常用命令:
/project:optimize– 性能优化分析/project:fix-issue– 修复 Issue 流程/project:review-pr– PR 审查清单/project:update-deps– 依赖更新检查
新人入职,克隆仓库就能用,大大降低上手成本。
经验2:命令模板化
把常用的 Prompt 模板化:
# code-review.md 审查这段代码的: 1. **代码质量**: 可读性、命名、结构 2. **性能**: 识别瓶颈 3. **安全性**: 检查漏洞 4. **测试**: 覆盖率和质量 提供具体、可操作的建议。
经验3:版本控制命令
把 .claude/commands 目录加入 Git,团队共享:
git add .claude/commands git commit -m "添加团队 Claude 命令"
除了上面重点介绍的6个工作流程,Claude Code 还有很多实用功能。这里快速过一遍:
> 查找未被测试覆盖的函数
> 为边缘情况添加测试
> 运行新测试并修复任何失败
> 总结我做的修改
> 创建一个 PR
> 用更多上下文增强 PR 描述
> 查找没有适当 JSDoc 注释的函数
> 添加带示例的文档
> 检查文档是否符合项目标准
可以直接把图片拖进 CLI,然后问:
> 这个错误截图显示了什么? > 生成 CSS 以匹配这个设计稿
# 继续最近的对话
claude --continue
# 选择特定对话
claude --resume
回顾这半年使用 Claude Code 的经历,我的效率提升至少在 300% 以上。这不是夸张,而是实实在在的数据:
量化收益:
- 新项目上手时间:从2周缩短到2天
- Bug 修复时间:平均减少60%
- 代码审查效率:提升3倍
- 文档编写时间:减少80%
更重要的是思维方式的转变:
以前遇到问题,我的第一反应是"我去查查"。现在是"我问问 Claude"。
以前写代码,我要自己规划每一步。现在是我告诉 Claude 目标,它给我几个方案,我来选最优的。
但也要注意:
Claude Code 不是万能的。它:
- 不能替代你的技术判断
- 不能跳过代码审查
- 不能盲目信任它的输出
它更像一个超级助手,帮你更快地探索、验证、实现。最终决策权还是在你手里。
学习曲线:
说实话,前两周我也很迷茫。不知道怎么问问题,不知道什么时候用什么命令。但随着使用,慢慢就找到了感觉。
我的建议:
- 先从简单场景开始 – 找代码、修 Bug
- 逐步尝试高级功能 – Worktrees、自定义命令
- 建立自己的命令库 – 积累常用 Prompt
- 团队共享最佳实践 – 提升 Team 整体效率
未来展望:
AI 编程助手还在快速进化。今天的"黑科技",明天可能就是标配。保持学习,保持好奇,保持对新工具的开放态度。
到此这篇关于Claude Code 6个实用工作流程的文章就介绍到这了,更多相关Claude Code实用工作流内容请搜索风君子博客以前的文章或继续浏览下面的相关文章,希望大家以后多多支持风君子博客!