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