改めて、リファクタリングとは?

移転しました。

その前に、振る舞いとは?

ソフトウェアで最も大切なのは「振る舞い」であり、振る舞いこそがユーザーの求めるものである。期待される振る舞いを私たちが追加すればユーザーが喜ぶが、ユーザーの求める振る舞いを変更、あるいは削除してしまえば、バグの作り込みとなり、私たちへの信頼は失われてしまう。
レガシーコード改善ガイドp.4

リファクタリング(refactoring)とは?

外部から見たプログラムの振る舞いを変えずに、プログラム内部の構造を改善すること

リファクタリングの目的

バグを見つけやすくする

プログラムが整理され、潜んでいるバグが見つけやすくなる。

機能追加しやすくする

機能追加を重ねると、ソースコードは複雑になっていく。その複雑になったソースコードに対しての機能追加は、さらに難しくなり、余計な時間がかかるようになる。
リファクタリングによって、構造が崩れかかったコードを整え、きれいにすることで、機能追加を楽に行えるようになる。

リファクタリングのエッセンス

ステップ・バイ・ステップ(1度に1つずつ)

  • 2つの修正を一度に行わない
  • 後戻りしやすいように
  • ステップごとの確認
  • 古いものから新しいものに変えていく