🏠 总目录 📚 资料库Claude Code 实践

How Anthropic Runs Large-Scale Code Migrations with Claude Code(Anthropic 如何用 Claude Code 做大规模代码迁移)

📄 来自 Claude 官方博客
原文标题
How Anthropic Runs Large-Scale Code Migrations with Claude Code(Anthropic 如何用 Claude Code 做大规模代码迁移)
原文链接
https://claude.com/blog/ai-code-migration
作者
Anthropic(Claude 博客)
发布日期
2026-07-16
⚠️ 本页是原文的中文结构化整理笔记(保留架构、数据、案例、结论),并非逐字翻译。具体参数与功能名更新很快,落地前请点击上方链接核对原文。

12 分钟 | 🚚 批量任务的正确打开方式

🎯 一句话

大规模迁移的关键不是「让模型改得更准」,而是把任务切成可独立验证、可独立回滚的小单元。⭐ 一次改 500 个文件不可控;一次改 1 个文件、跑一次测试、提交一次,才可控。

📑 本页目录

代码迁移(把生产代码库转换到新语言)已从「多年、百万美元级」的项目变成「数周可完成」的工作。核心洞察是:

「你要修的不是代码,而是产出代码的那个流程(循环)。」

两个真实案例

Bun 迁移(Zig → Rust)

内部 Python → TypeScript 项目

六步迁移架构

第 1 步:打地基(三条并行工作流)

第 2 步:压力测试

在代表性样本上用不同翻译方式跑小规模迁移。Bun 的作者在这一阶段抓出了两个影响 1,448 个文件的关键问题。产出全部丢弃,只保留精化后的规则。

第 3 步:并行翻译

第 4-6 步:编译 → 冒烟测试 → 行为对齐

为什么 AI 改变了迁移的经济账

六条关键实践

  1. 把人力前置到规则手册和压力测试上;后续阶段基本是「烧队列」
  2. 关注失败的模式而非单个失败——人的注意力应该放在模式上
  3. 设计 token 高效的循环: 最大的模型留给审查者和写规则,实现工作用小模型
  4. 让工作队列机械化: 「完成」= 输出文件存在;迁移在构造上就是可恢复的
  5. 坚持对抗式审查——长任务中它值那个 token 成本
  6. 别照搬本文: 每次迁移都不同,先和 Claude 一起做针对性规划

结论

语言迁移不再需要「关乎存亡」的理由来立项——长期存在的瓶颈或维护负担现在就足以证明投资合理。通过把迁移围绕系统性验证循环(而非人工代码审查)来组织,并策略性地搭配不同档位的模型,历史上需要「多年工程」的项目可以压缩到几周,迁移的算术从根本上变了。


✅ 检查点

  1. 大规模代码迁移该怎么切分任务?
  2. 为什么「一次性全改完」是错的?
  3. 迁移任务里人应该负责什么?
👀 答案
  1. 按「可独立验证 + 可独立回滚」切,通常是单个文件或单个模块。每个单元走完整闭环:改 → 跑测试 → 通过就提交,不通过就回滚重试
  2. 因为错误会累积且无法定位。500 个文件一起改完再跑测试,挂了 30 个用例,你无法知道是哪些改动引起的,只能整体回滚重来。⭐ 而小单元提交时,每次失败都精确对应一个改动
  3. ⭐ 人负责①定义迁移规则和边界情况 ②建立验证手段 ③处理模型报上来的例外。也就是「定规则 + 建尺子 + 处理异常」,而不是逐个 review 每处改动——那样规模上不去,也失去了自动化的意义

🛑 可以停在这里

走神救援
大规模迁移的关键不是让模型改得更准,是把任务切成可独立验证、可独立回滚的小单元(通常是单个文件或模块),每个单元走完整闭环:改→跑测试→过就提交,不过就回滚重试。⭐⭐「一次性全改完」错在错误会累积且无法定位——500 个文件一起改完再跑测试挂了 30 个用例,你无法知道是哪些改动引起的,只能整体回滚;小单元提交时每次失败都精确对应一个改动人负责「定规则 + 建尺子 + 处理异常」(定义迁移规则和边界情况、建立验证手段、处理模型报上来的例外),⚠️而不是逐个 review 每处改动——那样规模上不去,也失去了自动化的意义