在处理方法中的数据时摆脱FeatureEnvy

时间:2017-04-28 03:39:10

标签: ruby reek feature-envy

我经常遇到为了实现某些过程而需要处理数据的方法,通常类似于:

def process_something(data_from_external_service)
  request_params = {
    param1: data_from_external_service['param1'],
    param2: data_from_external_service['param2'],
    param3: data_from_external_service['param3']
  }
  post_action('some other service param', request_params)
end

考虑到:

  1. 逻辑上期望post操作在该方法内部(也处理该数据),并且在其他地方执行params准备可能会在调用process_something的另一个方法中引发相同的reek。
  2. data_from_external_service正是这些,这些是来自应用程序之外的值,而创建一个新类只是为了处理这组数据在我看来是一个过分的措施。
  3. 有没有一种“合法”的方式摆脱FeatureEnvy恶作剧?我现在唯一要做的就是在方法上添加# :reek:FeatureEnvy

0 个答案:

没有答案