リファクタリングとは?
ソフトウェアの外部の振る舞いを保ったまま内部の処理を短く、誰がみてもわかりやすく変更していくこと。
なんでリファクタリングが必要なのか?
⇨開発効率が上がる(バグ修正しやすい、追加開発しやすい).
追加開発=機能を追加していく.
リファクタリングが必要な背景.
サービスをリリースする際最初は「最小限の機能」しか持っていないアプリをリリースしその後新しい機能を追加開発してよりユーザーさんに満足していただこうとする.
そうなると新しい機能を追加する際には「今までのコードを再び理解する必要」がある.なぜなら重複したコードをさらに生まないためやバグを発生させないため、このときリファクタリング(わかりやすく、短く)していないと今までのコードの理解に時間がかかり追加開発する効率を落とす。
例文 ここに最小限の機能を持ったアプリ(リファクタリングなし)があるとします。このコードに新しくメソッドを追加し新機能を作成するとします。
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
現状のコードの理解が早くすぐに新機能の開発ができる。