私達のcocos 2 dx-js規格

2498 ワード

私達のJavaScript規格は全体的にAirbnbのjs規格に基づいています.cocococos 2 dx-jsとプロジェクト自体に適用されるいくつかのカスタムルールを加えています.
なぜAirbnbのjs仕様を選択しましたか?
  • 认可度が高く、この规范は今やJs国际基准になりそうです.AirbnbのGithubを見てください.恐怖の47000+のstar
  • があります.
  • 公式は、Eslentプラグインのサポートを提供します.WebStormを結合して、完璧です.
  • はES 6、Reactなどに対応しています.cococos 2 dx-jsの問題のため、妥当を期して、私達は現在中のES 5規格
  • を使っています.
    WebStorm+Eslint+Airbnbのjs仕様の使い方については、もう一つのブログを参照してください.
    カスタムルール:
    まずプロジェクトのeslintrcファイルを見てください.airbbanに基づいていくつかの簡単な調整があります.コメントはすべて明確です.説明はもうしません.
    {
        "extends": "airbnb/legacy",
        "plugins": [
            "import"
        ],
        "rules": {
            //     4   
            "indent": ["error", 4],
            //        
            "comma-dangle": ["error", "always"],
            //        ,        html  ,      C++、C#    ,     
            "quotes": [1, "double"],
            //  this         ,    cocos2dx-js this._super
            "no-underscore-dangle": ["error", { "allowAfterThis": true }]
        },
        "globals": {
            //         cocos2dx-js  
            "cc": true,
            "res": true,
            "gResources": true,
            //          lu     ,          co     
            "lu": true,
            "co": true
        }
    }
    最後にcococos 2 dx-jsに関する命名規則を追加します.
  • jsファイルの名前は普遍的な習慣に従って、全部小文字で、複数の単語の中間は-接続で、例えばmain.js、scene-mail.js
  • プロジェクトのカスタムクラスは、ラクダのピークの名前を使用して、最初の文字を大文字で、クラスを継承し、最初の単語は親の名前です.このような目的は、cococos 2 dx-js自体と統一している一方で、C+++/C倈の習慣を継続することです.例えば、
  • lu.LayerMain = cc.Layer.extend({
        ...
    });
    
    lu.SceneMain = cc.Scene.extend({
        ...
    });
  • は、グローバル変数の混乱を回避するために、上記のコードのような名前空間を使用して、カスタムクラスは全部luコマンド空間に入れます.例えば、全定数はcoコマンド空間に入れて、モジュール別の宣言に従います.
    //          
    var co = {};
    
    //          
    co.MainConfig = {
        UpdateMode: true,
    };
    
    //        
    co.Wheel = {
        WheelNodeItemCount: 11,
        WheelNodeItemSpace: 220,
        WheelNodeItemSize: 244,
        WheelNodeItemImg: ["bar1", "bar2", "bar3", "red7", "wild", "x2", "x3", "x5",],
    };
  • クラスの内部の大域変数名はmで始まり、ラクダ形であり、名前の最初の単語は変数タイプを見ることができます.
  • lu.Wheel = cc.Node.extend({
    
        mNode1: null,
        mNode2: null,
        mIsRolling: false,
        mHeight: 0,
    });
  • 類の方法名、頭文字小文字:
  • lu.LayerMain = cc.Layer.extend({
        init: function () {
        },
    
        startLoad: function () {
        },
    });