エンタープライズアプリケーションアーキテクチャパターン

マーティン・ファウラー、デイブ・ライス、マシュー・フェメル、エドワード・ハイアット、ロバート・ミー、ランディ・スタッフォード著

2002

デイブ・ライスと私がJ2EEアーキテクチャに関する講演を行い、C++、Forte、CORBA、Smalltalkで学んだ概念がJavaで優れたデザインを開発する際にいかに重要であったかを熟慮した後で、この書籍の作成が始まりました。この書籍では、これらのパターンの多くをプラットフォームに関係なく開発者向けに役立つように記載しました。これらのパターンは私たちが2002年に.NETの使用を開始し、2007年にRubyの使用を開始したときに非常に貴重なものとして判明しました。

この書籍はデュプレックスブックです。第1部はエンタープライズアプリケーションアーキテクチャに関する短い(100ページ)チュートリアルです。書籍の大部分は40種類程度のパターンに関するリファレンスになっています。これらのパターンは私が現場で目にしてきたもので、通常はさまざまなプログラミングプラットフォームで使用されています。

各パターンでは、パターンの仕組みと使用状況の詳細とともに、Java、C#、またはその両方のコード例を記載しています(私はこれらの言語を、特定の結合や言語に対する意見ではなく、ほとんどのソフトウェア開発者が読むことができるという理由で選択しました)。

主要なトピック領域は次のとおりです。エンタープライズアプリケーションの階層化方法、ドメインロジックの整理方法、そのロジックをリレーショナルデータベースに関連付ける方法、Webベースのプレゼンテーションを設計する方法、分散設計における重要な原則、「オフライン同時実行性」の処理(トランザクションにまたがる同時実行性)。

この書籍に素晴らしい貢献をしてくれた人々に恵まれました。とりわけ、10分の1を執筆したデイブ・ライスです。マット・フェメル、エドワード・ハイアット、ロバート・ミー、ランディ・スタッフォードも参加しています。

私はこの書籍を2000年代初頭に執筆しましたが、同僚や私はこれらのパターンが現在でも関連性があると考えています。当時の私たちの仮説は、ソフトウェアアーキテクチャにおける本質的な問題と解決策はあまり変わらないというものでしたが、それは確かに過去10年間は正しかったのです。

私がこの書籍を執筆してからもう1つの変化は、現在では多くのパターンが共通フレームワークによって(特にデータベースの相互作用において)実装されているということです。これは、開発者がこの資料を理解する必要がなくなったということを意味するわけではありません。フレームワークではそれらを使用する方法に関する決定を下すことが依然として必要であり、賢明な選択を行うためには基礎となるパターンを知ることが不可欠です。

エラッタ

追加の読書資料

パターンのカタログ

書籍に掲載されたパターンの簡単な要約

分散戦略の章

SD Magazineは、第7章を「Errant Architectures」というタイトルで雑誌の記事として採用しました。

翻訳

ポルトガル語、ポーランド語、ドイツ語、ロシア語、韓国語、日本語、中国語(簡体字)。