2008年06月07日

Chapter 1. Introduction

第1章 はじめに
広い意味での(制限つきのアプレットから、階層構造でサーバサイドな本格的エンタープライズアプリケーションまでを含む)Javaアプリケーションは、通常多くのオブジェクトの協働によってアプリケーションとして正常な動作をします。ですからオブジェクト間には依存性があるといえます。

Java言語とJavaプラットフォームは、プリミティブ型やクラス、新たなクラスを定義する手段といったごく基本的なものから、多機能なアプリケーションサーバやウェブフレームワークにいたる広い範囲にわたって、アプリケーションを設計・構築するための豊富な機能を提供してくれます。しかし、基本的なコードブロックを、わかりやすくひとつのものにまとめ上げる手段がなく、だいたいの場合アプリケーションを構築する役割の設計者や開発者がそれを提供することになります。公平を期すために言及しておくと、多機能なアプリケーションを構成するためのさまざまなクラスやインスタンスを組み立てるために、たくさんのデザインパターンが役立ちます。いくつかの例を挙げると、Factory、Abstract Factory、Builder、Decorator、Service Locatorなどのパターンがありますが、これらのパターンはソフトウェア構築業界では幅広く知られ、受け入れられています(だからこそこれらのパターンがパターンとして定義されたとも言えるでしょう)。デザインパターンが役に立つことは確かですが、しかしそれは名前のついたベストプラクティスでしかなく、そのパターンが何をするためのものであり、どういう場合に適用すると効果的で、どういう問題を解決することができるのか、等々が述べられているに過ぎません。デザインパターンの本やWikiはたいがい「…このパターンができることは、…」という文句を最後の段落で使って、こうした様式化されたパターンをリストアップしているだけで、それを持ち帰り、深く考え、そしてアプリケーションに実装するのは開発者の仕事なのです。

Spring FrameworkのIoCコンポーネントは、各種それぞれの特性を持ったコンポーネントを動作・使用が可能なアプリケーションに組み上げるための定型化された手段を提供することによって、アプリケーションを構成するクラスやオブジェクト、サービスの選択に関する企業の心配事を取り除くことを狙いとしています。Spring Frameworkは、何年もかけていくつものアプリケーションを経て検証されてきたベストプラクティスとデザインパターンを利用しています。そしてそのパターンを実際にコードに落とし込み、設計者・開発者がアプリケーションに組み込むことができるクラスとして提供しています。これは確かに非常に良いことであるということが、たくさんの組織がSpring Frameworkを使用して堅牢で保守性の高いアプリケーションを開発したという実績によって証明されています。

背景

2004年のはじめ、Martin Fowlerは彼のサイトでIoC:Inversion of Control(制御の反転)について読者に「制御の何を反転させるのかということがよくわからない」という疑問を投げかけました。そしてFowlerはもっと説明的な名前をつけてはどうかと提案し、そこからDI:Dependency Injection(依存性の注入)という用語を使用するようになりました。彼の記事にはさらにIoCとDIという概念を裏打ちしている考えに対する解説が記されています。IoCやDIについての優れた分析を知りたい場合には彼の記事を参照すると良いでしょう。http://martinfowler.com/articles/injection.html(訳注:http://kakutani.com/trans/fowler/injection.htmlに角谷 信太郎氏による和訳があります)


原文:http://static.springframework.org/spring/docs/2.5.x/reference/introduction.html
ラベル:SpringFramework2.5

Preface

まえがき

よいツールと技術に恵まれていてもアプリケーションの開発は難しいものです。まして、重量級なだけでコントロールが難しく、開発サイクルにおいて非効率な、「何でもできる」プラットフォームをつかった開発は困難を極めます。Springは、宣言的トランザクションやRMI/WEBサービスを使用するリモートアクセス、多様なデータベースアクセスの手法を提供しながらも、エンタープライズアプリケーションのの構築に耐えうる軽量なフレームワークです。Springは、MVCフレームワークを提供し、AOPによる透過的なソフトウェアの統合を実現します。

いかなるエンタープライズアプリケーションでも、その全体にわたってSpringを使用することができます。しかしSpringはモジュール構造をしているので、必要な部分だけを使用し他は導入しない、ということが可能です。つまり、Strutsを上位層としてIoCコンテナを使うこともできますが、Hibernate 統合コードやJDBC抽象化レイヤだけを使うこともできるということです。Springは煩雑さをさけ、またフレームワーク自身に対して通常はまったく依存しない(あるいは状況に応じた最小の依存ですむ)ことを意図して設計されています。

この文書はSpringのさまざまな機能へのリファレンスガイドです。まだまだ作成途中ですので、提案やコメントがあればユーザメーリングリストかサポートフォーラム(http://forum.springframework.org/)に投稿してください(訳注:この日本語訳に関する事項は投稿しないでください)。

ここでHibernateチームのChristian Bauerに謝辞を述べておきます。かれはHibernateのリファレンスを作成するため、またこの文書を作成できるようにするためDocBook-XSLの改変などといった準備を行ってくれました。広範囲にわたり価値のあるレビューを行ってくれたRussel Healyにも感謝します。

原文:http://static.springframework.org/spring/docs/2.5.x/reference/preface.html
ラベル:SpringFramework2.5

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。