早期リターン+例外処理+テスト設計のベストプラクティス集
ここまでの流れを総まとめとして、実務で「読みやすく」「安全で」「テストしやすい」コードを書くためのベストプラクティスを整理します。
ベストプラクティス一覧
1. 早期リターンで異常系を先に処理
- 入力チェックや業務ロジックの条件不一致は、早期リターンで即終了。
- 正常系を最後にまとめることで「やりたい処理」が目立つ。
if (input == null || input.isEmpty()) return "入力が不正です";
// 正常系処理
Java2. 例外処理は外部要因に限定
- ファイル、DB、ネットワークなど「予測不能な失敗」は try-catch で対応。
- 業務ロジックの分岐には例外を使わない。
try {
db.save(data);
} catch (SQLException e) {
return "DBエラー";
}
Java3. 出口の数を整理
- 短いメソッド → 早期リターンで複数出口でもOK。
- 長いメソッド → 出口を1つにまとめるか、メソッドを分割して責務を整理。
4. 条件をメソッド化して意味を明確に
- 複雑な条件は別メソッドに切り出して「意図が伝わる名前」を付ける。
if (!canAccessAdminPage(user)) return "権限がありません";
private boolean canAccessAdminPage(User user) {
return user != null && user.isActive() && user.hasPermission("ADMIN");
}
Java5. テストケースを意識した設計
- 早期リターン → 異常系のテストが書きやすい。
- 例外処理 → 外部要因をモック化して異常系を再現できる。
- 戻り値やレスポンスを統一して、テストで比較しやすくする。
6. チーム規約に合わせる
- 「出口は1つにする」方針のチームもある。
- プロジェクトのルールに従いつつ、読みやすさを優先。
まとめ
- 早期リターン: 想定内の異常を即終了 → 正常系が見やすい。
- 例外処理: 想定外の異常を安全にキャッチ → 外部要因に強い。
- テスト設計: 異常系と正常系を分けて考えると、テストが明確になる。
- 出口整理+メソッド化: 可読性と保守性を高める。
✅ この組み合わせを意識すると、「読みやすく・安全で・テストしやすい」コードが書けるようになります。
