コーディング規約

コーディング規約とは、プログラム書く(コーディングする)時のルールです。
書き方をみんなで統一して、ソースを読みやすくするんですね。
言語により、色々あるそうですが今回はJavaで。


プログラムを書くよりも、先にこっちを勉強しろって言われます。
最初は慣れないかもしれませんが、できるだけ規約を守るように心がけましょう。

SUNのコーディング規約

とりあえず、これを守るのが基本

原文
http://java.sun.com/docs/codeconv/
和訳
http://www.tcct.zaq.ne.jp/ayato/programming/java/codeconv_jp/

私が持っていたコーディング規約まとめ

コピペします。

  • returnに括弧はつけない

誤)  return(0);
正)  return 0;

  • インデントにはタブを使う(エディタで4文字tabを基本)
  • 空白のあけ方の統一

  引数の,の区切り方、()間の空白
{,},コンマ,演算子,for/if/whileなどの(や)の前後はスペース
例)
  int nn = new int {
    2, 3, 3, 58,
  };
  void testFunction(int a, int b, int c) {
    if (true) {
      func(1, 3, 3);
      for (int i = 0; i < 100; i++) {
        l += 3 * a + b;
      }
    } else if (false) {
    } else {
    }
    return 3 + l;
  }
public class A extends Applet {
}

  変数、メソッド名は小文字単語を使う

  • 二単語以上になる場合、二単語目移行の一文字目は大文字にする

  ex) veryLongWord
  定数は、大文字をアンダーバーでつなげる
  ex) static final int CONSTANT_VALUE = 3;

  • 変数の宣言は使う前に

  変数は使用する直前に宣言(可読性、メモリ節約、高速化)
  必要であればブロックで囲んでスコープを限定
  {
    int i = 0;  //! ←中括弧{}で囲んだスコープでのみ有効
    ....
  }

  • 配列の宣言は型のほうに次元をつける

誤)int card;
正)int
card;

  • メソッド名は小文字、一文字大文字接続

誤)public boolean judgevanish()
正)public boolean judgeVanish()

誤)i=3*N+2;
正)i = 3 * N + 2;

  • 括弧のスタイルは、短いものを採用

誤)
if(htcd[i][j]<=0)
{
  viscd[i][j]=NoCd;
  htcd[i][j]=0;
}
else
{
  viscd[i][j]=card[i][j][htcd[i][j]-1];
}
正)
if (htcd[i][j] <= 0) {
  viscd[i][j] = NoCd;
  htcd[i][j] = 0;
} else {
  viscd[i][j] = card[i][j][htcd[i][j] - 1];
}

誤)
private int nextcard() {
  return (int)(Math.random()*((double)MaxN+1.0))+MinN;
}
正)
private static int nextCard() {
  return (int)(Math.random() * ((double)MAX_N + 1.0)) + MAX_N;
}

  • 変数は使うところで宣言する

誤)
  for(i=0;i

  • if / for 以降が単行の場合でも中括弧をつけるように心がける
  • switch構文のcase文の中は中括弧をつける

誤)
  switch (value) {
    case 0:
      a = "0";
      break;
    case 1:
    case 2:
      a = "1";
      break;
    default:
      a = "2";
      break;
  }
正)
  switch (value) {
    case 0: {
      a = "0";
      break;
    }
    case 1:
    case 2: {
      a = "1";
      break;
    }
    default: {
      a = "2";
      break;
    }
  }

  • 行末では改行する

誤)}[EOF]
正)}
  [EOF]

  • 16進数は大文字で記述する

定数だし

間違ってたら、指摘お願いします!