どんなに英語が苦手でも原書を入手すべき
★☆☆☆☆
とにかく訳が良くないです。
パターン名だけでも、軽オフラインロック(Optimistic Offline Lock)、重オフラインロック(Pessimistic Offline Lock)、緩ロック(Coarse-Grained Lock)等、原文の意味が全く伝わってきません。極めつけは、データ変換オブジェクト(Data Transfer Object)、どうして「変換」なのか全く理解できません。
もちろん文章も意味が通らない訳が散見されるため、どんなに読み込んでもとても理解できるとは思えません。
しかし、原書は間違いなく良書なので、原書を購入することをお勧めします。
.NETについての考察は不要
★★★★☆
今後主流であろうと言うことを前提に、サンプルコードはJAVAとC#が併用されていますが、C#は不要だと思いました。.NET2.0時点がまだ成熟していない。特にORマッピングについては、
ADO.NETにおそらくEJBライクなORマッピング機構が組みこまれると思うので(私見です)行データゲートウェイやアクティブレコードなどは少しおまけ的な存在に思えた。
参考になるソースコードが豊富です。深みのある本なので繰り返し読んでいきたいです。
この本の読み方
★★★★★
本書は2部構成となっており、前段が概論で後段は50件にも及ぶパターンのカタログとなっている。まず第1部の概論をじっくり読みながら、文脈に登場するパターン(ゴシック表記してある)について第2部の記述を確認し、第1部に戻ってさらに読み進むというのがよい。カタログだけを一気に読み下しても、どういう文脈でどんな得失があるかの論点がつかめなくなる。
プログラミング経験がメインフレーム系や制御系しかないという人たちにも、自分たちのソフトウェア構造ではどのパターンの組み合わせになっているかが見えてくる。Visual Basic環境でSQLサーバなどから得たレコードセットを中心にプログラムしている人や、WebアプリケーションをPerlで書いている人たちも同様である。もちろんJ2EEやXML Webサービス環境にある人たちにも、分散オブジェクトの使い方やO/Rマッピングについて、いくつかのパターンから有効な示唆が得られるだろう。各々の開発環境におけるソフトウェア構成を捨てることはできないにしても、それにはどういう面では強みがあり、どういう弱みがあるかは本書により確認できる。
概論の中では、トランザクションの特性についてとデータの並列操作についての話題もきちんと説明されているので、プログラミング初心者や、これまであまりそうしたことに注意を払わなくてすんでいたプログラマにとっても、大いに参考になる。
メインフレーム系や制御系にいる人たちは、クラス図およびシーケンス図の意味や、リレーショナルDBにおけるテーブル間の関係については、きちんと理解しておかないと何がありがたいのか解らないかも知れない。そういう方たちには、これを機会にオブジェクト指向やデータ中心アプローチの入門書(初心者向けという意味ではない。プロフェッショナル向けに、記法とか文法とか細かいところにあまりこだわらず「何に着目するのか、何故そうするのか」について簡潔に書かれたもの)を読むことをお奨めする。
原書を読むべきだった。。。
★★★★☆
先ずはタイトルどおりの感想を強く持ちました。
内容は文句無しにすばらしく、読んで損はない本だと思います。しかし日本語を理解するのに多大な労力をするので、それなら原書を読むべきだったと後悔するかもしれません。これが原書で読んでいたら文句無しに星5つだったと思います。
内容的に目新しいことがあるわけではく、経験を積んだエンジニアなら誰もが悩み経験してきたケースに対するベストプラクティスを形式知にしたカタログだと思います。
なので、読んでいくと昔悩んだことがパターンとして切り出されていて、それを見ると”うむうむやっぱりそうなるよねー”と自分の過去の設計を振り返ったり、新たな発見があったりと読んでいて楽しかったです。
またこの本は、若手のエンジニアに一番に読んでもらって、まずはパターンのボキャブラリを増やしてほしいのですが、ある意味あたりまえのことのカタログなので経験がないとその価値に気づかないことや、日本語訳の文面を別の意味で取ってしまう恐れがある気がします。それでもこの本は新人・若手に是非読んでもらいたいお勧めの一冊だと思います。
訳さえまとなら…
★★★☆☆
内容だけであれば星4~5です。
決して目新しいことが書いてあるわけではありませんが、知識の整理や体系付けには最適です。業務経験者であれば少なくともこの中のパターンのいくつかは使ったことがあると思いますが、はたして採用したアーキテクトが最適であったか、改めて考えさせられると思います。
この手の本としては仕方ないですが日本語訳は難ありです。多分これを読むぐらいの方なら原文もある程度想像がつくとと思いますが、訳さなくてもよいところまで無理に訳してあったり、機械的に訳してあるだけで、前後の意味がおかしいところがあります。
日本語訳で一通り読んで、原文を手元に置いておくのも手かもしれません。