rubyでメソッド名が大切な理由

要約

  • rubyは型チェックがないスクリプト言語
  • 引数になにをとるか、なにを返すかはメソッド名で表現するしかない

Rubyは型チェックがないスクリプト言語

Rubyでメソッド名は大切です。 rubyは型がないので、メソッドの引数でなんでも取れるし、戻り値もなんでも返せます。 何が返るかはメソッド名で判別できないと、都度そのメソッドの中身をみなければいけなくなり、せっかくのオブジェクト指向で抽象化した意味がなくなってしまいます。 なのでしっかり意識して返すようにしましょう。

class User
  has_many :towns
  def name
    "nishizaki" #string返す
  end

  def hometown
    my_home_towns.last.name # やりがち
  end

  private
  def my_home_towns
    ...
  end
end

class Town
  has_many :users
end
user = User.last
user.hometown
=> "横浜市"

だとTownクラスが返ってきそうですが、よくあるのはその名前のstringを返しちゃうパターン。 名前を返したい場合は、メソッド名がhometown_nameであってほしいです。