【发布时间】:2013-05-08 14:27:18
【问题描述】:
我们使用功能标志来启用/禁用我们系统中的某些功能。
我与我的同事讨论了向代码本身添加功能标志的标准方法:
考虑以下方法:
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代码本身的情况下,很清楚该方法是否被执行,这可以省去很多麻烦。
我想知道这些问题是否有其他解决方案或标准。
【问题讨论】:
-
有些人会投票关闭anything。
-
大声笑,我不在乎,伙计,不用担心 :)
标签: ruby design-patterns feature-detection