1

如果我的移动应用程序版本出现问题,我有兴趣使用功能标志作为终止开关,以快速将应用程序上的功能恢复到该功能的最新工作版本或完全隐藏该功能。

但是我对如何在应用程序的以下版本中管理相同的功能标志有一个逻辑上的疑问,之后我在应用程序的先前版本中杀死了该功能。我试着用一个例子来解释。

第 1 天我开发了一个新功能 A 我在这个新功能上实现了功能切换 A 我部署在 Play 商店 myApp 1.0 上,功能切换 A 打开(服务器端)

第 2 天,我注意到功能 A 出现问题,所以我将其关闭,关闭功能切换 A(服务器端)

但现在我无法再次打开(服务器端)功能切换 A,因为它会在应用程序的 bot 版本上打开该功能

所以我每次使用 kill switch 时都必须实现一个新的切换?有什么建议或链接吗?谢谢

4

2 回答 2

1

我同意 Nitrodist 关于 API 版本控制的观点,它是一个好的应用程序/API 策略的关键,从长远来看可以让你头疼。

从纯功能标志的角度来看,您可以使用应用程序的版本作为逻辑的一部分来为特定用户打开或关闭标志。

不要认为功能标志只是对所有用户打开或关闭,而是为特定用户或一组用户打开或关闭功能的一种方式。例如,在DevCycle Mobile SDK中,您可以将功能标志设置为对特定版本打开,而对另一个版本关闭。

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

client.identifyUser(user)

然后,您可以使用布尔功能标志来显示或隐藏基于他们正在使用的应用程序版本的新组件。

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”。

于 2022-01-25T17:59:12.473 回答
0

你可以使用很多技术来解决这个问题。

意识到当您发布和使用 App Store 和 Play 商店时,您将拥有不会升级的用户。剩下的就留给开发人员练习了——我的意思也很认真,因为它是你的应用程序级代码对正在运行的服务器做出反应,这两者都是你控制的,当你谈论如下技术时这很重要:

  • API 版本控制
  • 远程功能标志供应商,如 Firebase
  • 使用您自己的 iOS/Android 代码 + 服务器代码自行开发
  • 涉及功能标志的 iOS/Android 代码库的开源工具
于 2021-12-02T05:41:59.463 回答