ペアジョブのコード仕様

3350 ワード

前言:
先生のコメントによって修正され、以前の簡単なコード規範に比べて、今回は他の大企業/開発者のコード規範を理解するのに時間を費やし、規範はもっと完備した.
コードスタイル:
  • ライブラリの使用:不要なヘッダファイルや不要なプログラムセットを含む不要なライブラリをできるだけ参照しないでください.細部を重視することで、生成時間を減らし、エラーの確率を最小限に抑え、読者に良い印象を与えることができます.
  • インデント:インデントは4つのスペースを使用します.
  • グローバル変数:グローバル変数の使用を最小限に抑える.グローバル変数を正しく使用するには、一般的にパラメータとして関数に入力します.関数またはクラス内でグローバル変数を直接参照しないでください.これは、呼び出し元が知らないうちにグローバル変数の状態を変更する副作用を引き起こすためです.これは静的変数にも適用されます.グローバル変数を変更する必要がある場合は、出力パラメータとして使用するか、グローバル変数のコピーを返します.
  • 変数の宣言および初期化:ローカル変数を含む最小の役割ドメインブロック内で宣言します.一般に、言語が許可されている場合は、使用前にのみ宣言します.そうしないと、役割ドメインブロックの先頭で宣言し、変数を宣言するときに必ず初期化し、できるだけ宣言と初期化または付与値を同じ行のコード内に配置します.
  • カッコ:複雑な条件式では、論理優先度をカッコで明確に表します.
  • 行と空白の{}行と行をブレークします.異なる変数を定義したり、複数の変数に値を付けたりするときは、1行に置かないでください.つまり、複数の文は1行に置かないでください.プログラム構造スタイルは断行と空白の{}行を用い,プログラムデバッグ時に単一ステップで実行するには断行が必要であり,プログラム複雑なコード量が大きい場合には空白{}で構造を明確にする.各行のコードは80文字幅に限定され、1行に内容が入らない場合は折り曲げが必要です.

  • 折れ線ルール:
    1.       ;
    2.       。     +,-,*,/,   ,  ,”&&”,”||”,  ,  ,            ;
    3.     、  、    enum                  ,      ,                ;
  • 注釈:注釈は、直訳ソースコードではなく、ソースコードの補足として使用されるべきである.注記では、プログラム識別子の重複を回避し、他の情報のコピーを回避します(情報を指すポインタを使用できます).そうでなければ、プログラムのいずれかの変更には、対応する変更が複数必要になる場合があります.他の場所で必要な注釈の変更が行われていない場合は、注釈がまったくないよりも悪い結果になります.
  • それらは、ソースコードから直接物を見ることができないことを説明しなければならない.言語の文法や意味をコピーするべきではありません.
  • それらは、読者が背景における概念、依存性、特に複雑なデータコードおよびアルゴリズムを把握するのに役立つべきである.
  • これらは、コードまたは設計基準との異なる点、制限された特性の使用、および特殊な「テクニック」を強調しなければならない.

  • i:各関数がコードセグメントを定義する前に、その関数の関数名、関数機能記述、入力パラメータ記述、出力変数説明、アルゴリズム記述を説明するための注釈があるはずです.例:
    /*
    *--------------------------------------------------------------------------------
    *  Member Name              :        
    *  Function Description     :       
    *  Parameter Specification  :           
    *  Return Specification     :          
    *   Algorithm               :               
    *   Addtion                 :       ,     ,    ,    。
    *--------------------------------------------------------------------------------
    */

    ii:肝心な修正箇所は注釈をつけて説明しなければならない.
    /*
    * Revision                  :      
    * Revision Date and Time    :        
    * Mender                    :    
    * Revision Description      :         
    */
  • 命名規則:
  • は「ハンガリー命名法」を合理的に簡略化し、変数名はできるだけプログラマーに一目でその意味を見ることができ、明らかに分かりやすい変数タイプはその中で体現する必要はない.
  • は簡便な略語フォーマットを採用し、簡潔に表すことができる変数についてあまり説明する必要はない.
  • 不要な修飾語を避け、修飾語を削除するプログラムが難しくならなければ、削除することができる.
  • 下線を使用して、変数名の役割ドメインの寸法と変数の意味を区切ります.例えばWord_Count;
  • i:すべてのタイプ/クラス/関数名はPascal形式で使用されます.すべての単語の最初のアルファベットは大文字です.
  • ii:すべての変数はCamel形式を使用し、最初の単語はすべて小文字で、その後、単語はPascal形式に従う.
  • iii:定数はすべて大文字のアルファベットで、下線で単語を分割します.
  • iv:静的変数に接頭辞s_を付ける(staticを表す).
  • v:やむを得ずグローバル変数を必要とする場合、グローバル変数に接頭辞g_を付ける(globalを表す).


  • サンプルコード:
    class Node; //   
    
    class LeafNode; //   
    
    void Draw(void); //    
    
    void SetValue(int value); //    
    BOOL flag;
    
    int drawMode;
    const int MAX = 100;
    
    const int MAX_LENGTH = 100;
    void Init(…)
    
    {
    
    static int s_initValue; //     
    
    …
    
    }
    int g_howManyPeople; //     
    
    int g_howMuchMoney; //     

    参考記事:
    C/C++プログラミング仕様
    マイクロソフトプログラミング仕様
    及び中央研究院C++コード規範のwordドキュメント;