はじめに
こんにちは。上野です。
本日は命名規則について。
最近転職をしました。
それに伴い開発環境もガラッと変わりました。
例として、
Windows → Mac
Visual C++ → C
Visual Studio 2018 → Visual Studio Code
などです。
ソースコードを読んでまず感じたのは、その命名規則の違いです。
実装の層ごとに命名規則は少々異なりますが、ざっくりいうと以下のような違いです。
前職は関数はパスカルケースとキャメルケース。
一方、現職はスネークケース。
まだ慣れないですね、とチームの同僚に話したら「言語によって命名は違うよね〜」とコメントをもらいました。
命名規則自体はソースの制御に影響は受けません。
個人で開発しているのであればほとんど必要ありません。
しかし、複数人で開発するとなると話は別。
ソースに秩序をもたらさなければなりません。
それを承知の上で、じゃあ最適だと思われる解ってなんだろうとちょっと考えてみます。
言語と命名規則
そもそも言語と命名規則の関連なんていうものを意識してなかったので、調べてみました。
まず、命名規則の種類。以下の4つが代表的です。
・アッパーキャメルケース
・パスカルケース
・スネークケース
・チェインケース(ケバブケース)
アッパーキャメルケースとパスカルケースは2つまとめてキャメルケースとも言います。
では、それぞれの命名規則はどういった場面で使われることが多いのでしょうか。
以下の記事ではこのように書かれています。
キャメルケース → プログラミングでの関数や変数
スネークケース → DBなどで扱う値
ケバブケース → HTMLのclass名
他の記事にも同じような意見がありました。
私も体感では上記の使い分けにおおむね納得感があります。
前職でCSSをいじった際に、classはケバブケースで書かれていました。
一方でこちらの記事ではこのように書かれています。
キャメルケース → Java, C, Swiftなどでよく利用されている
スネークケース → PHPでよく利用されている
ケバブケース → HTMLのclass名
さっきの記事とそこまで変わらないですね。
さらに、こちら。
https://www.irohabook.com/case
キャメルケース →使用言語:Java,C#,Swift,JavaScript
スネークケース →使用言語:C,C++,Python,PHP
こちらの記事では、言語ごとに提供されている関数について言及しています。
確かに提供されている関数と自身で実装する新しい関数の間で命名規則がガタガタになるよりも、
既に実装されている関数に合わせる。
その方が、読んでいる側としては読みやすいですね。
ただ、命名規則が異なっていることで提供済みの関数か否かを判別できる、そんなことも考えたり。。。
まとめ
言語で使われているライブラリとかに合わせっるっていうのが一番納得感ありました。
ただ、企業の中にいると既に書かれた関数名やら変数名やらをリファクタリングするのは下手したら設計するよりものエネルギー使うんで、なかなか荷が重い。
メンバー個人個人が意識してコーディングできるといいですね。
上野