开始使用功能标志
在代码中,特性标志(Feature Flag)不过就是一个 if
语句。假设你当前有一个实现新用户注册对话框的函数:
function showRegisterDialog(){
// 当前实现
}
现在,你想使用特性标志创建一个新的对话框,并能够在运行时切换到新的对话框:
function showRegisterDialog(){
var newRegisterDialog = false;
if( newRegisterDialog ){
return showNewRegisterDialog();
}else{
return showOldRegisterDialog();
}
}
function showNewRegisterDialog(){
// 新的实现
}
function showOldRegisterDialog(){
// 旧的实现
}
为了动态启用或禁用该功能,你需要将特性标志的验证提取到一个独立的函数中:
function showRegisterDialog(){
if( featureIsEnabled("new-register-user-dialog") ){
return showNewRegisterDialog();
}else{
return showOldRegisterDialog();
}
}
特性标志的配置可以存储在多个位置:
-
系统配置
-
用户配置
-
应用程序数据库
-
独立的数据库
-
通过 API 访问的独立系统
具体选择哪个位置存储配置,取决于你的用例,某些位置可能更适合,某些位置则可能不合适。