Codex 用例
运行代码迁移
在可控的检查点完成旧技术栈迁移。
难度 高级
时间周期 1h
使用 Codex 将遗留系统映射到新技术栈,分阶段完成迁移,并在每次过渡前验证一致性。
适用场景
- 框架、运行时、构建系统或平台规范需要发生改变的从旧到新技术栈的迁移。
- 需要兼容层、分阶段过渡,以及在每次迁移检查点进行显式验证的团队。
目录
运行代码迁移
在可控的检查点完成旧技术栈迁移。
使用 Codex 将遗留系统映射到新技术栈,分阶段完成迁移,并在每次过渡前验证一致性。
高级
1h
适用场景
- 框架、运行时、构建系统或平台规范需要发生改变的从旧到新技术栈的迁移。
- 需要兼容层、分阶段过渡,以及在每次迁移检查点进行显式验证的团队。
技能与插件
- 在合并前检查有风险的迁移、依赖项变更和暴露的接口。
- 在每个迁移里程碑之后解决 CI 失败问题,而不是将清理工作留到最后。
- 当迁移涉及 ASP.NET Core 应用模型、`Program.cs`、中间件、测试、性能或版本升级时,请使用特定于框架的指导。
| 技能 | 为什么使用它 |
|---|---|
| 安全最佳实践 | 在合并前检查有风险的迁移、依赖项变更和暴露的接口。 |
| Gh 修复 CI | 在每个迁移里程碑之后解决 CI 失败问题,而不是将清理工作留到最后。 |
| Aspnet Core | 当迁移涉及 ASP.NET Core 应用模型、`Program.cs`、中间件、测试、性能或版本升级时,请使用特定于框架的指导。 |
起始提示词
将此代码库从 [旧技术栈或系统] 迁移到 [目标技术栈或系统]。要求: - 首先盘点旧系统的假设前提:路由、数据模型、身份验证、配置、构建工具、测试、部署和外部约定。 - 将旧技术栈映射到新技术栈,并指出任何没有直接对应项的内容。 - 提出带有兼容层或检查点的渐进式迁移计划,而不是一次性重写。 - 除非迁移明确要求进行用户可见的更改,否则保持行为不变。 - 分里程碑进行工作,并在每个里程碑之后运行 lint、类型检查和针对性测试。 - 在过渡完成之前,保持回滚或回退选项可见。 - 如果验证失败,请在继续之前进行修复。 - 从映射迁移范围并提出检查点计划开始。
将此代码库从 [旧技术栈或系统] 迁移到 [目标技术栈或系统]。要求: - 首先盘点旧系统的假设前提:路由、数据模型、身份验证、配置、构建工具、测试、部署和外部约定。 - 将旧技术栈映射到新技术栈,并指出任何没有直接对应项的内容。 - 提出带有兼容层或检查点的渐进式迁移计划,而不是一次性重写。 - 除非迁移明确要求进行用户可见的更改,否则保持行为不变。 - 分里程碑进行工作,并在每个里程碑之后运行 lint、类型检查和针对性测试。 - 在过渡完成之前,保持回滚或回退选项可见。 - 如果验证失败,请在继续之前进行修复。 - 从映射迁移范围并提出检查点计划开始。
简介
当您从一种技术栈迁移到另一种技术栈时,您可以利用 Codex 来映射并执行受控迁移:路由、数据模型、配置、身份验证、后台作业、构建工具、部署、测试,甚至是语言和框架规范本身。
Codex 在这里非常有用,因为它可以盘点遗留系统,将旧概念映射到新概念,并以检查点的形式落实更改,而不是一次性全面重写。当您准备放弃旧框架、移植到新运行时,或者在产品仍需正常运行的情况下逐步替换技术栈时,这一点至关重要。
如何使用
- 首先盘点迁移范围:旧包、框架规范、路由、数据访问、身份验证、配置、构建工具、测试、部署假设,以及任何必须在迁移中保留的外部约定。
- 让 Codex 将旧概念映射到目标技术栈,并指出哪些没有直接匹配的对应项。
- 选择渐进式策略:兼容层、逐模块移植、分支 abstraction(Branch-by-abstraction),或者围绕单一边界进行绞杀者模式(Strangler)替换。
- 在迁移本身迫使发生可见变更之前,保持行为稳定,并明确指出这些例外情况。
- 在每个里程碑之后,运行最少的验证以证明一致性:lint、类型检查、针对性测试、契约测试、冒烟测试,或与旧路径的并行比对。
- 在每个检查点之后审查差异和剩余的过渡风险,而不是等待全面重写后再进行。
利用 ExecPlans
In our 代码现代化手册,我们引入了 ExecPlan:这些文档让 Codex 能够保持对清理工作的全局掌控,详细说明预期的最终状态,并在每次运行后记录验证结果。当你要求 Codex 执行复杂的迁移时,请让它为系统的每个部分创建一个 ExecPlan,以确保每个决策和技术栈选择都被记录下来,以便日后审查。
结合目标
对于长时间运行的迁移切片,请使用 目标 来指导 Codex 完成工作。设定具有明确终态、一致性检查、回滚预期和停止条件的目标。