概要
この記事ではプログラムを書く上で気をつけなければいけない「変数の命名規則」について触れていきます。
良い命名規則はコードの可読性と保守性を高めるために不可欠なのでぜひ覚えておきたいです(自戒の念を込めて)
キャメルケース
この章では、キャメルケースについて触れていきます。
説明
キャメルケースは、各単語の最初の文字を大文字で書きます(例: camelCaseFlag
or CamelCaseFlag
)。最初の単語の頭文字を、小文字から始まるのが「 ローワーキャメルケース 」、大文字から始めるのが「 アッパーキャメルケース 」と言います。個人的にはこの方法をよく使います。TypeScriptをメインで用いる自分はよく使います(チームのコーディングルールにもよる気がするけど)。
メリット
-
コードの一貫性を保てる。
JavaやJavaScriptのような言語では、標準ライブラリや多くのフレームワークがキャメルケースを採用しているため、これに従うことでコード全体の一貫性が保たれます。例えば、JavaScriptのDOM操作関数getElementById
やaddEventListener
など
-
可読性の向上が見込める。
識別子が自然言語のフレーズとして読めるため、コードを読む際の理解が早まります。例としてcalculateTotalAmount
なら、「総額を計算する」と直感的に理解することができると思います。
デメリット
-
非英語圏の言語における不自然さを感じること
非英語圏の開発者が自国語で変数を命名しようとすると、キャメルケースを適用することが難しく、読みにくい名前になる可能性があります。例えば、日本語でお金追加とお金使用(okaneTuikaToOkaneShiyou
)は不自然に感じでしまうと思います。
-
長い識別子の読みづらさを感じる。
メソッドや変数名が長くなると、キャメルケースでは読みにくさが増します。特に、複数の概念やアクションを一つの識別子に含める必要がある場合、この問題は顕著になります。例:fetchAndParseUserDataFromDatabase
。
スネークケース
この章では、スネークケースについて触れていきます。
説明
スネークケースは、単語をアンダースコア( _
)で区切る命名規則です(例: snake_case_variable
)。PythonやRubyの変数名や関数名でよく見られるスタイルです。単語がアンダースコアで区切られているため、視覚的に区別しやすくなっている。
メリット
-
多言語対応の自然さを感じる
英語以外の言語で変数や関数名を作成する際、スネークケースは自然に見え、読みやすい。例えば、ロシア語やアラビア語のような非ラテン文字系の言語でも、получить_данные_пользователя
(ユーザーデータを取得する)のように使えるらしいでs。(例が思いつかなくてchatGPTに聞きました。本当にちゃんと翻訳できてるかは怪しいです🇷🇺)
-
長い識別子の可読性が高い
長い名前もスネークケースにすることで、各単語の区切りが明確になり、読みやすくなります。例としてfetch_and_parse_user_data_from_database
など。
デメリット
-
言語やフレームワークの制約がある
JavaScriptのようにスネークケースが一般的でない言語では、統一感のあるコードを書くためにキャメルケースを使う必要があります。このように、スネークケースを採用しているライブラリやフレームワークが少ない言語では、コーディングスタイルが混在する可能性があリます。
ケバブケース
この章では、ケバブケースについて触れていきます。
説明
ケバブケースは、単語をハイフン( -
)で区切る命名規則です( 例: text-white
,border-b
)。HTMLやCSSでクラス名を指定する際によく使用されます。視覚的に区切りがはっきりしているため、読みやすさを提供します。例に出したようにBootstrapやTailwindCSSでも採用されてるのでよく使いますね。
メリット
-
ウェブ開発の一般性
HTMLやCSSでは、クラス名やIDにケバブケースを使用することが一般的です。例えば、Bootstrapのクラス名text-center
やbtn-primary
は、この命名規則に従っています。これにより、ウェブ開発における一貫性が保たれます。
デメリット
-
プログラミング言語での制限がある
ほとんどのプログラミング言語では、変数名に(-
)を含めることができません。これは(-
)が減算演算子として解釈されるためで、ケバブケースはプログラミングではなく、主にマークアップやスタイルシートに限定されます。
おわりに
変数の命名規則は、プログラミング言語やプロジェクトの慣習、個人の好みによって異なる場合が往々にしてあると思うので重要なのは、一貫性を持って規則を適用し、コードの可読性と保守性を保つことというのが、なんとなく分かりました。
参考文献