摘要:记录使用 Claude Code(CLI)重构一个支付结算模块的真实过程,涵盖任务拆分、上下文管理、会话中断恢复、diff 审查及安全注意事项。文中提到的 5 个“坑”均来自近两周的实测踩坑复盘,供同样在用 AI 辅助复杂业务开发的读者参考。
Claude Code 在 2026 年的迭代速度很快,Dreaming 功能和多智能体编排让它看起来已经像一个初级工程师。但当真正把它扔进一个含状态机、多币种换算、异步回调的历史遗留支付模块里时,事情并不总是按文档上写的走。
以下是我在两周内踩过的 5 个主要坑,以及目前的解决策略。
坑一:任务上下文窗口被“撑爆”,幻觉开始涌现
支付模块的核心文件有 11 个,其中最大的一个 service 文件有 1800 行,包含大量历史遗留的状态转换逻辑。一开始我想当然地把所有相关文件一并 @ 给 Claude Code,让它“理解全局后进行重构”。
结果:Claude 在分析过程中,后半程生成的调用链出现了虚构的类名和方法名,且引用了一些根本不存在的数据库字段。
教训:即便模型支持 200K 上下文,放进上下文的东西越多,关键信息的密度就越低,产生“捏造”行为的概率会明显上升。
解决方法:
- 先用一个精简任务让 Claude 梳理出所有文件的依赖关系图(不是全量读取)。
- 根据依赖关系图,将重构任务切分成 3-4 个独立子模块,每次只 @ 相关文件。
- 每次任务完成后,用
claude remember将模块接口变化写入记忆,供下一个子任务读取。
这样改造后,幻觉几乎消失。
坑二:不读 diff 就直接接受,导致业务逻辑被“优化”掉了
Claude Code 在重构时有一种“过度工程化”的倾向。有一次执行“简化支付状态判断逻辑”的指令,它直接把一个看似冗余的 if (status == PENDING && retryCount > 0) 分支删除了,认为它“逻辑上等价于后续处理”。但实际上,那个分支负责触发一条短信提醒——写在注释里,Claude 没有把注释的重要性权重调得足够高。
教训:永远不要信任 AI 对你业务逻辑的理解,diff 必须逐块审查,尤其是涉及状态机变更和外部服务调用的部分。
我在项目根目录下加了一个 CLAUDE.md,明确写入:“涉及 PaymentStatus 枚举变更、外部 API 调用、通知触发的改动,必须保留原始分支结构并添加注释说明”,之后此类事故没有再发生。
坑三:连续多轮对话后,模型“忘记”了最初的安全约束
在第三天的会话中,我需要 Claude 写一个对账脚本,它生成了一个直接从生产数据库全量拉取数据的 SQL。我反问安全性,它才在回答末尾补了一句“请注意在只读副本上执行”。
教训:长会话会让 System Prompt 中的安全约束逐渐失焦。Anthropic 加了一个 Critical Reminders 区域,但 Claude Code 的会话管理并不能保证这些约束在对话中始终保持高优先级。
解决方法:每开启一个新的长会话,前 3 条消息内用 /init 或自定义命令再次声明关键约束(数据安全、环境限制、权限边界)。同时在 CLAUDE.md 中设置工具使用限制,如禁止执行 DROP、ALTER 类 SQL。
坑四:--resume 恢复会话时,部分上下文确实“丢”了
某天的会话因网络中断而退出,使用 --resume 恢复后,Claude 表面上记得我们在做什么,但在后续生成中,出现了之前已经确认过的“使用 iso4217 标准的币种代码”这个条件丢失,重新建议使用简写码。
分析:--resume 可能只恢复了对话树的核心摘要而非完整状态,当会话长度超过 100 轮时,细节丢失的概率显著增加。
解决方法:关键决策点(如接口定义、枚举值、数据库 schema 变更)在对话中明确要求 Claude 将其“写入持久记忆”或总结为一条项目规则。这样即使上下文滑动,记忆中的规则仍能保持。
坑五:Dreaming 功能有时也会“学错”经验
Dreaming 刚上线时很兴奋,让 Claude Code 开启后可以“自我复盘”。然而第三天后我发现,它在记忆中写入了一条规则:“所有金额计算统一使用 BigDecimal 的 double 构造器以避免精度问题” ——这显然是一个错误经验,因为它混淆了我提到的一个测试用例(用了 BigDecimal(double) 快速模拟)和实际业务规范。
教训:Dreaming 的输出不是真理,需要像 code review 一样审查它写入持久记忆的内容。
解决方法:定期用 claude memory list 查看记忆条目,删除或修正不准确的条目。暂时我会把 Dreaming 的“写入记忆”权限设为需要确认。
如果你也在重度使用 Claude Code,建议花一点时间维护好项目里的 CLAUDE.md,它的存在对减少踩坑次数有立竿见影的效果。关于不同 AI 模型在重构复杂业务逻辑时的表现差异,gpt108.com 的开发者社区里有更系统的横向对比数据和真实案例,本文因篇幅所限不再展开,感兴趣的读者可以自行查阅验证。
你认为 Claude Code 目前最适合还是最不适合你的项目?欢迎评论区聊聊你的实战体验。