コーディング規約 記述書式編

http://opensource.adobe.com/wiki/display/flexsdk/Coding%20Conventionsを自分用にまとめた。記述書式編。

行あたりの幅

80行とする。いつものアレですね。比較ユーティリティで並べることが出来るよね、それってクールだよね。とか言われると納得。

インデント

4文字のスペース。wonderflでは自分ルールで最近2文字。

区切り

ASDOCとは別の何か。セクションを分けて見易くするするための記述。
ちょうど80文字になる良い感じの幅で記述

    //--------------------------------------------------------------------------
    //
    //  Overridden methods とか。
    //
    //--------------------------------------------------------------------------

更にセカンドセパレータとしては以下のような感じ。
セカンドパラメータは、ちょうど40文字になる良い感じの幅で記述

    //----------------------------------
    //  visible
    //----------------------------------

宣言の分離

定数、変数および関数宣言の間には、縦方向のセパレータとして空白行を1行配置

配列のインデックス

左側の角括弧の直前、直後、および右側の角括弧の直前には半角スペースを入れない。

trace(a[0]); // a[ 0 ] としない

カンマの後にはスペースを入れる

var sp:Shape = new Shape();
sp.graphics.drawRectangle(0, 0, 100, 100); // (0,0,100,100)としない

Arrayリテラル

最初と最後にスペースを入れる

var hoge:Array /* of Number */ = [ 0, 1, 2, 3 ]; // [0, 1, 2, 3]としない

ただし空は特別

var hoge:Array = [];

長い場合はまた別

var hoge:Array /* of String */ =
[
  "ゼロ番目の何かですよ",
  "1番目のアレ"
];

Objectリテラル

Arrayリテラルと一緒。

型宣言ではスペースを入れない

var hoge:String = ""; // var hoge : String = "";としない

演算子と代入では間にスペースを入れる

var hoge:Number = 100; // var hoge:Number=100;としない
var fugo:Number = hoge + 99; // hoge+99としない

Prefix, Postfix演算子とその作用対象の間にはスペースを入れない

flg = !flg; // flg = ! flgとしない
i++; // i ++;としない

1ステートメントは1行にする

{}は始まりと終わりを同じ列にインデントを揃える

class Hoge 
{
  public function Hoge()
  {

  }

  public function show():void
  {
    if (aaa)
    {
      ...
    }
    else
    {
      ...
    }
  }
}

関数の宣言

引数を列挙する際に行の折り返しが発生する場合は、左側の括弧と整列するように折り返し後の行をインデントする。スペースに余裕がある場合は複数の引数を1行に記述し、それ以外の場合は1行につき1つの引数を記述する。1つの引数さえ記述するスペースがない場合は、2行目に最初の引数を配置し、この行のインデントを関数名より前の位置にまで移動する。

public function foo(parameter1:Number, parameter2:String,
                    parameter3:Boolean):void

public function foo(parameter1:Number,
		    parameter2:String,
                    parameter3:Boolean):void

public function aVeryLongFunctionName(
    parameter1:Number, parameter2:String,
    parameter3:Boolean):void

関数の呼び出し

func(a, b)のように記述する

if, for, while switchステートメント

ステートメントの後にスペース、(、スペースなし、)

if (a && b)

for (var i:uint = 0; i < length; i++)

while (a || b)

switch (aaaa)