跳到主要内容
返回使用场景

Codex 使用场景

运行代码迁移

以可控的检查点迁移遗留技术栈。

高级1 小时工程代码

概览

使用 Codex 将遗留系统映射到新技术栈,按里程碑推进迁移,并在每次切换前验证功能一致性。

带防护措施地迁移

将此代码库从 [legacy stack or system] 迁移到 [target stack or system]。

要求:
- 先梳理遗留假设清单:路由、数据模型、身份验证、配置、构建工具、测试、部署和外部契约。
- 将旧技术栈映射到新技术栈,并指出任何没有直接对应项的内容。
- 提出带兼容层或检查点的渐进式迁移方案,而不是一次性大重写。
- 除非迁移明确要求用户可见的变更,否则保持行为不变。
- 按里程碑推进,并在每个里程碑后运行 lint、类型检查和有针对性的测试。
- 在过渡完成之前,保持回滚或后备方案清晰可见。
- 如果验证失败,先修复再继续。
- 先从梳理迁移范围并提出检查点计划开始。

简介

当你从一个技术栈迁移到另一个技术栈时,可以借助 Codex 来规划并执行可控的迁移:路由、数据模型、配置、身份验证、后台任务、构建工具、部署、测试,甚至语言和框架约定本身。

Codex 在这里很有用,因为它可以盘点遗留系统、将旧概念映射到新概念,并以检查点的方式落地变更,而不是一次性进行巨大重写。当你要脱离遗留框架、迁移到新的运行时,或在产品仍需持续可用的情况下逐步用一个技术栈替换另一个技术栈时,这一点尤其重要。

使用方法

  1. 先梳理迁移范围:遗留包、框架约定、路由、数据访问、身份验证、配置、构建工具、测试、部署假设,以及迁移过程中必须保留的所有外部契约。
  2. 让 Codex 将遗留概念映射到目标技术栈,并指出哪些内容没有直接对应项。
  3. 选择渐进式策略:兼容层、按模块迁移、branch-by-abstraction,或每次围绕一个边界进行替换的绞杀者式迁移。
  4. 在迁移本身未迫使发生可见变更之前,保持行为稳定,并明确说明这些例外情况。
  5. 在每个里程碑后,运行能够证明一致性的最小验证:lint、类型检查、有针对性的测试、契约测试、冒烟测试,或与遗留路径进行并行对比检查。
  6. 在每个检查点后审查 diff 和剩余的过渡风险,而不是等到整个重写完成后再处理。

利用 ExecPlans

在我们的代码现代化 cookbook中,我们介绍了 ExecPlans:这类文档可让 Codex 持续掌握清理工作的全局情况,说明预期的最终状态,并记录每一轮后的验证结果。 当你让 Codex 执行复杂迁移时,要求它为系统的每个部分创建一个 ExecPlan,以确保每个决策和技术栈选择都会被记录下来,并且之后可以审查。

与目标结合使用

对于持续时间较长的迁移切片,可使用一个目标来引导 Codex 完成工作。设置目标时,应明确最终状态、一致性检查、回滚预期和停止条件。