Ruby避免发现阴影的方式

时间:2014-04-04 15:29:50

标签: ruby

我发现自己在Ruby中使用的常见模式如下:

foo = foos.find {|foo| foo.attribute == some_other_attribute }

在检查阴影的IDE中,该行抱怨foo被遮蔽。

诱人的选择如下:

foo = foos.find {|f| f.attribute == some_other_attribute }

但是这种方法打破了许多IDE中的搜索功能 - 在复杂的块中搜索f将是一场噩梦,在项目中搜索foo.attributes将错过这行代码。< / p>

我所倾向的丑陋解决方案只是在变量名前加上其范围:

foo = foo.find {|block_foo| block_foo.attribute == some_other_attribute }

虽然这对于短块来说很好,但是任何更长的时间都会从所有block_污染代码的行为中产生大量噪音。

是否有标准的Ruby方式进行此类分配?具体来说,我正在寻找符合以下标准的解决方案:

  • 变量名称不缩写
  • 变量名称仍然描述它们包含的对象类型
  • IDE不会发出关于阴影的声音

1 个答案:

答案 0 :(得分:3)

我更希望左侧的变量更具描述性:

blue_box = boxes.find { |box| box.color == BLUE }

即使像found_foo那样更通用的东西,我也会认为它更具描述性。