参考: http://qiita.com/moaible/items/134329123074337913fb
単語 | 意味 |
---|---|
丸括弧 | () |
角括弧 | [] |
波括弧 | {} |
山括弧 | <> |
キャメルケース | cordingGuideLine |
パスカルケース | CordingGuideLine |
スネークケース | cording_guide_line |
チェインケース | coding-guide-line |
Javaコーディング標準: http://objectclub.jp/community/codingstandard/CodingStd.pdf
- ファイル名 パブリックなクラス名はファイル名と同じ
- クラス名 先頭大文字、区切りを大文字
- 定数
大文字を _ でつないだもの
UPPER_CASE_WITH_UNDERSCORES
- メソッド名 最初大文字、あとは区切りを大文字 hogeMogeFuga
- 属性取得メソッド
- X()
- getX()
- isEnabled()
- 属性設定メソッド
- void setX(X value)
- boolean変数を返すメソッド[is+形容詞, can+動詞, has+過去分詞, 三単現動詞+名詞]
- boolean isEmpty()
- ✗ boolean empty() //空にするという意味に間違う
- boolean canGet()
- boolean hasChanged()
- boolean contains(Object)
- boolean containsKey(Key) 理由としては、if,whileに使うときに条件がわかりやすいから。trueを返すのがどちらなのか、見て分かる。
- 名前の対称性
- add/remove
- get/set, release
- ループカウンタ スコープが狭いカウンタ、イテレータにはi,j,kをこの順番で使う。
- スコープが狭い名前は型名を略したものでOK
- HogeMogeFuga HMF = なんちゃら()
- 意味が取れる名前 変数名から役割が読み取れる名前を使おう。
- 無意味な名前を避ける tmp, data, info, str, buf などなど…。
- 大文字小文字 大文字、小文字でプログラムは区別されるが、それのみで区別される名前は使わない。
-
ファイル先頭のコピーライトは /* で始まるコメントとする。
-
package の次の行はあける
-
クラス定義の直前にクラスに関する**/****から始まるコメント
- authorは必ず入れる。
-
クラス定義やメソッド定義の{の前の改行は入れない
public class hoge
みたいな感じ -
if とか while とかの後の()の前後にはスペースを入れる
if (hoge == 0) {
みたいな -
字下げはタブ1つorスペース4つ
-
80桁以上の行は適当な場所で改行
-
import はなるべく * を使わない。3つ以上なら * を使う。
-
インスタンス変数は極力publicを使わない。
-
初期化をあてにしない。
-
配列宣言は
Type[] arrayName
とせよ。 Type arrayName[] はただのCの名残で推奨されない。 -
便宜を考えたつもりでの return this はしない。エラーの元。
-
引数のタイプによるメソッドのオーバーロードはなるべく避ける 引数の数が異なるものはOK
-
可能なら、常にデフォルトコンストラクタを用意する。
-
ローカル変数は初期化と共に宣言せよ。 プログラム中のへんなところで変数をぼこぼこ宣言するとわかりにくくなる
-
ローカル変数の再利用は悪。 悪い例
int i;
for (i=0; i<HOGE; i++) {...}
for (i=5; i>0; i--) {...}
いい例
for (int i=0; i<HOGE; i++) {...}
for (int i=5; i>0; i--) {...}
- if, while の条件中の "=" はだめ バグのもと。さらにエラーが出ないからわかりにくい。
- 大小比較は "<", "<=" を好んで使う。 "<", "<="を常に使い、右側を大きいほうにすることで混乱を避ける。
- メソッド内部で引数の状態を変更するメソッドを呼ばない。
- メソッド引数の名前 thisを活用してint _x みたいなことは避けよう。 悪い例
void reset(int x_, int y_) {
x = x_;
y = y_;
}
良い例
void reset(int x, int y) { // x_とかy_とかは使わない。
this.x = x;
thix.y = y;
}
- toString()はできるだけ実装する。 println(Object) でプリントできると便利
-
コメントの種類にきをつける。
/** コメント */
コメントを活用する。- /** ... */ javadocコメント。html形式でドキュメント出力される
- /* */ 通常のコメント、内部でき
- // 通常のコメント、内部的
- publicクラス、メソッド、フィールドには必ず
/** */
コメントをつける。
-
javadocタグ
- /** */ コメント内では、@ から始まるキーワード(javadocタグ)
- @author author-name
- @param paramName description
/**
*/@param n 要素サイズ(確保するメモリサイズを指定)
- @return description of return valuse
- @exception exceptionName description
- @see string
- @see URL
- @see classname#methodname
-
1行コメントは /* */ よりも //
-
トリッキーなコードは悪。 カッコ()を使ってわかりやすくしようね〜
-
ここに書かれたコーディング規則が100%正しいわけじゃない。理由によってはルールから外れる事が正しいこともある。理由があるなら考えて相談しよう。