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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

什么是 SAP Spartacus UI 的 code deprecation

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

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

要將函數(shù)、類、方法或?qū)傩詷?biāo)記為已棄用,請(qǐng)使用 @deprecated 標(biāo)記。 下面是一個(gè)例子:

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

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

Marking Deprecated Logic

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

以下是 TODO 注釋的示例:

// TODO(issue:3313) Deprecated since 1.1.1

Feature Flags

每個(gè)新的次要版本都會(huì)發(fā)布新功能。 有時(shí),新功能被添加到客戶已經(jīng)可以使用的現(xiàn)有組件中,這使得這些更改成為破壞性更改,因?yàn)樘砑拥?DOM 或因?yàn)椴煌男袨椤?為了避免破壞客戶的代碼,并在不需要過(guò)于頻繁地發(fā)布新的主要版本的情況下靈活地改進(jìn)現(xiàn)有組件的功能,Spartacus 使用了功能標(biāo)志。

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

  • 根據(jù)功能級(jí)別區(qū)分功能,對(duì)應(yīng)小版本號(hào)
  • 基于顯式特征標(biāo)志區(qū)分特征

注意:顯式功能標(biāo)志可以鏈接到功能級(jí)別,這意味著默認(rèn)情況下為該特定級(jí)別啟用它們。

Deciding If You Need a Feature Flag

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

以下指南可以幫助您決定應(yīng)該使用哪個(gè)功能標(biāo)志(如果有):

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

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

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

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

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

Detecting the Feature Level

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

if (isFeatureLevel(this.config, '1.1')) {// code that is meant to be executed for feature level 1.1 and above }

如果您的組件或服務(wù)無(wú)權(quán)訪問(wèn)全局配置,您可以注入 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>

您可以在沒(méi)有額外配置的情況下引入顯式標(biāo)志,但建議您將它們包含在店面配置的類型定義中,以將它們公開(kāi)給客戶。 為此,請(qǐng)將您的標(biāo)志作為布爾類型的新屬性添加到 feature-toggles.ts 文件中的 FeatureToggles 接口。 下面是一個(gè)例子:

export interface FeatureToggles {features?: {// .../*** Sample feature description*/consignmentTracking: boolean;}; }

通過(guò)這種方式,您還可以在標(biāo)志中添加描述,如果需要,甚至可以添加棄用注釋。

Linking the Feature Flag to the Feature Level

通過(guò)將您的功能標(biāo)志鏈接到功能級(jí)別,默認(rèn)情況下將為該功能級(jí)別和所有更高級(jí)別啟用您的標(biāo)志。 為此,請(qǐng)將功能標(biāo)志的默認(rèn)值作為表示功能級(jí)別的字符串提供。 您可以將此配置添加到您的模塊配置中,如以下示例所示:

ConfigModule.withConfig({// ...features: {consignmentTracking: '1.1',}, })

在此示例中,如果功能級(jí)別設(shè)置為至少“1.1”,則默認(rèn)情況下啟用寄售跟蹤功能。

Disabling a Feature for a Specific Feature Level

您可以通過(guò)包含感嘆號(hào)來(lái)禁用特定功能級(jí)別的功能! 在版本號(hào)之前。 下面是一個(gè)例子:

<newComponent *cxFeatureLevel="'!1.1'"></newComponent>

總結(jié)

以上是生活随笔為你收集整理的什么是 SAP Spartacus UI 的 code deprecation的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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