Intention Revealing Selector
メソッドには、そのメソッドが何を実現しているかにちなんだ名前をしましょう。
メソッドの命名に関するパターンです。
メソッドの命名でついやってしまいがちなのが、そのメソッドが仕事をどのようにして実現しているかまでをメソッド名に含めてしまうという名付け方です。
class Array def linear_search_for(target) ... end end
しかし、このような名付け方は、メソッドが使用するオブジェクトやロジックを限定してしまうことになり、プログラミングの柔軟性を妨げてしまう可能性があります。
柔軟性をもったプログラミングを行いたい場合、メソッドにはそのメソッドが何を実現しているか*1にちなんだ名前を付けましょう。どのように実現しているかは、メソッド本体に任せるべきです。
class Array def include?(target) ... end end
*1:何を実現しているかについては、異なる方法で実現した場合でも名前として妥当性をもつくらい抽象化を行いましょう