什么是 SAP Spartacus UI 的 code deprecation
對于復雜且快速發(fā)展的庫,在改進現有功能的同時保持向后兼容性可能具有挑戰(zhàn)性。 代碼棄用允許您正確標記過時的代碼,并通過警告用戶,幫助他們過渡到更好的替代方案。
要將函數、類、方法或屬性標記為已棄用,請使用 @deprecated 標記。 下面是一個例子:
/** * @deprecated since 1.0.2 * Use better alternative instead */根據實際的棄用政策,此類代碼將成為下一個主要版本之一中刪除的候選代碼。
Marking Deprecated Logic
通常,為了適應向后兼容性,一些間接相關的代碼需要包含額外的邏輯,當相關的棄用功能被刪除時,這些邏輯應該被刪除。 當不清楚應該刪除哪些附加邏輯時,確保刪除過時代碼的最佳方法是用正確的 TODO 注釋標記它,最好鏈接到帶有附加詳細信息的 GitHub 問題。 應正確標記這些票證(例如,具有 deprecated-1.x 的標簽),以便將來更容易將其作為刪除的候選對象引用。
以下是 TODO 注釋的示例:
// TODO(issue:3313) Deprecated since 1.1.1Feature Flags
每個新的次要版本都會發(fā)布新功能。 有時,新功能被添加到客戶已經可以使用的現有組件中,這使得這些更改成為破壞性更改,因為添加到 DOM 或因為不同的行為。 為了避免破壞客戶的代碼,并在不需要過于頻繁地發(fā)布新的主要版本的情況下靈活地改進現有組件的功能,Spartacus 使用了功能標志。
功能標志允許我們執(zhí)行以下操作:
- 根據功能級別區(qū)分功能,對應小版本號
- 基于顯式特征標志區(qū)分特征
注意:顯式功能標志可以鏈接到功能級別,這意味著默認情況下為該特定級別啟用它們。
Deciding If You Need a Feature Flag
如果不需要,最好避免創(chuàng)建新的功能標志。這有助于保持我們的配置干凈并使最終的維護更容易。
以下指南可以幫助您決定應該使用哪個功能標志(如果有):
(1) 如果可能,盡量避免使用功能標志。
相反,將您的功能實現為一個單獨的模塊,可以由客戶選擇導入。
(2) 如果您的功能已經有單獨的配置,請確定以下哪個更方便:
a. 在模塊配置中創(chuàng)建一個新選項(對于一般功能,使它們可切換具有實際價值)。
 b. 使用功能標志(特別是當標志的唯一原因是向后兼容時)。
如果可能,盡量避免創(chuàng)建明確的功能標志。相反,嘗試啟用特定功能級別的功能,例如次要版本。
 如果要創(chuàng)建顯式功能標志,請確保這樣做的原因是合理的(例如,該功能非常重要,可以顯式禁用或啟用)。
Detecting the Feature Level
如果您的服務或組件已經注入了全局配置,您可以使用一個簡單的實用程序函數來檢查功能級別,如以下示例所示:
if (isFeatureLevel(this.config, '1.1')) {// code that is meant to be executed for feature level 1.1 and above }如果您的組件或服務無權訪問全局配置,您可以注入 FeatureConfigService 并使用它,如下例所示:
constructor(// ...protected featureConfig: FeatureConfigService) {}// set a feature flag based on the feature levelreadonly isSomeNewFeatureEnabled = this.featureConfig.isLevel('1.1');如果要在模板中有條件地顯示組件,可以使用 cxFeatureLevel 指令,如下例所示:
<newComponent *cxFeatureLevel="'1.1'"></newComponent>您可以在沒有額外配置的情況下引入顯式標志,但建議您將它們包含在店面配置的類型定義中,以將它們公開給客戶。 為此,請將您的標志作為布爾類型的新屬性添加到 feature-toggles.ts 文件中的 FeatureToggles 接口。 下面是一個例子:
export interface FeatureToggles {features?: {// .../*** Sample feature description*/consignmentTracking: boolean;}; }通過這種方式,您還可以在標志中添加描述,如果需要,甚至可以添加棄用注釋。
Linking the Feature Flag to the Feature Level
通過將您的功能標志鏈接到功能級別,默認情況下將為該功能級別和所有更高級別啟用您的標志。 為此,請將功能標志的默認值作為表示功能級別的字符串提供。 您可以將此配置添加到您的模塊配置中,如以下示例所示:
ConfigModule.withConfig({// ...features: {consignmentTracking: '1.1',}, })在此示例中,如果功能級別設置為至少“1.1”,則默認情況下啟用寄售跟蹤功能。
Disabling a Feature for a Specific Feature Level
您可以通過包含感嘆號來禁用特定功能級別的功能! 在版本號之前。 下面是一個例子:
<newComponent *cxFeatureLevel="'!1.1'"></newComponent>總結
以上是生活随笔為你收集整理的什么是 SAP Spartacus UI 的 code deprecation的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 明日之后树屋位置
- 下一篇: 小度智能音响怎么拨打电话
