コーディングルール

January 11, 2026 · View on GitHub

Effekseer ではコードベースを一定に保つため、共通のフォーマット設定と命名規約を採用しています。本ドキュメントに記載されているルールは、サードパーティとして明示されているファイルを除き、すべての変更に適用してください。

全体方針

  • リポジトリに含まれている整形ツールを使用し、整形結果と矛盾する手作業のインデントやスペース調整は避けてください。
  • 差分を読みやすく保つため、整形は自分が編集した行に限定してください。
  • 取り込んだサードパーティコードや自動生成コードでは、既存のスタイルが異なっていてもそちらを優先します。
  • 大規模なクリーンアップや全面的な再整形を行う場合は、プルリクエストを送る前にメンテナと調整してください。

CMake ガイドライン

フォーマット

  • python -m pip install cmake-formatcmake-format を導入してください。
  • python Script/Format_CMake.py を実行して CMakeLists.txt*.cmake を整形します(プラットフォーム共通)。
  • スクリプトは生成物やサードパーティコードの再整形を避けるため、.gitbuildDev/Cpp/3rdParty を除外します。

C++ ガイドライン

フォーマット

  • Dev/Cpp/.clang-format にある設定で clang-format を実行してください。エディタに統合するか、clang-format -i <file> を利用します。
  • 設定は LLVM ベースであり、オールマンスタイルの波括弧、幅 4 のタブ(UseTab = Always, IndentWidth = 4)、列制限なしが特徴です。可読性のために必要に応じて手動で改行してください。
  • clang-format が生成した include の順序や空白を保ち、不要な微調整は行わないでください。
  • 挙動変更と同時にファイル全体を整形しないでください。全面的な整形が必要な場合は、事前相談またはフォーマット専用の変更として提出します。

命名

対象規約
public のデータメンバPascalCase(CamelCaseRenderTarget
protected/private のデータメンバ末尾に _ を付けた lowerCamelCase(camelBack_currentIndex_
クラス・構造体・列挙体PascalCase(CamelCaseModelRenderer
メンバ関数PascalCase(CamelCaseUpdateBuffer()
  • 名前空間は周辺モジュールと一貫させてください(例: Effekseer, EffekseerRendererGL)。
  • 省略語ではなく意味の分かる単語を使い、表現を明確にしてください。

C# ガイドライン

フォーマット

  • .editorconfig の設定に従って整形します。エディタープロジェクトでは Dev/Editor/.editorconfig、その他の C# プロジェクトでもソースと同じ階層に設定ファイルがあります。
  • 現在の設定はタブインデント(indent_style = tab, indent_size = 4)と制御構文での波括弧必須を指定しています。
  • 編集したコードに対して整形を適用してください。Visual Studio では編集後に「ドキュメントの整形」 (Ctrl+K, Ctrl+D) を実行するか、プロジェクトディレクトリで dotnet format を使用します。
  • 別の .editorconfig が存在する箇所を編集する際は、そのローカル設定に従ってください。

命名

  • .editorconfig で定義されている .NET の規約に従います。クラス、構造体、プロパティ、イベント、public メソッドは PascalCase、private フィールドは必要に応じて末尾に _ を付けた camelCase を使用します。
  • インターフェイスには I を接頭辞として付け(例: IRenderer)、非同期メソッドには Async を接尾辞として付けます。
  • プロジェクト内で広く認知されているものを除き、意味の伝わりにくい略語は避けてください。

例外

  • これらのルールに一時的に従えない大きな差分(例: サードパーティコードのアップデート)をマージする必要がある場合は、事前にメンテナへ連絡するか、プルリクエストの説明で逸脱理由を共有してください。
  • 意図的なスタイルの例外は、レビュアーが理解できるようコードコメントやレビュー説明に明記してください。