我正在使用一种遗留方法,该方法过滤掉一些数据并返回一个元素数组。
简化版如下所示:
def filtering_rules
items = []
items = apply_rule_one
return items if items == 3
items = apply_rule_two
return items if items == 3
items = apply_rule_three
return items if items == 3
end
我需要在运行 apply_rule 三之前添加一个记录器,所以我这样做了:
def filtering_rules
items = []
items = apply_rule_one
return items if items == 3
items = apply_rule_two
return items if items == 3
Rails.logger("Rule 1 and 2 failed to return data moving to rule 3") if items.empty?
items = apply_rule_three
return items if items == 3
end
我的测试通过了,一切正常。但是代码不是 DRY 并且规则过滤器中的记录器很丑陋。关于模式或最佳实践的任何建议?