はじめに
このエントリは、初挑戦カレンダー Advent Calendar 2025 の 16日目記事です。
https://qiita.com/advent-calendar/2025/silvia
今年、Twitterで何か主張したかったことを拾いながら記事を書いていきます。
だんだん投稿ペースが落ちてきました。こうなりそうな気はしていましたが、気合でがんばります。
本文
私はリファクタリングをするのが好きだ。
長くコードを書いていると、こうした方が効率いいな、ここはもっと読みやすくした方がいいな、このクラスはここじゃなくて別の場所にあるべきだな、など改善点が後から後から出て来る。
これらを全部やっていると流石に仕事にならないので、影響が小さいものは多少取り込んだりするものの、大きいものに関しては諦める事も多い。
リファクタリングというのは終わりがないもので、一旦大体片付いたとしても、新しい機能がちょっと増えるだけで、そこはそうじゃなかったなとか、この機能があるならあの機能の事も考えてこういう処理にしておくべきだなとか、どんどんタスクが増える。
この増え方は、開発速度優先で適当にコードを書いた後の技術的負債回収のコストと遜色ないのではないかと思ってしまうほどだ。
そして機能自体は変わらないため、大抵の場合はあまり意味がない。
ではリファクタリングには大した価値がないのかというと、全くそんな事はない。
コードメンテナンスがしやすくなったり、後々の拡張が少し簡単になる、設計する事が多少減るなど、プロジェクト的に良い面もある。
もう一つ、私はこちらの方が重要だと思っているのだが、技術力が上がる。
コードがどうあるべきかという、これまで先人によって磨かれてきたノウハウを持って書いたコードを見てみると、どうしてかそうなっていない事は多く、じゃあこれをそうするにはどうしたらいいのか?という視点でコードをこねくり回しているうちに、なるほどそういうものなのかという気付きを得る事は多い。
これが次の開発に生かされる事によって、だんだん自身の技術力が磨かれていくのだ。
ただ前述した通り、全部やっているとプロジェクトが破綻するため、引き際を見極めよう。
どこかにリファクタリングだけを半年やってていいプロジェクトありませんか?