「反面教師」という言葉を聞いたことがあると思います。悪い見本を見せて、良い行いをしてもらおうというものです。本書はサーバーサイドJavaプログラミングにおける、「反面教師」です。
この本の対象読者はJavaプログラミング中級者からアーキテクト担当、システム設計者などです。Javaプログラミングを始めて間もない人や、サーバーサイドプログラミングを始めて行う人には読みこなすのは困難です。
アンチパターンの名のとおり、悪いパターンの例をカタログにまとめ、それについてどの点が悪いのかを説明し、アンチパターンにおちいる原因とアンチパターンを適用した場合の結果について載せてあります。
当然、改善例も載っているので、自分の設計したシステムやアーキテクチャがアンチパターンにはまっている場合の手助けになります。
本書で扱っているアンチパターンのカテゴリは、サーブレット、JSP、キャッシュ、メモリー、接続リソース、Bean(EJB)、コーディング習慣、スケーラビリティです。それぞれについて、悪い点、パターンの原因、結果、解決策、リファクタリングの5つが載っています。
本書から、ひとつ例を簡単に説明します。
アンチパターン:Monolithic JSPs
モデルとビューの分離(MVC)がないプログラムですべてのコードをJSPに書いている。メソッドやクラスの定義、コントローラ、JSPを分けてソースコードを書くよりも、JSPにすべて書いたほうが早く簡単にできる。しかし、これでは保守性が著しく下がってしまう。
解決策:リファクタリングして、MVCにする
- コントローラオブジェクトを作る。
- 動的コンテンツを作る重要な領域を特定し、コマンドにする。
- JSPでは、コマンドごとにBeanを作る。
- モデルの更新や初期化を行うコアロジックを特定し、クラス化する。
- コントローラでコマンドを初期化し、コマンドを実行する。
- コマンドからのレスポンスをJSPに転送し、画面を表示する。
上記は、非常に簡単に要約しました。実際はそれぞれのカテゴリごとに3〜4のアンチパターンを紹介し、補足説明、アンチパターンの背景などを織り交ぜながら説明しています。
本書の特徴は、アンチパターンをカテゴリにわけ、必要なときに参照しやすくした点にあります。納得できる部分が多く、実際の開発においても気をつける点がよくわかりました。本文もわかりやすく、図やサンプルコードが豊富に載っているので明快です。サーバーサイドプログラマーにおすすめです。
- デザインパターンはアンチパターンの正常版です。こちらの本がおすすめです。
- MVC(Model-View-Controller)アーキテクチャに興味がある人はこちら。
- 関連商品を買いませんか?
- EJB アンチパターンに関してはこちら
- J2EE アンチパターンに関してはこちら