跳到主內容

Theme / 0.9.130

Pstack

用可驗證的工作流程協作,從單一入口學會工程技能

Skills

principle-migrate-callers-then-delete-legacy-apis | 同批遷移呼叫端與退役舊介面

在沒有外部相容需求的內部介面重構中,盤點呼叫端、更新契約測試,規劃同批移除舊介面。

principle-migrate-callers-then-delete-legacy-apis | 同批遷移呼叫端與退役舊介面

本頁以 pstack-claude 0.9.126 為基準。原文設定 user-invocable: false,通常由 poteto-mode 按需讀取。可用自然語言要求「套用 principle-migrate-callers-then-delete-legacy-apis」,先判斷是否符合適用前提。

定位與適用情境

這項原則適用於引入新內部應用程式介面(API)時,將呼叫端遷移與舊介面移除放在同一波工作,不長期保存無必要的相容層。原文要求測試改為驗證新契約,移除只保護重構前實作細節的測試。

本例的內部報價工具要把多個位置參數的 calculateQuote 換成接收具名欄位物件的 quoteOrder。輸入是舊介面、兩個內部呼叫端及測試。已知沒有外部使用者,所有呼叫端都能協調更新,才適合採用這項原則。

準備

  • 取得完整搜尋範圍,包括匯出入口、測試、腳本與動態載入位置。搜尋不到呼叫不等於已證明沒有外部使用者。
  • 確認專案可以同批接受破壞性變更(Breaking Change),並取得介面退役與必要刪檔的授權。
  • 寫下新契約的輸入欄位、報價結果與錯誤行為。既有業務行為的測試不可只因改名就移除。

操作步驟

  1. 核對適用前提。 列出誰使用舊介面、是否有已發布套件或獨立部署消費者。若無法確認外部相容需求,先回報缺口,不直接套用同批刪除策略。
  2. 訂出新契約。 對照新舊輸入與可觀察結果,辨認哪些是預期的新規格,哪些業務行為必須保留。讓測試驗證契約,不鎖定舊函式的內部呼叫順序。
  3. 規劃同批遷移。 把兩個內部呼叫端、匯出入口與契約測試納入同一波修改。每個呼叫端都直接使用新介面,不新增永久的舊名稱轉接器。
  4. 驗證後退役。 在實作獲准後搜尋舊名稱與轉接路徑,執行型別檢查及契約測試。依核准範圍移除舊介面與純實作細節測試,再重跑檢查,確認沒有懸空參照。

可直接使用的提示詞

套用 principle-migrate-callers-then-delete-legacy-apis。請盤點內部報價工具的 calculateQuote 呼叫端,評估改成 quoteOrder 具名欄位物件後,能否在同一波遷移並退役舊介面。
先證實沒有外部相容需求,列出所有呼叫端、匯出與測試。區分應保留的業務行為測試,以及只保護舊實作細節的測試。
這輪只做唯讀盤點與遷移計畫,不修改或刪檔。列出需要核准的移除項目,以及退役前後要執行的檢查。若搜尋範圍不完整,明確回報,不能直接宣告可刪。

預期結果與驗收

預期交付一份完整遷移清單,而不是只增加新介面。

  • 每個已知舊呼叫端都有對應的新呼叫方式,包含測試與匯出入口。
  • 能指出不需要外部向後相容的證據,以及尚未確認的搜尋範圍。
  • 移除清單僅包含舊介面與失去意義的實作測試,仍保留業務行為驗證。
  • 獲准實作後,舊名稱沒有殘留的可執行參照,新契約測試與相關檢查通過才算退役完成。

限制與權限

常見誤用是對公開套件也直接刪除舊介面,或為求搜尋結果歸零而刪掉仍有價值的測試。原文前提是沒有外部使用者依賴相容性,且專案能吸收協調式變更。

這項原則不是刪檔授權,也不替代版本政策或發布確認。若仍有外部呼叫端、獨立部署服務或未知消費者,應重新評估遷移策略,不硬套同批移除。

延伸閱讀與來源