質問: Webアプリケーションフレームワークのフレームワークって何ですか?ネットやWikipediaで読んでもいまいち理解できません。Ruby on Rails, Zend Framework,などなどありますが、何かフレームワークというものがわからないんです。いろんなサイトを読んでもよくわからなかったので、サイトの丸投げは遠慮ください。Wikipediaも読みましたが、イメージがつかめません。 週刊こどもニュースなみに子供でも理解できるように解説お願いします。
回答: フレームワークというのはたとえば、データベースアクセスとか画面への表示などどんなアプリケーションでも必要またはあったら便利なクラスをひとまとめにしたものと考えればいいと思います。 Webアプリを作るたびに同じようなデータベースアクセスのプログラムを作るのは無駄ですし、作るごとに微妙に違う仕様のものができてくると思います。 また、Webアプリケーションの作り手がある程度共通となるプログラムを作ったとしても外部の人間からみれば一からその使い方を学習する必要があります。 そんなときに、一般的なフレームワークを採用していれば外部の人間からみても既知のフレームワークかもしれません。これは、そのフレームワークについての学習をする必要がなくより速い開発が行える可能性があります。 また、データベースアクセスなどについてもたとえばSQL文をテキストファイルに書いておいて特定の場所においておくとか、特定のファイル名にしておくとか、XMLに設定を記述するとかフレームワークによりけりですが、プログラムにSQLを埋め込むことなくデータベースアクセスができることが多いのでプログラムの保守性とか独立性とかが高くなるかと思います。 保守の面からいえば一番の効能は妙な構造のプログラムとならないということでしょう。たとえば、JavaのStrutsは、MVCシステムデザインを元にしたフレームワークでStrutsの機能を使ってプログラムしていく限りたとえば画面遷移はXMLを読めば把握できるなどプログラムそのものを読むことなくおおざっぱな流れを把握できます。 要するにフレームワークというのはたいていのアプリケーションで必要になる機能をひとまとめにして提供されているもので、これに準拠することによってどこに何を書くかがはっきりするために誰がみてもわかりやすいプログラムとなりやすいというところでしょう。 Webアプリケーションにおいてはデータベースアクセス、画面遷移、画面表示あたりの機能が入っていることが多いです。