Ruby
プロを目指す人のためのRuby入門

はじめに

この記事は書籍「プロを目指す人のためのRuby入門」に掲載できなかったトピックを著者自らが紹介するアドベントカレンダーの15日目です。
本文に出てくる章番号や項番号は書籍の中で使われている番号です。

今回はprivateメソッドとインデントのスタイルをいくつか紹介していきます。

必要な前提知識

「プロを目指す人のためのRuby入門」の第7章まで読み終わっていること。

privateメソッドとインデントのスタイル

privateキーワードとインデントのさせ方(コーディングスタイル)についてはいくつかの流派があります。1つは本書のようにprivateキーワードもメソッドの定義も同じインデントの深さで定義するスタイルです。

class User
  private

  def foo
  end
end

2つ目はprivateキーワード以下のメソッド定義でインデントを1段深くするスタイルです。Ruby on Railsで自動生成されるコードはこのスタイルです。

class User
  private

    def foo
    end
end

3つ目はprivateキーワードのインデントを1段浅くするスタイルです。

class User
private

  def foo
  end
end

Rubyには公式のコーディングルールがないので、どれが正解とは言えません。「メソッド名はスネークケースで書く」のようなルールはかなり一般的ですが、privateメソッドとインデントのスタイルについては人によって好みがわかれやすいところです。また、好みだけでなく、巨大なクラスになると自分が今見ているメソッドがpublicかprivateか判断しづらいので、2つ目のスタイルのようにインデントの深さで判断したい、という目的も出てくるかと思います。不毛な議論を避けるため、みなさんもチームで開発する際はチーム内で予めコーディングスタイルを決めておいた方がよいでしょう。

ちなみに「プロを目指す人のためのRuby入門」では最初に示した「privateキーワードもメソッドの定義も同じインデントの深さで定義するスタイル」を使っています。

次回予告

次回はメソッド定義と同時に公開レベルを設定する方法を紹介します。