【发布时间】:2019-03-18 15:57:29
【问题描述】:
我正在考虑在具有 javascript/html 和移动本机客户端的基于 Web 的应用程序中使用功能标志,并且正在尝试就以下方面做出明智的决定:
是否应该向客户端应用程序公开功能标志?
在与其他人讨论这个问题时,出现了两种关于客户端如何处理功能标志的方法,它们是:
1) 客户对功能标志一无所知。
响应数据的服务器端端点将包含额外的数据来说明某项功能是打开还是关闭。
例如对于虚构的端点/posts,可以像这样返回数据
已启用增强的 ui 功能:
{
enhanced_ui: true,
[1,2,3,4,5]
}
已禁用增强的 ui 功能:
{
enhanced_ui: false,
[1,2,3,4,5]
}
2) 客户端可以访问端点,并请求功能标志状态。
例如/flagstates
{
'enhanced_ui:true
}
然后客户端使用它来根据需要隐藏或显示功能。
一些想法:
方法 #1 的移动部件更少 - 根本不需要客户端库来实现门。
问题出现了——当动态标志更新时,客户怎么知道?我们可以实现 pub/sub 来接收通知并重新加载客户端,然后他们会自动获取新的最新数据。
方法 #2 感觉管理监听标志更新可能更容易,因为它是返回功能的单个端点,并且可以轻松推出状态更改。
【问题讨论】:
-
关于动态标志点 - 你为什么要打扰通知方法,等待内容重新加载对我来说听起来很合理。
-
该应用是单页应用,因此不会发生类似的重新加载
-
我的观点仍然存在,功能切换听起来不像是应用程序应该立即做出反应的东西,所以在 spa 中等待重新加载听起来也很合理。这是我的观点,所以请随时不同意。
-
同意 - 世界不会随着鼓的节奏移动
-
我建议你看看 aspnet zero 以及他们如何实现功能/版本。在我看来,它有很好的原则和解决方案的模板。可能正是您正在寻找的。span>