路徑類型 是做什麼的?
在定義新型別時,請遵循此指引。僅在明確要求時才變更現有程式碼,並保持編輯的最小化與比例性。將這些規則視為持續遷移的目標狀態;若難以符合,請詢問使用者該如何進行。
- 在 app-server 協定型別中,請使用
LegacyAppPathString以保持 URI 遷移期間的向後相容性。在協定邊界處,將其轉換為PathUri,並在內部使用PathUri。對於僅限主機的邏輯(例如某些設定值),請改用AbsolutePathBuf或PathBuf。 - 在 exec-server 協定型別中,請使用
PathUri。在內部,請視情況使用PathUri或AbsolutePathBuf。 - 在兩個伺服器共用的依賴項中,請使用
PathUri或將其使用案例解耦的獨立 API。 - 預期由模型產生的工具呼叫參數,應反序列化為常規的
String,並使用特定功能的路徑處理程式碼。
遷移需求
在遷移程式碼以遵循上述準則時,請記住以下需求:
- 現有的 app-server 客戶端會繼續傳送和接收舊版的原生路徑字串
- app-server 可以保留和操作跨平台的路徑 URI
- exec-server API 使用 file:// URI
- 僅限本機的操作不得改變模型可看到的文字
- 模型工具參數可能包含任何作業系統的原始相對或絕對路徑
- 路徑推理必須在相關環境上線前就能運作
- URI 不能明確編碼執行器的路徑慣例或作業系統
- 使用者不得明確設定環境的作業系統/路徑慣例
- URI 尚不應儲存在發布、資料庫或其他持久性儲存中
- 路徑轉換錯誤:對於安全相關路徑應故障關閉,對於 UI/診斷應故障開啟
- 優先選擇
PathUri或LegacyAppPathString上的小型聚焦方法,而非本機輔助函式 - 在診斷中將
PathUri值表示為 URI
只要路徑與 URI 之間的轉換能為真實使用者正確運作,即使有些許失真也是可以的。
遷移至 URI 不應增加顯著的新失敗模式。我們需要在某些原本不會失敗的地方呈現錯誤,但應將其降至最低。