パターン指向リファクタリング:メソッドの構造化

Composed Method。結構、重要なリファクタリングだと思う。

使いタイミング

  • メソッドのロジックをすぐに理解できないとき

注意

  • 分割してみて、メソッド名がうまく就けれらないとき
    • メソッドのインライン化
    • 元に戻して、別の分割法で
  • プライベートメソッドがたくさんできることは性能上そんなに問題がない
  • あまりに多いときはクラスの抽出

欠点

ポイント

  • 何を行うか>メソッド名から伝わる
  • どのように>呼び出し元から伝わる

これらのため、すばやくコードを理解できる


手順

  • 小さくする
    • 10行以上のコードはない
    • 5行程度
  • 重複、未使用を削除
  • 意図が伝わるようにする
    • 変数、メソッド名
  • シンプル
    • 自分のコーディング方法を疑う
  • 詳細レベルをそろえる


ガード節

  • 前提条件
  • 条件を満たさない場合はメソッドをすぐに脱出
  • Smalltalkのベストプラクティスの一つ

この前のコードインスペクションで間違ったこといったかも・・・