我们使用功能标志来启用/禁用我们系统中的某些功能。
我与我的同事讨论了向代码本身添加功能标志的标准方法:
考虑以下方法:
def featured_method
do_this
do_that
end
该方法从我们代码中的大约 15 个不同位置调用。
您是否建议在每次调用此方法之前添加检查是否启用了该功能:
if feature_enabled?(:feature_key)
featured_method
end
或者在 features_method 本身内部,像这样:
def featured_method
if feature_enabled?(:feature_key)
do_this
do_that
end
end
将条件包含在方法本身的优势是显而易见的:干涸代码,并且当您想要永久添加功能时,您只需从方法中删除条件即可。
在每次调用之前都有条件的好处是,在不进入featured_method
代码本身的情况下,该方法是否被执行非常清楚,这可以省去很多麻烦。
我想知道这些问题是否有另一种解决方案或标准。