ruby – 功能标记最佳实践:方法内部或外部的条件?
发布时间:2020-12-17 02:34:31 所属栏目:百科 来源:网络整理
导读:我们使用功能标志来启用/禁用系统中的某些功能. 我与我的同事讨论了为代码本身添加功能标志的标准方法: 请考虑以下方法: def featured_method do_this do_thatend 从我们代码中的大约15个不同的地方调用该方法. 如果在每次调用此方法之前启用该功能,是否建
我们使用功能标志来启用/禁用系统中的某些功能.
我与我的同事讨论了为代码本身添加功能标志的标准方法: 请考虑以下方法: 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 在方法本身内部具有条件的优点是显而易见的:干掉代码,以及当您想要永久添加特征时,只需从方法中删除条件即可. 在每次调用之前具有条件的优点是,在不进入feature_method代码本身的情况下,该方法是否被执行是非常清楚的,这可以节省相当多的麻烦. 我想知道这些问题是否有另一种解决方案或标准. 解决方法
我会合并两种方法.
这将导致呼叫方的DRY代码.它不会违反feature_method中的SRP,它会清楚地传达正在发生的事情 – 如果你能找到一个比我更好的名字: def may_execute_featured_method featured_method if feature_enabled?(:feature_key) end def featured_method do_this do_that end 调用者将使用may_execute_featured_method (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |