Java,特にStrutsなどでシステムを構築する際のCoding規約(草案)
Java,特にStrutsなどでシステムを構築する際のCoding 規約(草案---ていうか考え中・・・)
命名法
クラス
- クラス名は全て英語でつける(辞書を調べてでも役割を正確にわかるようなものにする)
- クラス名の最初、及び単語の最初は大文字にする
- クラス名は基本的に英語の名詞を使用する(ex. FileUploader.java)
- 入力する面倒を怖がらず、意味がはっきりする程度の長さで命名する
- StrutsのActionクラスは常に、Actionで終わらせる(反対にそうでない場合はこの名前を使用しない)
- StrutsのActionFormクラスは、ActionFormで終わらせる(反対にそうでない場合はこの名前を使用しない)
メソッド
- メソッド名も全て英語でつける(辞書を調べてでも役割を正確にわかるようなものにする)
- メソッド名の最初は小文字ではじめ、単語区切りを大文字にする
- メソッド名は英語の動詞を使用する(ex. createUser())
- getter,setterはget,setで始める(ex. getUser()),ただしbooleanを返す場合は、is,can,has,existsなどを使う(ex. hasExpired)
- ファクトリーメソッドはcreateで始める
- その他は今後走りながら決めていく
変数
- 変数名も全て英語でつける(辞書を調べてでも役割を正確にわかるようなものにする)
- 変数名の最初は小文字ではじめ、単語区切りを大文字にする
- スコープの極めて狭いものを除いて、それが何に使われている変数なのかがわかる名前にする(ex. str1などは避ける)
- スコープの狭いものは、短くて、しかし多少の意味のあるものを使う。ただしfor文などでは、慣例に従い、i,j,kなどを利用する
パッケージ名
メトリックス(X-media javaルールブックス参考)
- 1メソッドの行数はコメントも含めて20行以下、長くても150行程度
- 1クラスの行数はコメントも含めて600行以下、長くても1000行程度
- 1クラス内の「public」メソッドは30個以内
- 1パッケージ内のクラス数は10個以下
- 上記に当てはまらないような場合は、分割を考える
フォーマット
- 1行は80文字までにする(eclipseでフォーマットすればOK、その他も同様)
- 1行に2つ以上のステートメントは書かない
- カンマの後には空白を入れる
- for文の後のセミコロンの後にも空白を入れる
- 算術演算子の前後にも空白を入れる
- 代入演算子の前後にも空白を入れる
- ++などのオペラントに間には空白を入れない
- 関係演算子の前後にも空白を入れる
- 論理演算子の前後にも空白を入れる
- return文には不必要なカッコを入れない
- 不等号の向きは「<」「<=」に統一する
- boolean変数は==で比較しない
- コメントは必要なものだけを簡潔に
- フィールドを宣言する順序はpublic,protected,privateの順
- デフォルトコンストラクタは原則作成(beanなどには必ずimplements Serializableする)
Struts特有
- StrutsのActionクラスには、基本的にビジネスロジックは書かない。
- struts-config.xmlのアクションは小文字に統一する