最近オブジェクト指向を意識し始めて、命名規則を考えるようになりました。
オブジェクト指向は、処理がブラックボックス化するので名前がかなり重要だと思い考えています。
よく公開されているコードで見る変数の命名規則がキャメルケースで書かれていることが多いです。
それとは逆に、変数の命名規則について自分はパスカルケースで書くほうが自然だと思ったのですが、なぜキャメルケースで書くのでしょうか。
よく見る命名規則
クラス:UserController
関数:getUserData()
変数:userName
自分の最適だと思う命名規則
クラス:UserController//必ず先頭は名詞
関数:getUserData()//必ず先頭は動詞
変数:UserName//必ず先頭は名詞
なぜそう思うのか
よく見る命名規則は、変数名がキャメルケースになっていることが多いです。
しかし、関数には演算などの処理をさせる部分を全て書きますし、クラスはインスタンスを作成して使用するので変数と同じくデータを格納しておくものと分類できます。
そのため、変数とクラスは必ず先頭の単語を名詞にし、関数の先頭の単語は動詞にすると自然だと思います。
クラスのインスタンス作成時の違い
//パスカルケース UserController = new UserController(); //キャメルケース userController = new UserController();
上のコードだと、変数の中にはクラスとデータが混同しています。
やはりこの場合だと名前でクラスかどうかを判断するので、記法によってクラスと変数を見分ける要素は薄いと考えます。
下記の例だと、変数を見分ける時、1と2より2と3の方が見分けられやすいと思いました。
また、getNameDataはnameDataを取得するのかNameDataを取得するのでは後者の方が自然な気がしました。
1, nameData; 2, getNameData(); 3, NameData;
質問
自分としては、変数とクラスは同じくパスカルケースで書いたほうが、
関数と変数の見分けがすぐに付くので可読性が上がると思うのですが、なぜ変数をキャメルケースで書く場合が多いのでしょうか?
追記:多くの様々な回答ありがとうございました。
・言語によってメジャーな命名規則が違う。
・ある集団内での独特な命名規則は、多くのコストを生む。
・変数/関数名を頼りにした書き方であると、その集団内での仕様を確認しなけらばならずコストである。
・変数をパスカルケースで書くとクラスメソッドとの違いを見分けられない
・後ほどQiitaにまとめておきます。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。