Claude发了篇官博介绍借助AI来将遗留项目做现代化改造的经验,主要分六步。
1. Define the target:先定义目标状态
先决定现代化属于哪一类:
----Uplift:技术栈不变,只升级版本,例如 C++11 → C++20;
----Transform:更换技术栈,但保持业务行为不变,例如 COBOL → Java;
----Reimagine:连架构和业务行为一起重新设计。
这里最重要的是尽早明确“哪些行为必须保持、哪些可以改变”,并梳理旧系统的依赖、业务规则和边缘场景,否则后面很难判断 AI 生成的修改是否“正确”。
2. Define the certificate:定义“正确性证书”
企业需要事先定义一套机器可验证的验收标准,作者称为 certificate。它可以包括原有测试、新生成测试、覆盖率、性能基准、安全扫描、新旧系统输出对比、生产流量回放、staging 指标等。核心原则是:尽可能让 Agent 自己反复修改直到满足这些条件,只有无法判断的情况才交给人。
3. Set the promotion policy:重新设计代码进入生产的路径
AI 产生代码的速度可能远超人工逐个 PR 审查的能力,因此不能简单沿用“所有 diff 都由人完整 review”的流程。文章建议按风险和影响范围分层:高风险、关键路径保留人工深入审查;低风险且 certificate 证据充分的修改采用更轻量的审批。这样,稀缺的领域专家时间集中在真正需要判断的地方。
4. Put prerequisites in place:提前解决基础设施和组织依赖
在真正启动 Agent 之前,需要准备好运行环境、测试资源、CI/CD、依赖关系图、代码冻结方案、相关团队的 reviewer capacity,以及安全与合规机制。尤其要坚持最小权限:Agent 只应写 modernization branch,不持有生产凭证,同时需要保留每个修改对应的 Agent transcript 和验证证据,以便审计。
5. Build and refine the agentic workflow:构建 Agent 工作流
Claude Code 的作用是把大型现代化任务拆成多个较小且可并行执行的 Agent 工作流。作者特别强调:试点过程中如果不断出现同类错误,应该修改 workflow、规则或 certificate,而不是让人一次次手工修复单个结果。
6. Run the modernization:先小范围完整跑通,再扩展
先选择代码库的一小部分,从生成修改、验证、人工审查一直跑到正式合入,证明整个链路有效后再扩大规模。如果是在持续开发的代码库中原地升级,可以把代码库划分为逻辑区域,逐块冻结、现代化,并通过 CI/CD 防止后续提交重新引入旧模式。
最大的难点还是在如何去验证改造后的项目是正常的
