2008年に読んだ書籍(技術系) | Ouobpo

2008年に読んだ書籍(技術系)

 昨年(2008年)に読んだ書籍をふりかえってみたい。まずは技術書から。

『xUnit Test Patterns』(Gerard Meszaros 著)


 本書についてはこのブログでも何度か言及してきたが、きちんと中身を読んだのは実は昨年になってからだった・・・ しかも、800ページを超えているので、「物語(Narratives)」のパートまでしか読めていない。本書を完全に読破した人は、果たして日本に何人いるのだろうか?
 しかし、昨年関わったプロジェクトは素晴らしいことにしっかりと単体テストを書くプロジェクトだったので、本書は非常に役立った。日頃単体テストをしっかりと書いている開発者にとっては、自分のノウハウが世界のデファクトスタンダードに沿っているかどうかを確認するのにとてもいい本だ。TDDerにとってのバイブル。
 ただし、説明が冗長な部分も多く、たかが単体テストでちょっと書きすぎだろうという気がしないでもない。

『Object-Oriented Methods: A Foundation』(James Martin、James Odell 著)


 Martin Fowlerの「ドメインモデル」パターンに関する議論をすると、必ず「真のオブジェクト指向とは何か」「オブジェクト指向パラダイムとは何か」という議論が起こる。従業員オブジェクトに「給与を支払う」メソッドがあっていいのか、というような議論もその1つだ。
 本書の著者の1人OdellがFowlerを執筆の世界に引き込んだことからも分かるように、FowlerとOdellとの親交は深く、Fowlerが念頭に置いている「オブジェクト指向」というのもこのMartin-Odellのオブジェクト指向なのだ。つまり、「ドメインモデル」パターンを真に理解するなら欠かせないのが、この1冊。
 「オブジェクト指向は現実の精緻なシミュレーションをするためでなく、あくまで役に立つシステムをモデル化するためのもの」。だから、現実世界の給与支給の現象をリアルにシミュレートする訳ではないのだから、従業員オブジェクトに「給与を支払う」メソッドがあってもいいのだ。むしろここで大事なのは、高凝集・低結合という設計判断の方なのだ。

『システム基盤の構築ノウハウ』(谷口俊一、石川辰雄、沢井良二、鈴木広司 著)


 「システム基盤」や「システム共通」といったチームで仕事をするエンジニアの必読本と、会社の先輩に勧められたので読んだ本。日本の大手SIerのエンジニアによって書かれたもので、日本のSIの「ステータス・クオ(status quo)」がよくまとまっている。
 ただ、良くも悪くも日本人が書いた書籍であって、書きぶりが淡泊なのと、「これは~である、あれは~すべきである」と淡々と知識やノウハウを語るだけで、その背後やさらに先へ突き抜けていこうとするドライブ感は本書にはない。

『JP1によるジョブ管理の実践ノウハウ』(伊藤忠テクノソリューションズ 著)


 昨年のプロジェクトで必要に駆られて購入。JP1もそうだが、運用技術者のノウハウは口伝によって継承されているようなところがあって、アプリケーション開発者が学ぼうにもなかなかいい書籍が見つからないことが多い。こうした運用系の技術書が出てくることは、非常にいいことだと思う。

『BEA WebLogic Server 9.x/10 構築・運用ガイド』(伊藤忠テクノソリューションズ株式会社、日本BEAシステムズ株式会社 著)


 これも昨年のプロジェクトで必要に駆られて購入。昨年のプロジェクトはSeasar2を使ったJavaアプリケーションで、WebLogic+Oracleという構成だった。ここ数年はSeasar2のプロジェクトばかりなので、そろそろ別のフレームワークをやりたいところ。

『C#エッセンシャルズ 第2版』(Ben Albahari、Brad Merrill、Peter Drayton 著)
 


 プログラミングについて言語相対的なことを考えたり書いたりするときに、1つの言語だけでなく様々な言語の構文を正しく知っておくことは重要だ。この本は、C#についてのリファレンスが手元に欲しくなったので購入したもの。2002年出版なので内容が少し古いが、コンパクトにまとまっているものはこれしか見つからなかった。

『体系的ソフトウェアテスト入門』(Rick Craig、Stefan Jaskiel 著)


 単体テストだけでなく、開発プロジェクトの全工程にわたるテストを体系的に理解するのに非常によい本。テスト計画に始まり、単体テスト、統合テスト、システムテスト、受入テストまでの全プロセスをどう実施すればよいかを、きちんと把握できる。

『SOA大全』(Dirk Krafzig、Karl Banke、Dirk Slama 著)


 SOAについてあれこれ考えたりしていながら、決定版的なこの本をまだ読んでいなかった。SOAのキー概念が体系的にまとめられているのだが、実践的な雰囲気に乏しく、現場への適用に大きなギャップを感じるところはまさにSOAそのものといったところだ。最後まで読み進めることができなかった・・・

『Googleを支える技術』(西田圭介 著)


 エンタープライズのアプリケーション開発技術は、もうそろそろ飽和しつつあると思う。と同時に、そろそろ大きなパラダイムシフトが、エンタープライズ開発の現場にも再び起きるのではないか。次のパラダイムシフトとして私が予想しているのは、Googleなどのドットコム企業で扱われている超大規模な分散技術が、エンタープライズの世界に侵入してくることだ。GFSやBigtable、MapReduce、Hadoopといった技術は、JavaEEや.NETといった現在のエンタープライズ技術とはまったく違う世界になる。
 本書は、Googleがもつまったく異なるパラダイムの技術の入門書として非常にすぐれた良書だ。

『Mule2 - A Developer's Guide』(Peter Delia、Antoine Borg、Ricston Ltd. 著)


 Mule2は、ApacheのServiceMixを抑えてオープンソースESB(SOA基盤)のデファクトなのだが、SOA自体がなかなか実践されないこともあって日本での知名度はまだまだ低い。昨年あたりから、Muleや他のオープンソースESBに関する書籍が(まだ洋書だが)少しずつ出てきているので、2009年は、ESBというこの見慣れない技術がもう少し現場で普及することを期待したい。

『上流工程UMLモデリング』(浅海智晴 著)
 


 ソフトウェア開発の仕事というのは要件定義をして、設計書を書いて、それをプログラムに変換して、と非常に効率が悪い。できる限りこの流れを自動化したい、とくに要件定義を厳密に書けばそれがそのままプログラムとして動くようにならないか、というのは心ある開発現場のエンジニアなら誰もが問題意識をもって試行錯誤しているのだが、なかなか実現には至らない。
 そうした現場の開発者が思い描く理想のあるべき開発スタイルを、本書著者の浅海さんSimpleModelerというDSLツールを開発して実現しようとしている。非常に有望な、業界が進むべき正しい試みだと思う。
 本書は、SimpleModelerのベースとなるOO方法論SimpleModelingを解説したものだ。OO開発方法論の全貌を非常にていねいに解説した書籍でもあるので、一通り身につけたOO開発方法論をおさらいするのにも適している。ある程度分かっている人が読んで唸らされる本なので、逆に初学者には向かないだろう。


次は、ビジネス系の書籍をふりかえりたい。