Step 7:セルフチェック
コードレビューを依頼する前に、自分でチェックできることは自分でチェックします。これにより、レビュアーの負担を減らし、指摘される回数を減らせます。
なぜセルフチェックが重要なのか
初心者あるある:「とりあえずレビュー出したら、たくさん指摘された...」
セルフチェックを怠ると以下の問題が生じます:
- レビュアーの時間を奪う:簡単なミスの指摘に時間を取られる
- 信頼を失う:「この人はチェックしないで出してくる」と思われる
- やり取りが増える:指摘→修正→再レビューの往復が増える
セルフチェックをすると:
- レビュアーが本質的な指摘に集中できる
- 「ちゃんと確認してから出している」と信頼される
- レビューの往復が減り、早くマージできる
セルフチェックの6つの観点
観点1:仕様との整合性
チェック内容:仕様通りに実装できているか
やり方:
- 設計書・仕様書を開く
- 仕様の各項目を1つずつ確認
- 「この仕様は、このコードで実現している」と対応づける
観点2:コードの品質
チェック内容:読みやすく、保守しやすいコードか
観点3:既存コードとの整合性
チェック内容:プロジェクトのルールに従っているか
観点4:エラー処理
チェック内容:異常系が適切に処理されているか
観点5:セキュリティ
チェック内容:セキュリティ上の問題がないか
観点6:パフォーマンス
チェック内容:明らかなパフォーマンス問題がないか
セルフチェックの4つの実践方法
方法1:差分を見直す
# コミット前に差分を確認
git diff
# ステージング済みの差分を確認
git diff --staged
ポイント:
- 追加・変更した行を1行ずつ確認
- 「なぜこの変更が必要か」を説明できるか
方法2:時間を置いてから見直す
プロセス:書いた直後 → 休憩 → 見直す
理由:
- 書いた直後は「正しいはず」というバイアスがかかる
- 時間を置くと客観的に見られる
- 別の視点で見返せる
方法3:音読する
やり方:コードを声に出して読む
効果:
- 変数名の意味が分かるか確認できる
- 処理の流れを追いやすい
- 違和感に気づきやすい
方法4:チェックリストを使う
やり方:毎回同じチェックリストを使う
効果:
- 確認漏れを防げる
- チェック品質が安定する
- 慣れてくると自然にできるようになる
セルフチェックリスト(テンプレート)
レビュー依頼前に、以下を確認しましょう。
基本
仕様
コード品質
既存コードとの整合性
エラー処理
セキュリティ
テスト
よくある指摘とその防ぎ方
指摘1:「デバッグコードが残っている」
// ❌ レビューで指摘される
System.out.println("debug: " + value); // 消し忘れ
logger.debug("TODO: あとで消す"); // 消し忘れ
セルフチェックで削除:
- 「System.out」「TODO」「FIXME」で検索
指摘2:「コメントアウトが残っている」
// ❌ レビューで指摘される
// int oldValue = calculate(); // 旧実装
int newValue = calculateNew();
セルフチェックで削除:
- 不要なコメントアウトは削除
- 必要ならコミット履歴で追える
指摘3:「命名が分かりにくい」
// ❌ レビューで指摘される
int d = 30;
String s = getData();
セルフチェックで改善:
// ✅ 改善後
int expirationDays = 30;
String customerName = getData();
指摘4:「フォーマットが統一されていない」
// ❌ レビューで指摘される
if(condition){ // 既存: if (condition) {
doSomething(); // インデントなし
}
セルフチェックで修正:
- IDEの自動フォーマットを使う
- 既存コードと比較する
指摘5:「nullチェックがない」
// ❌ レビューで指摘される
order.getItems().size(); // orderやitemsがnullの可能性
セルフチェックで追加:
// ✅ 改善後
if (order != null && order.getItems() != null) {
order.getItems().size();
}
セルフチェックにかける時間の目安
実装時間に対する目安:
- 実装 1時間 → セルフチェック 10〜15分
- 実装 1日 → セルフチェック 30分〜1時間
ポイント:
- 時間をかけすぎない(完璧を目指さない)
- 基本的なチェックは必ず行う
- 慣れてくると短時間で済む
次のステップ
セルフチェックが完了したら、コードレビューを依頼します。