kuguru[クグル]kuguru[クグル]|人が、ITの世界をくぐり抜けるためのアイデアを。昨今、ソフトウェア開発を行なう上において、フレームワークの存在はますます重要になっています。フレームワークとは、共通的な処理や取り決め、プログラムのひな形を集めたもので、システム開発の生産性向上、メンテナンス性向上が期待できるものです。本稿では、JavaでWeb開発をする上で欠かせないフレームワークについて、代表的なものをご紹介いたします。まとめフレームワークとはフレームワークとは、ソフトウェアを開発する、または実行する時に利用する共通的な基盤です。フレームワークは、よく使われる共通的な処理をまとめたライブラリ群、画面遷移など一定のルールさえ決めれば簡略化できる処理とその設定、プログラムを楽に書くためのひな形集などから構成されます。フレームワークをうまく利用すれば、例えば複雑なコードをたくさん書かなければいけないところを、本の数行で同じことができたり、共通的な動作を統一してバラツキを無くしたり、オペレーティングシステムの変更をフレームワークで吸収してプログラムへの影響を軽くしたり、など、開発や運用の手間を大幅に削減することができます。これにより、生産性の向上やメンテナンス性の向上が期待できます。フレームワークのモデルにはいろいろありますが、Webアプリケーションの世界では、MVCモデルが有名です。MVCとは、Model-Controll-Viewの略で、システム全体をModel(データ処理を担当)、View(データ表示を担当)、Controll(ModelとViewの仲介を担当)の3つに分けて作成する手法です。することで、どこで何をやるのかが明確になり、システムを作りやすく、また変更しやすくすることができます。それでは、JavaのWeb開発で良く使われるフレームワークをご紹介します。Framework最近、流行し始めたフレームワークです。Programming)が有名です。DIの特徴は、変更に強いことです。大規模な開発で威力を発揮します。これまでのJavaフレームワークは、どちらかというと新規開発の生産性が重視され、変更についてはあまり考慮されていませんでした。実際は新規開発よりも運用フェーズに入ってからの変更の方が、重要なケースが多いといえます。このフレームワークは、こうした変更に重点をおいたものです。中でも、専用のテストプログラムによって、単体ではなく、結合してテストできる機能は強力です。AOPは、クラスには本質的な処理だけを書いて、そうでない処理は別に書くことができる機能です。することで、ソースコードがわかりやすくなり、不具合があった時も原因が特定しやすくなります。再利用もしやすくなりますので、とても優れた仕組みと言えます。Framework自体も、そのほとんどがインタフェースとして提供されているため、必要な機能だけを選択して利用することができます。いわゆる「軽い」フレームワークとなっています。Editionの略です。Javaの管理元であるOralce社が提供している、公式のフレームワークです。企業の基幹系システムのような大規模システムを構築するのを目的としています。EEは、プレゼンテーション層(Web層)、ビジネスロジック層、エンティティ層から構成されています。プレゼンテーション層はデータ表示を制御するためのもので、ビジネスロジック層はデータ処理を、エンティティ層はデータベースなどのデータ永続化ソースの処理を行います。大規模向けなので、中・小規模のシステムには、やや重たいフレームワークとなっています。Javaフレームワークの中では最古参のひとつなので、これで開発されているシステムが数多く存在します。Struts一昔前までは、Javaのフレームワークと言えばこれ、というくらい使われていたフレームワークです。Struts2になってから、相次いで脆弱性が指摘され、他のフレームワークへ乗り換える動きも出ています。MVCアーキテクチャを採用しており。MVCを流行させた立役者ではありますが、脆弱性のために、これから採用される機会は減りそうな状況です。Framework今回ご紹介するフレームワークの中では、最も新しいものです。他のフレームワークに比べて、変更に強い設計になっています。いうか、変更しやすさを追求したフレームワークです。リファクタリングがしやすい仕組みになっており、また、リファクタリングしてもテストしやすいという特徴があります。他のフレームワークでありがちな、設定ファイルの煩わしさもありません。これは結構重要で、特に規模が大きくなると設定ファイルが重荷になるケースが多いのが実情です。全体的に、軽量さ、柔軟性がJavaのフレームワークと思えないほど優れています。Frameworkです。まとめ本稿では、JavaのWeb開発で良く利用されるフレームワークをご紹介しました。これ以外にもJavaフレームワークは複数存在しますが、まずは、今回ご紹介したものを知っておけば十分でしょう。Frameworkが人気です。EEで開発することは減るでしょうが、メンテナンスで出くわす可能性は十分あります。