Codex use case
執行程式碼遷移
透過一系列受控檢查點,逐步遷移舊有技術堆疊。
Difficulty 進階
Time horizon 1 小時
使用 Codex 建立舊有系統與新技術堆疊之間的對應關係,按里程碑逐步落實遷移,並在每次切換前驗證一致性。
最適合
- 從舊有技術堆疊遷移到現代技術堆疊,過程中需要變更框架、執行階段、建置系統或平台慣例。
- 需要相容層與分階段轉換,並須在每個遷移檢查點進行明確驗證的團隊。
Contents
執行程式碼遷移
透過一系列受控檢查點,逐步遷移舊有技術堆疊。
使用 Codex 建立舊有系統與新技術堆疊之間的對應關係,按里程碑逐步落實遷移,並在每次切換前驗證一致性。
進階
1 小時
使用 Codex 建立舊有系統與新技術堆疊之間的對應關係,按里程碑逐步落實遷移,並在每次切換前驗證一致性。
進階
1 小時
最適合
- 從舊有技術堆疊遷移到現代技術堆疊,過程中需要變更框架、執行階段、建置系統或平台慣例。
- 需要相容層與分階段轉換,並須在每個遷移檢查點進行明確驗證的團隊。
技能與外掛程式
- 在合併前,檢查高風險遷移、相依性變更,以及對外暴露的介面。
- 每完成一個遷移里程碑,就處理 CI 失敗問題,而不要把清理工作留到最後。
- 當遷移涉及 ASP.NET Core 應用程式模型、`Program.cs`、中介軟體、測試、效能或版本升級時,請採用框架專屬指引。
| Skill | Why use it |
|---|---|
| Security Best Practices | 在合併前,檢查高風險遷移、相依性變更,以及對外暴露的介面。 |
| Gh Fix Ci | 每完成一個遷移里程碑,就處理 CI 失敗問題,而不要把清理工作留到最後。 |
| Aspnet Core | 當遷移涉及 ASP.NET Core 應用程式模型、`Program.cs`、中介軟體、測試、效能或版本升級時,請採用框架專屬指引。 |
起始提示詞
將此程式碼庫從 [legacy stack or system] 遷移至 [target stack or system]。
要求:
- 先盤點舊有系統所依賴的各項假設:路由、資料模型、身分驗證、組態、建置工具、測試、部署和外部契約。
- 建立舊技術堆疊與新技術堆疊之間的對應關係,並指出所有沒有直接對應項目的部分。
- 提出漸進式遷移計畫,採用相容層或檢查點,而非一次大規模重寫。
- 除非遷移明確要求做出使用者可見的變更,否則請保持行為不變。
- 分里程碑進行工作,並在每個里程碑後執行 lint、型別檢查和針對性測試。
- 在轉換完成前,請始終明確列出回復或備援選項。
- 如果驗證失敗,請先修正問題再繼續。
- 先梳理遷移範圍,並提出檢查點計畫。
將此程式碼庫從 [legacy stack or system] 遷移至 [target stack or system]。
要求:
- 先盤點舊有系統所依賴的各項假設:路由、資料模型、身分驗證、組態、建置工具、測試、部署和外部契約。
- 建立舊技術堆疊與新技術堆疊之間的對應關係,並指出所有沒有直接對應項目的部分。
- 提出漸進式遷移計畫,採用相容層或檢查點,而非一次大規模重寫。
- 除非遷移明確要求做出使用者可見的變更,否則請保持行為不變。
- 分里程碑進行工作,並在每個里程碑後執行 lint、型別檢查和針對性測試。
- 在轉換完成前,請始終明確列出回復或備援選項。
- 如果驗證失敗,請先修正問題再繼續。
- 先梳理遷移範圍,並提出檢查點計畫。
簡介
從一個技術堆疊遷移至另一個時,您可以運用 Codex 規劃並執行受控遷移,包括路由、資料模型、組態、身分驗證、背景作業、建置工具、部署、測試,甚至程式語言和框架本身的慣例。
Codex 在這方面很有用,因為它可以盤點舊有系統、建立新舊概念之間的對應關係,並透過多個檢查點逐步完成變更,而不必一次進行大規模重寫。在以下情況下,這點尤其重要:從舊有框架遷出、移植至新的執行階段,或在產品仍須持續運作的同時,以漸進方式用另一個技術堆疊取代現有堆疊。
使用方式
- 先盤點遷移範圍,包括舊有套件、框架慣例、路由、資料存取、身分驗證、組態、建置工具、測試、部署假設,以及所有在遷移後仍須維持有效的外部契約。
- 請 Codex 將舊有概念對應至目標技術堆疊,並指出沒有直接對應關係的項目。
- 選擇漸進式策略:建立相容層、逐一移植模組、採用抽象分支法,或使用絞殺者模式,每次圍繞一個邊界進行替換。
- 在遷移本身迫使您做出使用者可見的變更之前,請保持系統行為穩定,並明確指出這些例外情況。
- 每完成一個里程碑,就執行範圍最小但足以證明一致性的驗證:lint、型別檢查、針對性測試、契約測試、煙霧測試,或與舊有路徑進行並排比對。
- 每完成一個檢查點,就審查差異和剩餘的過渡風險,不要等到全面重寫完成後才進行審查。
善用 ExecPlans
我們在 程式碼現代化操作手冊 中介紹了 ExecPlans:這類文件可讓 Codex 持續掌握清理工作的全貌、明確說明預期的最終狀態,並記錄每一輪作業後的驗證結果。 當您要求 Codex 執行複雜的遷移時,請讓它為系統的每個部分建立一份 ExecPlan,確保每項決策和技術堆疊選擇都有記錄,且日後可供審查。
搭配目標
對於耗時較長的分段遷移工作,請使用 目標 引導 Codex 完成工作。設定目標時,請明確指定最終狀態、一致性檢查、回復要求和停止條件。