プログラミングの変数名や関数名の命名規則
変数名や関数名を付ける時、結構迷うことありますよね。
「作っている時は良いけど、後から見た時、理解できるだろうか。」「他人が見た時、わかりやすいだろうか。」って考えると、少し考え込んでしまいます。
プログラミングには命名規則という物があり、無視してプログラムを作ることも出来るんですが、他人が見た時の可読性を意識すると、命名規則に従うのが吉です。
『可読性』はシステムの寿命にも直結するので、軽視はできない問題です。
命名規則には、変数名や関数名にどんな言葉を使うかというルールもありますし、大文字・小文字・記号の使い方のルールも存在します。
変数名や関数名の大文字・小文字・記号ルール
ネット上に転がってるコードを見ると、色んな変数名や関数名を見ると思いますが、大文字使ったり、ハイフンやアンダーバーが入っていたり、様々あると思います。
これらには名前がちゃんとあるんです。
パスカルケース
パスカルケースは単語の頭文字を大文字にする記法です。
日常生活でも使われている普通の書き方です。
char[] UserName;
string Password;
int Age;
void CheckTemperature() {}
$UserId;
$FilePath;
$PlateNumber;
function ExportLoginLog() {}
var TextLength;
var FileName;
let Score;
function GetMaxScore() {}
頭文字が大文字になっており、単語が続く場合は、単語の区切りの所でまた大文字になります。
キャメルケース
キャメルケースは、先ほどのパスカルケースの一番最初の文字が小文字になったバージョンです。
プログラムによっては、変数名も関数名も小文字から始まることを推奨している言語があるため、その場合パスカルケースで名前を付けちゃうとルール違反になるので、キャメルケースが使われています。
キャメルって『ラクダ』のことですけど、ラクダって背中にこぶがあるでしょ。
キャメルケースの名前の途中で大文字が出てきて、ボコっとなっている様とラクダのこぶが似ているから、キャメルケースっていうんだろうなぁって思ってます。
string userName;
string password;
int age;
void checkTemperature() {}
$userId;
$filePath;
$plateNumber;
function exportLoginLog() {}
var textLength;
var fileName;
let score;
function getMaxScore() {}
関数名にはキャメルケースが使われていることが多いです。
ケバブケース
ケバブケースは単語の間に『-(ハイフン)』を入れて繋ぐパターンです。
プログラミングではハイフンを入れると算術演算子として解釈されてしまうため、CSSなどのマークアップ言語で良く利用されています。
p {
font-size: 16px;
font-weight: 500;
}
『font-size』や『font-weight』の部分が単語同士がハイフンで繋がれており、ケバブケースになっていますよね。
しかし、javascriptのフレームワークである『React』の中でスタイル指定する時には『fontSize: ’16px’;』や『fontWeight: 500;』など、キャメルケースに変わっていますよね。
これは前述のように、javascriptでハイフンを使うと算術演算子になってしまうので、その回避策として命名ルールを変更した結果だと思われます。
ずっと、なんでケバブケースなんだろうって思ってたんですけど、最近やっと疑問が解消しました。
私がずっとケバブだと思って、想像してた食べ物はケバブではなくて、タコスでした。
本物のケバブを見て、疑問が解消しました。
ケバブって肉が串刺しになっているやつですけど、名前がハイフンで繋がれている様が、海外の人には串刺しの肉に見えたんでしょうね。
no-taco-yes-kebap
串刺しされているように見えません?
スネークケース
スネークケースはケバブケースのハイフンの所が『_(アンダーバー、アンダースコア)』になっているパターンです。
ケバブケースでは単語をつなげるハイフンが、プログラミング言語で特別な意味のある記号が使われていたため、プログラミング言語では使用できませんが、アンダースコアには特別な意味を持たせていないことがほとんどなので、こちらはプログラミング言語で使用することができます。
string user_name;
string password;
int age;
void check_temperature() {}
$user_id;
$file_path;
$plate_number;
function export_login_log() {}
var text_length;
var file_name;
let score;
function get_max_score() {}
ヘビが通った後って波々の模様が出来るんですが、それを模してこういう名前にしたのかなって思います。
単語同士が独立していて、読みやすいですよね。
まとめ
これらのルールは守らなくてもプログラミングできますし、同じ言語でも作る人によって、違うルールで作っていることがあります。
しかし、1つのアプリケーションを作る上ではルールがバラバラにならないように気を付けましょう。
もしお困りごとがありましたら、お問い合わせフォームよりご相談ください。