命名規則大事な話
プログラミングの上でクラス名、関数名、変数名など命名するタイミングが有ると思いますが、可読性を上げる上で一番じゃないかというくらい大事です。
これがいい加減だったり間違っていたりするとバグの温床になります。
命名は長すぎず略しすぎず
プログラミングする上で開発速度をあげるためにクラス名、変数名を略したいときがあります。変数名でsecondary_organization_name
とかあまり使いたくないですね。長いとそれだけtypoの温床になりますし。
かといってそれをson
とかs
とか略してしまうのは考えものです。ソースコードの途中でそれを見かけたときに、知らない人がぱっと見でそれが何かを推測できません。せめてsec_org_nm
とか推測できる略称が良いでしょう。
略したり、しなかったりは実際にプログラムに出現する頻度で分けると良くて
- あまり書くことがないテーブルのカラム名やクラス名は略さずフルの英語名
- 頻繁に書く変数などは略称
と使い所を分けると良いです。
ただ、やはりなるべく同じ名称は同じ文字列が表せるのが良くて、上の例のようにあまりに長すぎる以外は、略さず使うのが良いと思います(member_name
をmem_nm
にしたりとか)。
命名規則はコーディングルールを決めてチームで共有しておくべき
チームで開発する場合、命名規則を表にしておくと、命名に個性が出過ぎなくて可読性が上がります。
名称 | 総称 | 略称 |
---|---|---|
会員名 | member_name | member_name |
組織名 | organization_name | org_name |
変数名は英語で付けましょう
某有名サイトの日付パラメータでf_nen1=2020&f_tuki1=12&f_hi2=10
と日本語のローマ字書きを使っていたりしますが、プログラミングは基本的に英語なのに日本語のローマ字読みが来ると可読性が下がります。一般名詞はなるべく正しい英語を使いましょう。英語の勉強にもなりますし。
使い方を変えたら名前も変えて
仕様変更やリファクタリングで、関数や変数の使い方が途中で変わる場合は横着せず名前も正しい名前に変えましょう。一番やっちゃ行けないのが、変数名そのままで全く逆の意味にしてしまうことです。
except_flag
という変数があった場合「Trueの場合除外対象にするのかな?」と想像してしまいますが、途中で仕様が変わって逆に「Falseの場合に除外する」仕様に変えた場合に変数名そのままだと、後に引き継いだエンジニアが気付かず逆の意味のまま使ってしまうかもしれません。
つまり
ハンガリアン記法はダサいからやめようぜ。