Files
Luong NGUYEN 89e89d4aa3 feat(zh): add Chinese translations in zh/ directory
Add Chinese (Simplified) translations for all documentation, organized
under a dedicated zh/ directory that mirrors the English folder structure.

Co-authored-by: tanqingkuang <tanqingkuang@users.noreply.github.com>

Translations originally contributed by @tanqingkuang in #45.
Restructured from *-CN.md suffix pattern into zh/ directory to prevent
the EPUB builder (scripts/build_epub.py collect_folder_files) from
picking up Chinese files via glob("*.md") inside module folders.
2026-04-06 23:08:54 +02:00

8.7 KiB
Raw Permalink Blame History

检查点示例

以下是一些在 Claude Code 中有效使用检查点的真实示例。

注意:每次用户提示都会自动创建检查点。你不需要手动保存。要回退,请连续按两次 EscEsc+Esc),或者使用 /rewind 打开检查点浏览器。

示例 1:数据库迁移

场景

你需要从 MySQL 迁移到 PostgreSQL,但想同时探索直接迁移和渐进式双写两种方案。

工作流程

用户:我们来实现一个从 MySQL 到 PostgreSQL 的直接迁移方案
      [检查点 A 自动创建]

Claude:我来实现直接迁移……
[更换数据库驱动、更新查询、修改 schema]

用户:运行测试
      [检查点 B 自动创建]

Claude:正在运行测试……
❌ 15 个测试失败 - 连接池问题

用户:这个方案有问题。我们改试双写模式。
[用户按下 Esc+Esc,选择检查点 A,选择“恢复代码和对话”]

用户:现在实现双写模式,同时向两个数据库写入

Claude:我来实现双写迁移……
[实现双写层、渐进式迁移策略]

用户:运行测试

Claude:正在运行测试……
✅ 所有测试通过

用户:双写方案明显更稳妥。我们提交这个版本。

示例 2:性能优化

场景

尝试多种性能优化策略。

工作流程

用户:我们来优化 API 响应时间。当前:450ms
      [检查点“Baseline”自动创建]

Claude:我来加数据库查询缓存……
[实现 Redis 缓存]

用户:运行性能测试

Claude:结果:平均响应时间 280ms(提升 38%)

用户:我想试试另一种方法。
[用户按下 Esc+Esc,选择“Baseline”检查点,选择“恢复代码和对话”]

用户:改试数据库查询优化

Claude:我来优化数据库查询……
[添加索引,优化 N+1 查询]

用户:运行性能测试

Claude:结果:平均响应时间 180ms(提升 60%)

用户:我也想试第三种方法。
[用户按下 Esc+Esc,选择“Baseline”检查点,选择“恢复代码和对话”]

用户:尝试响应压缩和 CDN

Claude:我来添加压缩和 CDN……
[实现 gzip,配置 CDN]

用户:运行性能测试

Claude:结果:平均响应时间 320ms(提升 29%)

用户:查询优化最好。让我回到那个版本,再和缓存结合起来。
[用户按下 Esc+Esc,选择查询优化后的检查点,选择“恢复代码和对话”]

用户:现在在这些优化后的查询之上再加上 Redis 缓存

Claude[在优化后的查询之上添加 Redis 缓存]

用户:运行性能测试

Claude:结果:平均响应时间 95ms(提升 79%)🎉

用户:完美!这就是最终方案。我们提交它。

示例 3UI/UX 迭代

场景

为仪表板尝试不同布局。

工作流程

用户:我们来把仪表板重设计成侧边栏布局
      [检查点“Start”自动创建]

Claude:[实现侧边栏布局]

用户:给我看一张截图

Claude:[显示截图]

用户:侧边栏太拥挤了。我们试试顶部导航吧。
[用户按下 Esc+Esc,选择“Start”检查点,选择“恢复代码和对话”]

用户:试试顶部导航布局

Claude:[实现顶部导航]

用户:给我看一张截图

Claude:[显示截图]

用户:好多了,不过我们再试试卡片式网格布局。
[用户按下 Esc+Esc,选择“Start”检查点,选择“恢复代码和对话”]

用户:试试卡片式网格布局

Claude:[实现卡片网格]

用户:给我看一张截图

Claude:[显示截图]

用户:这个很不错!不过我们能把顶部导航和卡片网格结合起来吗?
[用户按下 Esc+Esc,选择卡片网格后的检查点,选择“恢复代码和对话”]

用户:给卡片网格布局加上顶部导航

Claude:[在卡片网格上添加顶部导航]

用户:完美!这就是最终设计。

示例 4:调试会话

场景

用多个假设排查一个难缠的 bug。

工作流程

用户:应用里有内存泄漏
      [检查点“Before debugging”自动创建]

Claude:让我来调查……
[分析代码]

用户:我觉得问题在事件监听器里。我们先修这个。

Claude:[修复事件监听器清理逻辑]

用户:运行内存分析器

Claude:仍然在泄漏内存 - 事件监听器不是问题所在

用户:让我回到之前,换个思路试试。
[用户按下 Esc+Esc,选择“Before debugging”检查点,选择“恢复代码和对话”]

用户:也许是数据库连接的问题?

Claude:[实现连接池修复]

用户:运行内存分析器

Claude:还是在泄漏 - 也不是连接的问题

用户:我再回去,换另一个方向试试。
[用户按下 Esc+Esc,选择“Before debugging”检查点,选择“恢复代码和对话”]

用户:我们检查一下有没有循环引用

Claude:[找到并修复缓存中的循环引用]

用户:运行内存分析器

Claude:✅ 内存泄漏修复了!缓存层里的循环引用就是罪魁祸首。

用户:太好了!我们提交这个修复。

示例 5API 设计演进

场景

为 REST API 设计做多轮迭代。

工作流程

用户:给我们的博客平台创建一个 REST API
      [检查点“Before API design”自动创建]

Claude[创建基础 CRUD API]

用户:这个太简单了。加上分页和过滤

Claude:[添加分页和过滤]

用户:我们需要更好的资源关系

Claude:[实现 HATEOAS 链接]

用户:其实我们改用 GraphQL,不用 REST 了
[用户按下 Esc+Esc,选择“Before API design”检查点,选择“恢复代码和对话”]

用户:那就为我们的博客平台改实现 GraphQL API 吧

Claude[实现 GraphQL API]

用户:我觉得 REST 更适合我们的场景。
[用户按下 Esc+Esc,选择 HATEOAS 之后的检查点,选择“恢复代码和对话”]

用户:那我们就把 REST 方案定下来。

示例 6:配置管理

场景

测试不同的配置方案。

工作流程

用户:把配置迁移到环境变量
      [检查点“Original config”自动创建]

Claude:[实现环境变量配置]

用户:在开发环境里测试

Claude:本地可用,但生产环境部署有问题

用户:我换个方案试试。
[用户按下 Esc+Esc,选择“Original config”检查点,选择“恢复代码和对话”]

用户:改成带校验的配置文件方案

Claude[实现带 JSON Schema 校验的 YAML 配置]

用户:在开发环境里测试

Claude:✅ 运行良好,校验错误提示也很清楚

用户:我们也能为敏感值支持环境变量吗?

Claude:[为密钥添加环境变量覆盖]

用户:测试部署

Claude:✅ 所有环境都正常工作

用户:完美,这个已经可以用于生产。

示例 7:测试策略

场景

实现完整的测试体系。

工作流程

用户:给 auth 模块添加单元测试
      [检查点自动创建]

Claude[添加 Jest 单元测试]

用户:运行测试

Claude:45 个测试通过,覆盖率 78%

用户:再加上集成测试

Claude:[添加集成测试]

用户:运行测试

Claude:89 个测试通过,覆盖率 92%,但测试太慢了(3 分钟)

用户:测试太慢了,我们来优化。

Claude:[优化测试设置,增加并行执行]

用户:运行测试

Claude:89 个测试通过,覆盖率 92%,35 秒完成 ✅

用户:很好!再给关键路径加上 E2E 测试。

Claude[添加 Playwright E2E 测试]

用户:运行所有测试

Claude:112 个测试通过,覆盖率 94%,2 分钟完成

用户:很好,覆盖率和速度都平衡得不错!

示例 8:从检查点开始总结

场景

在一次很长的调试会话后,你想压缩对话内容,同时保留上下文。

工作流程

用户:[经过 20 多条消息的调试和探索之后]

[用户按下 Esc+Esc,选择较早的检查点,选择“从这里开始总结”]
[可选地提供指令:“重点保留我们尝试过什么,以及什么有效”]

Claude:[生成从该点开始的对话总结]
[原始消息保留在记录里]
[总结会替换当前可见对话,从而减少上下文窗口占用]

用户:现在继续推进那个有效的方案。

关键结论

  1. 检查点是自动创建的:每次用户提示都会创建一个检查点,不需要手动保存。
  2. 使用 Esc+Esc/rewind:这两种方式都可以打开检查点浏览器。
  3. 选择合适的恢复方式:根据需要恢复代码、对话、两者都恢复,或者直接总结。
  4. 不要害怕试验:检查点让你可以安全尝试激进的改动。
  5. 和 git 结合使用:检查点用于探索,git 用于最终落地。
  6. 长会话要及时总结:用“从这里开始总结”来保持对话可管理。