パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法 の書評です。
結論から言うと、デザインパターンとリファクタリング、そしてテスト駆動開発を複合的に学習でき、それぞれの理解の相乗効果が得られる応用本です。
■ 良い点
・ デザインパターンとリファクタリングを複合的に学習できる
・ パターンとリファクタリングの相乗効果により理解が深まる
・ 翻訳書としては、文章が明快で読みやすい
・ クラス図が理解を助ける
・ サンプルのコード例によりJavaの勉強にもなる
■ 悪い点
・ 修正前・途中経過だけでなく、修正後のコードが欲しい
・ コード例が若干、難しい
・ 所々でわかりにくくなる箇所がある
■ 総評
「パターン指向リファクタリング入門」というタイトル通り、デザインパターンとリファクタリングを複合的に解説した書籍です。リファクタリングには、テストが必須であることから、ユニットテストにも触れられていて、テスト駆動開発の理解も深まります。
逆に言えば、本書を読みこなすには、「デザインパターン」と「リファクタリング」、そして「テスト駆動開発」の知識が前提として必要とも言えます。
形式的には、27個のリファクタリングが取り上げられており、各10~20ページほどを要します。コード例は、5~6個ほどのサンプルを使いまわしており、本書で指定される順序で読み進めると効率よく学習できます。なお、扱われているデザインパターンは、13個ほどです。
各節の最初にある、「要約」と「クラス図」、そして「動機」のセクションを読むと、各リファクタリングの内容がわかるようになっています。そして、「手順」と「コード例」を相互参照しながら読み進めると、理解が深まり学習効果が高まります。
サンプルのコード例は、欧米文化的なものなので、最初は取っ付きにくく、しんどいですが、使いまわしのためJavaの学習と割り切って取り組むと実力がつくと思います。
全体を通して、パターンを採用する際に、メリットとデメリットを比較衡量するので、トレードオフの感覚が掴めることが役に立ちます。また、Compositeパターン等の重要なパターンが複数回取り上げられるので、重要パターンの理解が深まります。ちなみに、Interpreterパターンの使いどころが、本書の解説を読みやっと理解ができました。
デザインパターンを使って、より良いコーディングがしたいというプログラマにお勧めの一冊です。