はじめに
この投稿はZOZO アドベントカレンダー2022 #2 16日目の記事になります。
マクベス症候群とは
血の流れにここまで踏み込めば、渡り切ることだ、行くも帰るも困難なら、もどることは思いきるのだ。(マクベス第三幕第四場)
ということです。。。
つまり、リファクタリング時、リファクタリングをしすぎて、逆に複雑になってしまうケース。
複雑になって元に戻すこともできず、気が済むまでリファクタリングをしていってもさらに複雑になってしまう。。。
経験ないでしょうか?
マクベス症候群という言葉は書籍「レガシーソフトウェア改善ガイド」で紹介されています。
予防策
ではマクベス症候群を防ぐにはどうすればいいか?
リファクタリングを、他の作業から分離する
リファクタリングをするときに、何かの作業のついでに。というのは正解です。
ただ、リファクタリングする時間と、実作業をする時間、コミット、PRなどは分けたほうがいいです。
リファクタリングに失敗した場合、作業を戻したい場合にこのやり方は有効ですし、リファクタリングという行為は元の処理は変えずにソースコードをきれいにする行為なので、分けたほうが良いというのもあります。
ちなみにリファクタリングだけをずっと行うことはあまり心象が良くない可能性がありますので注意です。
アプリケーションの進化が止まっている状況であるためです。
IDEを活用する
IntelliJなどのIDEが用意しているリファクタリングの機能は優秀で役に立ちます。
ガンガン使っていけると良いですね。
まとめ
マクベス症候群は用語はあまり聞かないですが、リファクタリングあるあるでしょう。
気をつけていきましょう!