ume

Ruby リファクタリングの概要

リファクタリングとは?

ソフトウェアの外部の振る舞いを保ったまま内部の処理を短く、誰がみてもわかりやすく変更していくこと。

なんでリファクタリングが必要なのか?

⇨開発効率が上がる(バグ修正しやすい、追加開発しやすい).
追加開発=機能を追加していく.

リファクタリングが必要な背景.
サービスをリリースする際最初は「最小限の機能」しか持っていないアプリをリリースしその後新しい機能を追加開発してよりユーザーさんに満足していただこうとする.
そうなると新しい機能を追加する際には「今までのコードを再び理解する必要」がある.なぜなら重複したコードをさらに生まないためやバグを発生させないため、このときリファクタリング(わかりやすく、短く)していないと今までのコードの理解に時間がかかり追加開発する効率を落とす。

例文 ここに最小限の機能を持ったアプリ(リファクタリングなし)があるとします。このコードに新しくメソッドを追加し新機能を作成するとします。

def spaghetti_code_example
  if condition1
    if condition2
      if condition3
        # ネストが深くなり、理解が難しい
        do_something
      else
        # このブロックがどの条件にマッチするかわかりにくい
        do_another_thing
      end
    else
      # ...
    end
  else
    # ...
  end
end

おそらく大抵の人が「1つ目のifの条件分岐がfalseに入った場合どの処理が実行されるんだろう」など理解に時間がかかったと思います.
しかしこのよう↓にリファクタリングされていると

def spaghetti_code_example
  return unless condition1 && condition2 && condition3

  # 条件がすべて満たされた場合の処理
  do_something
end

現状のコードの理解が早くすぐに新機能の開発ができる。

参考情報

www.youtube.com