コーディング規則を決める

私の書いたいくつかのソースコードを見てみると、コーディング規則があまり統一されておらず、結構適当に書いてることがおおい。ここらで書き方をきちんと決めておく。

インデント

まずインデント幅は半角4つサイズにする。あと、tabはエディタの方で自動的に半角に変換。また、インデントはブロックごとに行う。

{
    //この位置
}

次に、forとかswitchといった文。括弧「()」の後ろ側に半角スペースを入れる。

while(…) {
    ……
}

for(…) {
    ……
} else {
    ……
}

if(…) {
}

ちなみに、ブロック無しのifやwhileの場合、2行にするとややこしくなるので、一行で書く。

if(…) a++;
while(…) b++;

switchは少し特殊。caseをインデント。caseの値とコロン「:」との間には空白を入れる。

switch(…) {
    case 0 :
        ……
        break;
}

関数定義もこの形。引数については後で。

int foo(…) {
}

オペランドが二つ必要な演算子は、前後に空白を入れる。

int a = 3;

int b = a + 3;

String str = "Hello, " + "world!";

オペランドが一つの場合は空白なし

a++

!a

括弧

式を括弧「()」で囲む場合、括弧「()」のすぐ内側には空白を設けない。

int a = 5 + (7 * 11);

ifなんかの条件式も同じ。

if(a == 3) {
    ……
}

while(!flag) {
    ……
}

また、中括弧「{}」を一行で書く場合は、前後に空白を設ける。以下はJavaScriptのコード。ただし、後ろはセミコロン「;」があるので空白をあけない。

var obj = { x : 3, y : 5 };

こっちは、Javaの配列の初期化

int array[] = { 3, 5, 7 };

if文にも使う

if(…) {
    ……
} else {
    ……
}

添え字を表す角括弧「[]」の前後には空白を設けない。

array[3];

ただし、JavaScriptの配列の初期化のように、複数の値が入る場合は内側に空白を設ける。

var array = [ 3, 5, 7 ];

コンマ、コロン、セミコロン

コンマ「,」

後ろに空白を入れる。前には空白を入れない。

int foo(int a, int b) {
    ……
}

foo(3, 2);

int a = 3, b = 5;
コロン「:」

前後に空白を入れる。

loop : for(…) {
    ……
}
セミコロン「;」

後ろ側にだけ空白を入れる。

for(int i = 0; i < 10; i++) {
    ……
}

コメント

コメントは言語によって結構違うけど、基本はJava的な書き方。まず、ドキュメントに反映されるコメント。これはソースコードの一番最初、クラスの前、関数やメソッドの前に入れる。

/**
 * ここにコメントを書く
 */

こっちはドキュメントに反映しない普通の長文コメント。

/*
 * ここにコメントを書く
 */

一行コメントについては特に規則を設けない。

最後に

今回はコーディング規則について考えてみた。今度は変数名の規則でも考えてみよう。