簡體   English   中英

在不同版本的移動應用程序中使用功能標志作為終止開關

[英]Using feature flag as kill switch in different version of mobile application

如果我的移動應用程序版本出現問題,我有興趣使用功能標志作為終止開關,以快速將應用程序上的功能升級到該功能的最新工作版本或完全隱藏該功能。

但是我對如何在應用程序的以下版本中管理相同的功能標志有一個邏輯上的疑問,之后我在應用程序的先前版本中殺死了該功能。 我試着用一個例子來解釋。

第 1 天,我開發了一個新功能 AI 在我部署在 Play 商店 myApp 1.0 上的這個新功能上實現了功能切換 A,功能切換 A 已打開(服務器端)

第 2 天,我注意到功能 A 出現問題,所以我將其關閉,關閉功能切換 A(服務器端)

但現在我無法再次打開(服務器端)功能切換 A,因為它會在應用程序的 bot 版本上打開該功能

所以我每次使用終止開關時都必須實現一個新的切換? 有什么建議或鏈接嗎? 謝謝

我同意 Nitrodist 關於 API 版本控制的觀點,這是一個好的應用程序/api 策略的關鍵,從長遠來看,它會讓你頭疼。

從純功能標志的角度來看,您可以使用應用程序的版本作為邏輯的一部分來為特定用戶打開或關閉標志。

不要認為功能標志只是對所有用戶打開或關閉,而是為特定用戶或一組用戶打開或關閉功能的一種方式。 例如,在DevCycle Mobile SDK中,您可以將功能標志設置為對特定版本打開,而對其他版本關閉。

let user = try DVCUser.builder()
.appBuild(1005)
.appVersion("1.1")
.build()

client.identifyUser(user)

然后,您可以使用 boolean 功能標志來根據他們使用的應用程序版本顯示或隱藏新組件。

let newFeature: DVCVariable<Bool> = client.variable(key: "new-feature", defaultValue: false)

您還可以根據用戶的 appVersion 控制用戶訪問的 API。

let apiVersion: DVCVariable<String> = client.variable(key: "api-version", defaultValue: "1.0")

對於此功能標志,API 的默認值設置為“1.0”。 如果 appVersion 設置為 1.1,您可以在 UI 中設置功能標志以返回“1.1”。

你可以使用很多技術來解決這個問題。

意識到當您發布和使用 App Store 和 Play 商店時,您將擁有不會升級的用戶。 rest 留給開發人員作為練習 - 我的意思也很認真,因為它是您的應用程序級代碼對正在運行的服務器做出反應,這兩者都是您控制的,當您談論以下技術時,這很重要:

  • API 版本控制
  • 遠程功能標志供應商,例如 Firebase
  • 使用您自己的 iOS/Android 代碼 + 服務器代碼自行開發
  • 涉及功能標志的 iOS/Android 代碼庫的開源工具

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM