▶ データ分析の学習を進めるステップを掲載しています。以下からどうぞ。
はじめに
今回はデータ分析から少し離れて、コーディングする際の変数名の付け方についてです。変数名を適当につけていませんか?私はずっと、適当につけてました・・・。だいぶいまさらですが、自分で書いたコードを読み返してみて「読みにくい!」と感じたので、命名ルールについて調べてみました。今回は調べた結果をまとめていくことにします。
変数名のルールがなぜ必要なのか?
チームで開発する場合はもちろん、個人で開発する場合においても、コードが読みにくいことは「生産性」を下げることにつながります。生産性は、会社の売上・利益・コストにも密接に関係があります。
プログラムは人が読むもので、不特定多数の人の目に触れるものと考え、常に読みやすさを意識しなければなりません。その第一歩として命名ルールは非常に重要です。命名した名前を見ただけでその中身が想起できるだけでも生産性があがりますね。
変数名の付け方
表記手法
いろんな表記の手法があるようですが、camel caseやsnake caseは特に有名で一般的なようですね。
私はいままでまったく変数名についてのルールを意識しておりませんでしたが、(開発をしたこともないし、チームを組んだり、コードレビューをしてもらったこともないので)その重要性を知ったので、個人でコードを書く場合においても、ルールを設けるようにしました。
まず、変数に関してはsnake caseで書くことにして、クラスを定義するときにはcamel caseを採用することにします。その他、意識することを次にまとめます。
意識するとよいこと
ある程度ルールを設けて常に意識をしておかないと、なかなか難しいですね。いろんなサイトの情報を参考にさせてもらいながら、個人でコーディングするときにもルールを設けるようにしました。
今回、ルールを設けるにあたってもっとも参考になったのは以下のサイトです。
変数名をスネークケースをベースとするとして単語をつなぎ合わせるのですから、その「単語」をどのように決めるか、という問題があります。この「単語」に関しても次を意識すると格段にわかりやすくなります。
- 具体的にイメージできるように意識する
汎用的な名前や抽象的なものは、具体的なイメージが湧きにくく、混乱のもととなる。データを格納する変数であれば 「どこから得たものであるか」「なんのデータであるか」を具体的にするとわかりやすくなります。 - 真偽値を意識する
is:状態を表します。(isActiveなど)
can:可能であるかを表します。(canClear)
should:すべきかどうかを表します。(shouldChange)
has:所有を表します。(hasConnection) - 品詞を意識する
ローマ字などの表記とせずに「英単語」を使うのが原則です。そのうえで、「品詞」を意識して、変数名であれば「名詞」あるいは「形容詞+名詞」、関数名であれば「動詞」あるいは「動詞+名詞」とするとわかりやすい。
ツール
上記のようなたった3つのルールを意識するだけでもかなりコードはみやすくなるのではないでしょうか?ただ、慣れないうちはどんな「英単語」を使えばよいか、に迷ってしまうかもしれませんね。
プログラマのためのネーミング辞書サービスというものがありました。このようなサービスを利用してみるのもよいですね。
まとめ
いかがでしたか?今回は実際のプログラミングやデータ分析からちょっと離れて、命名ルールについて扱ってみました。今回記載したたった3つのルールを設けるだけでもだいぶ読みやすいものになるでしょう。
コメント