普段は Rails を書いていますが、リファクタリングっていつやるのがいいのかと言うのを考えていました。
リファクタリング:Rubyエディション
を読んでいていろいろと気づきがあったのでそのまとめです。
リファクタリングとは
ありきたりですが、忘れるので書いておきます。
プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。
いつリファクタリングするのか?
リファクタリングは常にやりつつ開発をしていくというのがよく言われてますが、具体的にいつやっていくのか?がよく分かっていませんでした。
まずは既存のコードを改修、機能追加することを例に考えます。
上記実装を行うとき、実装→テストコード→リファクタリング
といった感じでリファクタリングをすると考えていました。
実際に機能を追加する場合、既存コードの理解から入ります。
リファクタリングはコードを読みやすくすると言うことも含んでいるため、最初の既存コードの理解のときにリファクタリングするのも正しい選択かなと。
なので、 既存コードの理解→リファクタリング→実装→テストコード→リファクタリング
という流れで実装していくといいと考えています。
この方法をやると、最初のリファクタリングでわかりやすいコードになって理解が進み、この時点で Pull Request を出しておくと他の開発者も理解が進みます。
テストコードがある場合は最初のリファクタリングも上手くいくと思うし、テストがなければコード理解も含めてその時に書いてしまえばいい気がします。
まとめ
リファクタリングをやるときは以下のタイミングでやるのが良さそう。
既存コードの理解→リファクタリング→実装→テストコード→リファクタリング