1. 概要(Overview)
Rename Method は、名前が曖昧または誤解を招くメソッドを、
意図や役割が明確に伝わる名前 に変更するリファクタリングです。
プログラムを理解するうえで「名前」は非常に重要な情報源です。
もし名前が分かりにくいと、呼び出し側のコードの可読性や理解速度が下がります。
目的は以下の通りです:
- メソッドの役割を正しく伝える
- 呼び出し側コードの可読性を改善する
- 誤用やバグを防ぐ
2. 適用シーン(When to Use)
- メソッド名が抽象的すぎる(例:
doProcess()、handle()など) - 名前と実際の動作が一致していない
- API 利用者が使うときに「このメソッドは何をするのか?」が分かりにくい
- 長いコメントを書かないとメソッドの意図が伝わらない
よくある匂い:
- Comments(コメント依存:名前だけで意図が分からない)
- Inconsistent Naming(一貫性のない名前付け)
3. 手順(Mechanics / Steps)
- 名前が適切でないメソッドを特定する
- より具体的で分かりやすい名前を考える(ドメインに沿った名前)
- IDE やリファクタリングツールでメソッドをリネーム(呼び出し側も一括更新)
- テストを実行して影響範囲を確認
- コメントやドキュメントも合わせて更新する
4. Kotlin 例(Before → After)
Before:曖昧な名前のメソッド
class Order(val items: List<String>) {
fun process() {
println("Processing order: $items")
}
}
fun main() {
val order = Order(listOf("Apple", "Banana"))
order.process() // 何を「処理」しているのか分かりにくい
}
After:意図が明確な名前に変更
class Order(val items: List<String>) {
fun printReceipt() {
println("Receipt: $items")
}
}
fun main() {
val order = Order(listOf("Apple", "Banana"))
order.printReceipt() // 目的が明確で理解しやすい
}
5. 効果(Benefits)
- 呼び出し側からメソッドの意図が一目で分かる
- コメントに頼らず「名前だけで動作を理解できる」ようになる
- API 利用者の誤用が減る
- 長期的に保守しやすくなる
6. 注意点(Pitfalls)
- プロジェクト全体で名前の一貫性を保つことが重要
- 名前を変えると既存利用コードに影響する → IDE のリファクタリング機能で安全に変更すべき
- あまりに長すぎる名前にすると逆に可読性が下がる(
getCustomerOrderHistoryWithDiscountAppliedIfAvailable()のようなケース)
まとめ
- Rename Method は「メソッド名を分かりやすく変更する」リファクタリング
- 判断基準:その名前を見ただけでメソッドの意図が理解できるか?
- 基本思想:名前は最も強力なドキュメントである