第 9 章 常见工作流程

Mr.Tong...
  • AI
  • Claude Code
大约 6 分钟

❓ 引导问题:日常开发中,Claude Code 最擅长哪些工作流?如何高效地探索代码、开发功能、修复 Bug、管理 Git?

📖 9.1 代码探索与理解

面对陌生代码库时,Claude Code 是极佳的探索工具。关键原则:从宏观到微观逐步深入,Claude 会自动判断需要读取哪些文件

四步探索法

第1步 — "这个项目的架构是怎样的?用了哪些技术?"
第2步 — "介绍一下项目的目录结构,重点介绍核心模块"
第3步 — "认证模块是怎么工作的?从入口到数据库列出调用链"
第4步 — "这个函数的具体逻辑是什么?在哪些地方被调用了?"

追踪代码调用链

> 当用户登录时,代码执行流程是怎样的?从入口到数据库全部列出来
> findUserByEmail 这个函数在哪里被调用?
> 这个接口的数据最终存到了哪张数据库表里?

理解复杂逻辑

> 这段递归函数是什么意思?能举个例子说明吗?
> 为什么这里要用 useCallback?不用会怎样?
> 这个正则表达式能匹配什么格式的字符串?

💡 面对陌生代码库,不需要手动指定要读取哪些文件——Claude 会自行判断。

📖 9.2 功能开发

功能开发是 Claude Code 最强大的场景。最佳实践:先描述需求和约束,让 Claude 制定计划,确认后再执行。

标准流程

第1步 — "先看看订单相关的现有代码结构"(Ask:了解现状)
第2步 — "我打算添加按状态筛选功能,你打算怎么实现?先描述方案"(Plan:确认方向)
第3步 — "按计划执行吧"(Edit:动手实现)
第4步 — "为这个新功能写测试用例"(补充测试)
第5步 — "把这次的改动提交"(Git 收尾)

示例:添加新功能

> 给用户模型添加邮箱验证功能。要求:
> 1. 发送验证码到邮箱
> 2. 用户输入验证码完成验证
> 3. 参考现有的短信验证流程
> 4. 遵循项目的代码风格

示例:重构代码

> 把这个 500 行的组件拆分成更小的子组件
> 将 callback 风格的异步代码改为 async/await
> 这几个函数里有大量重复代码,帮我提取成通用函数

⚠️ 复杂任务不要一次性全部描述,拆成几个步骤逐步完成效果更好。一次丢给 Claude 太多要求容易导致失去焦点。

📖 9.3 Bug 修复

标准流程

第1步 — "用户反馈:修改个人信息后,页面顶部的用户名没有实时更新"(描述症状)
第2步 — "先分析可能的原因,不要修改代码"(Ask:定位根因)
第3步 — "你说的第二种原因看起来更可能,按那个思路修复"(Edit:执行修复)
第4步 — "运行相关的测试确认修复有效"(验证)

提供错误信息的关键

直接把完整的错误信息粘贴到对话中:

> 运行时报了这个错误,帮我分析原因:
> 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)

命令驱动的诊断

> 运行 npm test,如果有失败的帮我修复
> 跑一下 lint,把所有警告都修复掉
> 运行 npm run build,如果有报错帮我修复

📖 9.4 代码审查

/review 命令或自然语言要求审查:

> 帮我审查 src/payment/processor.ts,重点关注错误处理、边界情况和安全风险
> 审查我这次的所有改动,看看有没有明显的问题
> 这段代码有没有 SQL 注入的风险?

安全审查:上线前用 /security-review 进行专项检查(SQL 注入、XSS、敏感信息泄露等)。

📖 9.5 Git 工作流

Claude Code 深度集成了 Git,可以用自然语言完成几乎所有 Git 操作。

查看与提交

> 我改了哪些文件?
> 最近 10 次提交都改了什么?
> 提交这次的改动,commit 信息说明修复了登录验证的 bug

Claude 会根据实际改动内容自动生成符合规范的 commit 信息。

分支管理

> 新建一个 feature/user-profile 分支
> 切换到 develop 分支
> 把 main 分支的最新改动合并进来
> 删除已合并的分支

合并冲突

> 帮我解决合并冲突
> 这个文件有冲突,帮我看看哪个版本是正确的

当冲突涉及架构设计时,Claude 会列出各选项的利弊供你决策。

Pull Request 工作流

第1步 — "总结一下我对认证模块做的改动"(总结变更)
第2步 — "创建一个 PR"(生成 PR)
第3步 — "在 PR 描述中补充更多关于安全改进的内容"(完善描述)

Claude Code 支持 gh CLI 工具,gh pr create 创建的 PR 会自动关联到当前会话。

Git Worktree 并行工作

Worktree 允许在不同目录同时处理不同分支:

claude --worktree feature-auth    # 创建 worktree 并启动独立会话
claude --worktree bugfix-123      # 同时开多个 worktree
claude --worktree                  # 不指定名称,自动生成有趣的名字
属性
位置<repo>/.claude/worktrees/<name>
生命周期无修改自动删除;有变更提示保留或删除

💡 Anthropic 内部团队的最佳实践:多开 3-5 个 worktree,每个开独立会话,是团队公认的提效最佳实践。

📖 9.6 实战技巧

先分析再动手

> 不要修改代码,先分析登录失败的可能原因,列出你的排查思路
> 你打算怎么实现这个功能?先描述方案,我确认后再写代码

限制操作范围

> 只修改 src/auth.ts 这一个文件,不要改其他地方
> 只读取代码不要修改,帮我分析这个模块的性能瓶颈

善用"继续"

如果 Claude 的回答被截断或未完成,直接说 继续还有吗? 即可。

要求解释修改

> 修改完之后给我解释一下每处改动的目的
> 这里为什么要用 Promise.allSettled 而不是 Promise.all?

拆分复杂任务

不好的做法:一次性丢给 Claude 太多要求

"帮我重构整个用户模块,包括添加类型注解、拆分文件、优化数据库查询、添加缓存、写测试、更新文档"

好的做法:按逻辑顺序拆成独立步骤

第一步:"分析 src/user/ 目录的现有结构,告诉我有哪些问题"
第二步:"先给所有函数添加 TypeScript 类型注解"
第三步:"把超过 200 行的文件拆分成更小的模块"
第四步:"优化数据库查询,添加必要的索引"

📖 9.XX 要点总结

  1. 代码探索:从宏观到微观,Claude 自动判断需读取的文件,无需手动指定
  2. 功能开发:先 Ask 了解现状 → Plan 确认方向 → Edit 动手执行 → 测试验证 → Git 提交
  3. Bug 修复:提供完整错误信息是关键,先分析再修复,修复后立即验证
  4. Git 工作流:Claude 自然语言操作 Git,Worktree 实现并行开发,多开 3-5 个独立会话是提效秘诀
  5. 实战第一原则:不确定时先让 Claude 分析(Ask),确认方案后再执行(Edit),不要跳过 Plan

你认为这篇文章怎么样?

  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.1