Coding Standards (標準的なコーディング)

標準的なコーディングをすることは、コードを簡単にメンテナンス、問題解決、統合できるようになるのでモジュール作成に役立ち、より一貫性を持つコードを書くのに役に立ちます。

NWNライブラリプロジェクトは一貫性を維持するため、すべて標準的なコードと命名慣習(naming conventions)を守るように書かれています。グループ開発を行う場合、ここに示された通りでなくても、なんらかの標準コーディング方法や標準命名法則を決め全員が合意することは強く勧められます。


  1. インデントと全体的な構造
    • Biowareでは括弧の配置やインデントは完全に一貫していませんが、左括弧は関数プロトタイプやif文の次の行に大抵置かれています。if文はこう書かれているでしょう。
      if (TRUE)
      {
           // ...
      }
      
    • ひとつの物理行にはひとつの論理行だけが置かれるべきです。例外は例えば、switch/case構造などで可読性を高める場合です。
      switch (nCondition)
      {
           case 1: sVariable = "one"; break;
           case 2: sVariable = "two"; break;
           case 3: sVariable = "three"; break; 
      }
      
    • ステートメントは入れ子の深さの分だけインデントするべきです。void main()内のif文は次のようになります。
      void main()
      {
           if (TRUE)
           {
                // ...
           }
      }
      
    • 余白と改行をうまく使うことで、変更を簡単にするのと、長い関数呼び出しや入れ子の関数呼び出しを分解して読むことができるようになります。
      action aConvo = ActionStartConversation(
           GetObjectByTag("SOME_TAG"),
           "Hey you!",
           FALSE
      );
      

  2. 識別子と関数の宣言
    • 一般に識別子(変数や定数のこと)は関数の最初に宣言するべきです。これは識別子の型や初期値を見つけるのを簡単にします。識別子が一度しか使われない場合など、その使う箇所のコードブロックの内部で宣言することもできます。
    • 関数名は(最初の単語を除いて)単語の1文字目を大文字にするべきです。こうすればBioWareの関数と名前が一緒になることがありません。例えば以下のように書きます。
      int doSomething(int nKills)
      {
           return nKills - 9;
      }
      
    • 変数名は標準的な命名にするべきです。「命名規則(naming conventions)」を参照して下さい。

  3. 論理条件判定
    • BioWareでは論理型の条件判定の書き方は一貫していません。「bCondition==1」も「bCondition==TRUE」も使われていますし、「bCondition」や「!bCondition」も一般的な使われ方として認められています。
      int型の変数が真偽のみを表す論理型として使われる場合は接頭辞「b」を付けるのが標準となっています。
      int bTest = TRUE;
      int nTries = 3;
      // boolean test:
      if (bTest)
      {
           // ...
      }
      // numeric test:
      if (nTries > 0)
      {
           // ...
      }
      




author: Charles Feduke, additional contributor(s): Steve Mosely, Michael Nork, pcfung, JP team: ohtsuki
Send comments on this topic.