プログラミングをしているとき、作業の中でそれなりの割合を占めるのが、「名前をつける」という作業。
たかが名前をつけるだけ。その油断が命取り。書いてる最中はいいのですけど、しばらくぶりにコードを読んだりすると意味不明な感じになることもしばしば。かといってその場その場で名前を考えるのは結構時間かかるりますよね。かかるんですよ僕は。そういうわけで名前の付け方をある程度パターン化してしまうという考え方で、時短していきたいと思います。
名前の付け方ルールを把握する
プログラム言語の規約に従った名前にしないとエラーになってしまうので最低限ルールを把握しておきます。Rubyの場合は
- クラス名はパスカルケース
- 変数名は小文字。 単語を区切る時にスネークケースを使う。
- メソッド名も同じく小文字でスネークケース
といった感じです。なんとかケースという文字がいっぱいでてきましたが、これらの意味わからないよーってかたは以下の記事を参考にしてもらえばと思います。変数名はRubyだとスネークケースを多く見かけますが、他の言語だとキャメルケースが多いように感じます。
ところで、変数名には、いわゆる「予約語」を使うことはできません。「予約語」というのはプログラム言語で既に使われている名前のことです。Rubyだとifとかwhileとかclassとかそういうのが予約語に該当します。
クラス名のつけかた
名詞にあたるものをそのままつける
1つめは名詞をそのまま使うパターン。
例を挙げると、アカウント情報を扱うクラスならば、そのまんまAccountみたいな感じです。
クラス名は擬人化して名付ける
2つめはクラスを擬人化して名付けるパターン。このクラスって何する人か?っていう役割によって名前をつけるようなイメージですね。
例を挙げると、AccountManager(アカウント管理する人)みたいな感じです。プログラムの内容を見なくても、名前だけでアカウント追加したり削除してくれたりしそうなイメージが持てるのがよいです。
変数名のつけかた
何が入っているかわかればOK
変数に関しては、器の名前として成立していればそれで問題ないと思います。
さきほどクラス名で出てきたAccountを変数に入れるならば、そのままaccountでもいいですし、新規アカウント用の変数だったら、new_accountで良いんじゃないでしょうか。
変数名は、単語を省略して使われることもある
名前の付け方というところで変数名については、長い単語を省略して表す場合があります。例えば
- 数をカウントする count --> cnt
- 数字や番号を表す number --> num
- 列を表す columns --> col
とかは見かけますね。他のかたが書いたコードを参考にしたりする場合などにこのような省略形で名前が付いている場合もあります。自分で名付けるときも省略系を使っても良いですが、あまり浸透してない略し方を使うとやっぱりわからなくなってしまうので、なるべく省略せずに名前をつけるのがおすすめです。よっぽど長い単語の場合は別の単語に置き換えるとかがいいんじゃないでしょうか。
メソッド名のつけかた
動詞からつける
メソッド名は、動詞から始まるパターンが多いです。クラス名で出てきたAccountManagerにメソッド名をつけていくとしたらこんな感じです。
- アカウントを作成する ーー> create
- アカウントを削除する --> delete
- アカウントを探す ーー> find
動詞に形容詞や名詞をくっつける
さきほどの応用編で、動詞に付け加えて名詞をくっつけるパターンですね。同じくAccountManagerを例に挙げます。
- 最初のアカウント探す --> find_first
- アカウントに権限をつける --> add_role
- アカウントグループを作る --> make_group
メソッド名は、「なにをするのか」ということが名前になっていればよいと思うので、動詞をメインに名前を考えておけばそれっぽくなると思います。
今回は名前の付け方や考え方についてご紹介しましたが、名前のつけかたとしてよく使う英単語も、パターン化しておくとさらにいい感じかも。