その名前、本当にOK?キャメル・パスカル・スネーク・ケバブ以外も徹底解説|代表的な命名規則とその別名をまとめて理解しよう

はじめに

変数名やクラス名を付ける際に重要となるのが「命名規則」です。わかりやすく整理された命名規則を使えば、後からコードを読む人(チームメンバーや自分自身)が理解しやすくなり、メンテナンスの効率も向上します。本記事では、代表的な命名規則とよく使われる別名、さらに知っておくと便利な特殊な命名規則についてまとめて解説します。初心者の方にも分かりやすいよう、各命名規則のコード例もご紹介します。

命名規則の重要性

  • 可読性の向上
    統一したルールで命名することで、コードやデザインファイルを誰が見ても理解しやすくなります。
  • メンテナンス性の向上
    命名に一貫性があれば、修正作業や拡張作業がスムーズに進められます。
  • チーム開発での混乱回避
    バラバラの命名規則だと、コミュニケーションの手間が増えたり、思わぬバグを招いたりする可能性があります。

代表的な命名規則

キャメルケース(camelCase)

[別名]LowerCamelCase

  • 特徴:最初の単語は小文字で始まり、2つ目以降の単語の頭文字を大文字にします。
  • :userName, clickEventHandler, myFavoriteColor
  • 使用例:JavaScriptの変数や関数名など

コード例(JavaScript)

// 変数と関数をキャメルケースで命名
let userName = 'Taro';

function sayHello() {
  console.log('Hello, ' + userName);
}

sayHello(); // 結果: Hello, Taro

パスカルケース(PascalCase)

[別名]UpperCamelCase

  • 特徴:すべての単語を大文字で始めます。
  • :UserName, ClickEventHandler, MyFavoriteColor
  • 使用例:JavaScript(React)のコンポーネント名、クラス名など

コード例(JavaScriptクラス)

// クラス名をパスカルケースで命名
class UserProfile {
  constructor(name) {
    this.name = name;
  }

  sayHello() {
    console.log('Hello, ' + this.name);
  }
}

const user = new UserProfile('Taro');
user.sayHello(); // 結果: Hello, Taro

コード例(Reactコンポーネント)

// Reactコンポーネント名をパスカルケースで命名
function UserCard() {
  return (
    <div>
      <h1>User Card</h1>
    </div>
  );
}

export default UserCard;

スネークケース(snake_case)

  • 特徴:単語の区切りにアンダースコア(_)を使い、すべて小文字にします。
  • :user_name, click_event_handler, my_favorite_color
  • 使用例:Pythonの変数名、データベースのテーブル名など

コード例(Python)

user_name = "Taro"

def say_hello():
    print("Hello, " + user_name)

say_hello()  # 結果: Hello, Taro

ケバブケース(kebab-case)

[別名]dash-case, spinal-case

  • 特徴:単語の区切りにハイフン(-)を使い、すべて小文字にします。
  • :user-name, click-event-handler, my-favorite-color
  • 使用例:HTMLやCSSのクラス名など

コード例(HTML+CSS)

<div class="user-name">
  <!-- コンテンツ -->
</div>
.user-name {
  color: #333;
}

その他の命名規則

スクリーミングスネークケース(SCREAMING_SNAKE_CASE)

[別名]UPPER_SNAKE_CASE

  • 特徴:スネークケースの派生形で、すべて大文字+アンダースコア(_)を用います。
  • :MAX_VALUE, API_ENDPOINT_URL
  • 使用例:定数の宣言時(JavaScriptなど)

コード例(JavaScript)

const MAX_VALUE = 100;

let value = 150;
if (value > MAX_VALUE) {
  console.log('Over the limit!');
}

ハンガリアン記法(Hungarian Notation)

  • 特徴:変数名の先頭にデータ型や役割を示すプレフィックス(接頭辞)を付けます。
  • :intCount, strName, blnCheck
  • 使用例:古いC言語系のプロジェクト、Windowsアプリケーション開発など

コード例(C言語)

#include <stdio.h>

int main() {
    int iCount = 3;
    char* szName = "Taro";

    printf("Count: %d, Name: %s\n", iCount, szName);
    return 0;
}
注意

近年の開発環境では型推論や補完機能が充実しており、採用ケースは減少傾向にあります。

BEM(Block, Element, Modifier)

  • 特徴:CSS設計手法の一種で、クラス名に「ブロック」「要素」「修飾」の情報を含めます。
    • Block:header, nav, buttonなど
    • Element:header__title, button__iconなど(Block名と要素名をアンダースコア2つ[__]でつなぐ)
    • Modifier:button–disabled, header–largeなど(修飾情報をハイフン2つ[–]で付与)

コード例(HTML+CSS)

<!DOCTYPE html>
<html>
<head>
  <style>
    .nav {
      background-color: #eee;
      padding: 10px;
    }
    .nav__list {
      list-style: none;
      display: flex;
      gap: 10px;
    }
    .nav__item {
      padding: 5px;
    }
    .nav__item--active {
      font-weight: bold;
    }
  </style>
</head>
<body>
  <nav class="nav">
    <ul class="nav__list">
      <li class="nav__item nav__item--active">Home</li>
      <li class="nav__item">About</li>
    </ul>
  </nav>
</body>
</html>

命名規則選択のポイント

  1. プロジェクトやチームのコーディング規約を最優先
    • 言語やフレームワークごとに一般的な命名規則があります。
    • Reactコンポーネントならパスカルケース、CSSクラス名ならケバブケースなど、よく使われる慣習を確認しましょう。
  2. 読みやすさや修正しやすさを重視
    • 長すぎる名前は避け、要点だけをわかりやすくまとめる。
    • 後から見たときに意図がはっきりわかる名前を付ける。
  3. チームの合意を取って統一する
    • 開発メンバー間でルールを共有し、同じスタイルを徹底することで効率が上がります。

まとめ

キャメルケースやパスカルケース、スネークケース、ケバブケースのような代表的な命名規則から、スクリーミングスネークケースやハンガリアン記法、BEMといった特殊なものまで、さまざまなスタイルが存在します。プロジェクトの言語特性やフレームワーク、チームのコーディング規約を踏まえながら、適切な命名規則を選んで使い分けましょう。

テキストエディターによっては、キャメルケースやスネークケースなどに一括変換できる機能や拡張機能があります。

最初は覚えることが多く感じるかもしれませんが、命名規則をマスターするとコードの可読性が飛躍的に向上し、修正や保守にも強いプロジェクトを実現できます。ぜひ、この記事を参考に学びを深めてください。

この記事を書いた人
Experience Designer

大分県出身|アートディレクター兼デザイナー|デザインの先生|デザイナー歴18年|先生歴10年|✱2024年現在
学生〜プロ、経営者〜企業をデザインの力でスケダチ|外部デザイン顧問|デザインなどの情報を発信する「姫野家クリエイティブノート」を運営|広告賞多数受賞

スケダチ@あなたの相棒をフォローする
ノート
スケダチ@あなたの相棒をフォローする
姫野家クリエイティブノート

コメント

タイトルとURLをコピーしました