はじめに
この記事は書籍「プロを目指す人のための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キーワードもメソッドの定義も同じインデントの深さで定義するスタイル」を使っています。
次回予告
次回はメソッド定義と同時に公開レベルを設定する方法を紹介します。