JavaScriptのクラス名の命名規則

JavaScriptのクラス名の命名規則

パスカルケースを用いる

JavaScriptでは、クラス名には一般的にパスカルケース(PascalCase)を使用します。これは、各単語の先頭を大文字にし、それ以降を小文字にする書き方です。


class UserProfile {
    constructor(name) {
        this.name = name;
    }
}
    

この命名規則は、JavaScriptの標準的なコーディングスタイルに則っており、関数名(通常はキャメルケース)と区別しやすくなります。

接頭辞や接尾辞の活用

クラス名の意味を明確にするために、接頭辞(Prefix)や接尾辞(Suffix)を利用することがあります。

接頭辞の例


class BaseComponent {}  // 基本クラス
class AbstractUser {}   // 抽象クラス
class IAuthentication {} // インターフェース的な命名(TypeScriptでよく使われる)
    

接尾辞の例


class UserManager {}   // ユーザー管理をするクラス
class DataService {}   // データ関連のサービスクラス
class HttpClient {}    // HTTP通信を扱うクラス
    

抽象クラスの命名

抽象クラスの命名には、一般的に “Abstract” という接頭辞を使います。これにより、直接インスタンス化されるべきでないことを明示できます。


class AbstractShape {
    constructor() {
        if (new.target === AbstractShape) {
            throw new Error("Abstract classes cannot be instantiated.");
        }
    }
}
    

インターフェースの命名

TypeScriptでは、インターフェースを定義する際に “I” を接頭辞としてつけることが一般的です。JavaScript単体ではインターフェースがありませんが、命名規則として取り入れることは可能です。


interface IUser {
    name: string;
    login(): void;
}
    

シングルトンクラスの命名

シングルトンパターンを採用するクラスでは、”Singleton” という単語をクラス名に含めることがあります。


class DatabaseSingleton {
    static instance = null;

    static getInstance() {
        if (!DatabaseSingleton.instance) {
            DatabaseSingleton.instance = new DatabaseSingleton();
        }
        return DatabaseSingleton.instance;
    }
}
    

ファクトリークラスの命名

ファクトリークラスでは、”Factory” という接尾辞をつけることが一般的です。


class UserFactory {
    static createUser(name) {
        return new UserProfile(name);
    }
}
    

ドメイン駆動設計(DDD)に基づく命名

ドメイン駆動設計(DDD)を意識したクラス命名では、モデル・エンティティ・リポジトリ・サービスなどの概念を明確にするための命名規則を取り入れます。


class UserEntity {}      // データベースのユーザーを表すクラス
class UserRepository {}  // ユーザーのデータ取得・保存を行うクラス
class UserService {}     // ビジネスロジックを担当するクラス
    

避けるべきアンチパターン

分かりにくい命名は避けるべきです。以下のようなアンチパターンに注意しましょう。

意味のない略称


class UMgr {} // UserManager のつもりだが、わかりにくい
    

無意味な一般名


class Data {} // 何を扱うクラスなのか不明
class Processor {} // 何を処理するのか不明
    

命名のベストプラクティス

  • パスカルケース(PascalCase)を使用する
  • 接頭辞・接尾辞を適切に活用する
  • 役割が明確に伝わる名前をつける
  • ドメイン駆動設計(DDD)の概念を取り入れる
  • 略語や汎用的すぎる名前は避ける

適切な命名規則を守ることで、コードの可読性と保守性を向上させることができます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です