Javaの机上チェックリスト

レビュー前に机上チェックするときのメモ。

観点 結果(○か×) 備考
全体
設計内容が漏れなく反映されている事
設計内容で更新された部分(QA内容など)を反映している事
コードなどが定義されている場合にその内容が反映されている事
条件式判定結果に対するmethod内のルートが正しい事
正常系におけるメソッド内の処理フローが正しい事
異常系におけるメソッド内の処理フローが正しい事
クラス・メソッド
クラス、メソッドの修飾子(スコープやstaticなど)が妥当である事
Synchronizedを使用していない事
明確な理由なくオーバーライドしていない事
変数・定数
使用されるクラスだけインポート宣言されている事(*はダメ)
final定義できる部分は可能な限りfinal定義している事
変数のスコープが妥当である事
大き過ぎるローカル変数を定義していない事
演算結果を格納する変数の場合、充分な精度を持っている事
領域をオーバする可能性があるデータに対するガードがなされている事
変数が正しく初期化されている事(特に配列の添え字等に注意する)
要素数が明確なものは配列を使用しArrayListやVectorは極力使用していない事
コレクションを利用する場合は初期サイズを指定している事
余計なインスタンス生成(new)を実装していない事
正しい定数を利用している事
演算
代入演算で桁あふれが発生しない事
演算順序が目的通りである事(演算子の優先順位に注意する事)
ゼロ除算の可能性がない事
条件分岐
if文の条件式、及びその動作が正しい事(nullで落ちたりしないように)
必要なelse文が存在し、その動作が正しい事(ケース漏れがないように)
switch文の条件式が正しい事
case式に過不足がなく、case毎の動作が正しい事
default文が存在し、及びその動作が正しい事
switch文中に必要であるbreak文が記述されている事
ループ
ループ条件が妥当であり、無限ループに陥る可能性が排除されている事
ループからのbreak条件が正しく動作する事
ループ内の処理は最小限にしている事(可能な限り不変式はループ外に出す)
カウンタの初期化が行われており、その値が妥当である事
カウンタのインクリメント・デクリメント条件が正しい事
同一のカウンタを複数の用途に用いていない事(混乱を防ぐ)
カウンタの上限値、下限値での動作が正しい事(特に0件データとMAXは考慮する)
処理内容
バッファつきの入出力を使用している事
文字列連結時に原則としてStringBufferを使用している事
入力パラメータについてのチェックが正しい事
上位メソッドへの返却値が正しい事
呼び出したメソッドの返却値による、自メソッド内の処理が正しい事
指定する文字コードが正しい事
共通の処理があるのに独自に作成していない事
冗長ステップがない事
ソート処理やアボート処理につい
ては、規定された関数が利用されている事
システムリソースを使用するオブジェクトは明示的にcloseしている事
例外処理
例外をキャッチしていること
不必要な例外をスルーしていないこと
例外生成時に例外の発生情報をデバッグログに出力している事
メソッド開始時、終了時にデバッグログを出力している事
コーディング規約
字下げが正しく行われている事
コメントの記述が規約通りに正しく行われている事
変数名の付与が規約通りに正しく行われている事
条件式などで括弧による優先順位の明示化が行われている事
コーディング規約に沿っている事
英単語のスペルミスがない事