發展結構化設定

元件所需的設定值可能隨時間變動。由於部分設定欄位可能會由其他元件修改,因此變更元件設定結構定義時,請務必小心,以免破壞其他依附於該元件的設定結構定義。

需要柔性轉換時

本指南僅適用於具有 mutability 指定碼的設定欄位。修改不含 mutability 的欄位時並不需要特別留意,因為這些值一律會由元件的設定檔提供。

新增可變動欄位,在現有欄位中加入可變動性

您不需要特別考量任何設定欄位,因為所有設定欄位都必須在元件的設定檔值檔案中納入基礎/預設值,而該元件以外的設定不會有任何現有的設定供應器。

移除可變動的設定欄位,移除可變動性指定碼

要安全地從元件的結構定義中移除可變動設定欄位,就必須先與設定提供者合作,以確保對方不再針對即將移除的欄位傳送任何覆寫設定。

以元件作者的身分,想從含有 mutability 指定碼的元件中移除設定欄位:

  1. 找出元件的任何設定執行階段供應商。舉例來說,如果欄位有 mutability: [ "parent" ],您應該識別為該欄位提供值的任何父項元件。
  2. 告知要淘汰的意圖,並將設定欄位移除給上一個步驟中找到的任何相關人員。
  3. 設定執行階段提供者應停止提供該設定欄位的值。這可能需要您採取行動,才能繼續支援這些提供者的用途,而無須提供該欄位。
  4. 找出所有執行階段供應器,不再嘗試覆寫該設定欄位的值後,您就可以放心移除欄位或其 mutability 指定碼。

重新命名可變動欄位

重新命名欄位等同於新增新命名欄位並移除現有欄位。

如果您要以元件作者的身分,重新命名含有 mutability 指定碼的設定欄位:

  1. 在設定中新增含有新名稱的欄位,並建議該值而非元件實作項目中的現有欄位值。
  2. 按照上述步驟移除欄位,與利害關係人合作,改為針對新命名的欄位提供值。

變更可變動欄位的類型

如要變更可變動欄位的類型,您必須先使用新名稱或移除所有覆寫工具,然後再變更類型。

  1. 在設定中新增含有新名稱和正確類型的欄位,並優先使用該值而非元件實作項目中的現有欄位值。
  2. 按照上述步驟移除欄位,與相關人員合作,改為針對新命名和新輸入的欄位提供值。
  3. (選用) 移除前一個欄位後,請按照上述步驟重新命名欄位,使用先前步驟中的名稱。

變更可變動欄位的限制

增加欄位的 max_lenmax_size 限制一律安全。

只有所有由外部提供的值都位於新範圍內時,才能減少欄位的 max_lenmax_size 限制。