人生には何度か真剣に「リファクタリング」について考える時期が必ず来ると言われていますが、ちょうどそんな時期だったのですが、タイムリーに『Software Design 8月』がリファクタリング特集だったので買ってきて読みました。
特集の執筆陣を見ていると、先日開催した「設計ナイト 2025」の会場に居たような方々のお名前を見つけてしまい、先に読んでおけば良かった、と少し後悔しました。
さて、肝心のリファクタリング特集ですが、目次から引用すると、こんな感じになっています。
第1章:なぜリファクタリングは議論になるのか? 定義を再確認して考える …… 米久保 剛 第2章:リファクタリングの実施判断力を養う どんなコードに対し、いつ、どのように取り組むか …… 家永 英治 第3章:アンチパターンから学ぶ適切なリファクタリング 破壊せよ!リファクタリングの地雷原 …… ミノ駆動 第4章:プロダクトマネージャー視点で考えるリファクタリング 「価値」から逆算する意思決定と覚悟 …… 及川 卓也
おそらく多くの人のリファクタリングに対する疑問の一つ目は、「ソフトウェアに新しい機能を追加しない営みに価値は有るか?」という話であり、2番目に来るのが「どうやってそれを組織に納得させるか?」であり、3番目は「で、実際に自分たちの目の前にコードに具体的に適用するためにはどうすればいいのか?」ということだと思います。
この特集では、第1章で「リファクタリングという概念を取り巻く環境」が語られ、第2章で「リファクタリングの具体的なプラクティス」が語られ、第3章で「ミノ駆動さんの視点によるアンチパターン」が語られます。
エンジニア視点で言えば、この3つの章をしっかり読み込み、自分の武器とすることがまずは大切です
そして、第4章では少し視点を変えてプロダクトマネージャーからの目線でのリファクタリングについて語られます。
なんというか、豪速球で駆け抜けるようにリファクタリングにまつわる色々な知識が見つけることができるようになっているところが凄いですね...
で、これらを読めばリファクタリングができるようになるか?と言われれば、それはやっぱり自分で手を動かし、プロダクションコードの持つビジネス上の価値を壊さず、向上させていく具体的な営みを積み重ねていかないと実際にはできないわけで、やっていきましょう!となりますね。
所謂エンタープライズアプリケーションの複雑性は、その対象となるドメインの業務の複雑性に直結してるわけですが、業務が複雑で難解であるからこそ「読みやすいコード」「理解しやすいコード」にしていかないと、リリースまでのアジリティが下がってしまうわけですが、その時のテーマはきっとこの特集にかかれていることより、もう一段階先に有るような気もしています。
ただ、それをアーキテクチャの再構築と一律呼ぶのも違う気がしていて、その中間をどうやって表現したらいいかな、とか、その上手く表現できない領域こそ、みんなが困っている「理解しづらいコード」の原因になっているのではないか?と思うのですが、抽象的な話になってきたので、この辺でこの記事はおしまいです。
とにかく、こんな駆け抜けるように必要な知識が身に付く教材はないので、とりあえず読んでおくことをお勧めします。
![Software Design (ソフトウェアデザイン) 2025年8月号 [雑誌] Software Design (ソフトウェアデザイン) 2025年8月号 [雑誌]](https://m.media-amazon.com/images/I/61FxkC0M4SL._SL500_.jpg)