パターン指向リファクタリング入門

パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法

パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法

この本は素晴らしいと思います。オブジェクト指向言語で開発している方に強くお勧めします。

この本を理解するためには,GoFデザインパターンの基本?を理解している必要があります。また,ファウラー著「リファクタリング」を事前に読んでおくとベターです。リファクタリングのステップの説明において頻繁にファウラー著「リファクタリング」を参照するからです。ただ、必ずしも事前に読んでおかなくても何とかなるかもしれません。参照されている各リファクタリングには分かりやすい名前(「メソッドの抽出」とか)が付いているので、ある程度経験のあるプログラマであれば大体想像できると思いますので。

この本では,GoFパターンに近づくようなリファクタリングテクニックをカタログ形式で説明しています(中にはパターンに離れるようなリファクタリングを含む)。

私が思うに、この本でリファクタリングテクニックを学ぶというよりは,デザインパターンの本質を理解できるのではないでしょうか。

デザインパターンの本はいくつかありますが,基本的にパターンそのものを説明していて,どんなときにどう使うかはあまりうまく書かれていないような気がします。中にはオライリー「Head Firstデザインパターン」のように,パターンに行くまでの過程をわかりやすく説明している本もあります。聞くところによると「独習デザインパターン」もそうらしいです。

そしてこの本は,問題のあるコードを,その問題を解決するためにパターンにもっていく過程がリファクタリングとして具体的にステップを追って説明されています。ですから,デザインパターンの本質が理解できます。

ちなみに,どんなコードがリファクタリングの対象になるのか,見極めるところが一番難しくて,それにはたくさんの経験/訓練が必要だなと思いました。