日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

什么是 SAP Spartacus UI 的 code deprecation

發(fā)布時間:2023/12/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是 SAP Spartacus UI 的 code deprecation 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對于復雜且快速發(fā)展的庫,在改進現(xiàn)有功能的同時保持向后兼容性可能具有挑戰(zhàn)性。 代碼棄用允許您正確標記過時的代碼,并通過警告用戶,幫助他們過渡到更好的替代方案。

要將函數(shù)、類、方法或屬性標記為已棄用,請使用 @deprecated 標記。 下面是一個例子:

/** * @deprecated since 1.0.2 * Use better alternative instead */

根據(jù)實際的棄用政策,此類代碼將成為下一個主要版本之一中刪除的候選代碼。

Marking Deprecated Logic

通常,為了適應向后兼容性,一些間接相關的代碼需要包含額外的邏輯,當相關的棄用功能被刪除時,這些邏輯應該被刪除。 當不清楚應該刪除哪些附加邏輯時,確保刪除過時代碼的最佳方法是用正確的 TODO 注釋標記它,最好鏈接到帶有附加詳細信息的 GitHub 問題。 應正確標記這些票證(例如,具有 deprecated-1.x 的標簽),以便將來更容易將其作為刪除的候選對象引用。

以下是 TODO 注釋的示例:

// TODO(issue:3313) Deprecated since 1.1.1

Feature Flags

每個新的次要版本都會發(fā)布新功能。 有時,新功能被添加到客戶已經(jīng)可以使用的現(xiàn)有組件中,這使得這些更改成為破壞性更改,因為添加到 DOM 或因為不同的行為。 為了避免破壞客戶的代碼,并在不需要過于頻繁地發(fā)布新的主要版本的情況下靈活地改進現(xiàn)有組件的功能,Spartacus 使用了功能標志。

功能標志允許我們執(zhí)行以下操作:

  • 根據(jù)功能級別區(qū)分功能,對應小版本號
  • 基于顯式特征標志區(qū)分特征

注意:顯式功能標志可以鏈接到功能級別,這意味著默認情況下為該特定級別啟用它們。

Deciding If You Need a Feature Flag

如果不需要,最好避免創(chuàng)建新的功能標志。這有助于保持我們的配置干凈并使最終的維護更容易。

以下指南可以幫助您決定應該使用哪個功能標志(如果有):

(1) 如果可能,盡量避免使用功能標志。

相反,將您的功能實現(xiàn)為一個單獨的模塊,可以由客戶選擇導入。

(2) 如果您的功能已經(jīng)有單獨的配置,請確定以下哪個更方便:

a. 在模塊配置中創(chuàng)建一個新選項(對于一般功能,使它們可切換具有實際價值)。
b. 使用功能標志(特別是當標志的唯一原因是向后兼容時)。

如果可能,盡量避免創(chuàng)建明確的功能標志。相反,嘗試啟用特定功能級別的功能,例如次要版本。
如果要創(chuàng)建顯式功能標志,請確保這樣做的原因是合理的(例如,該功能非常重要,可以顯式禁用或啟用)。

Detecting the Feature Level

如果您的服務或組件已經(jīng)注入了全局配置,您可以使用一個簡單的實用程序函數(shù)來檢查功能級別,如以下示例所示:

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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。