Webアプリケーションフレームワークのフレームワークって何ですか?ネットやWikipediaで読んでもいまいち理解できません。Ruby on Rails, Zend Framework,などなどありますが、何かフレームワークというものがわからないんです。いろんなサイトを読んでもよくわからなかったので、サイトの丸投げは遠慮ください。Wikipediaも読みましたが、イメージがつかめません。

週刊こどもニュースなみに子供でも理解できるように解説お願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/06/03 06:25:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:tomo_k No.1

回答回数426ベストアンサー獲得回数26

ポイント23pt

フレームワークというのはたとえば、データベースアクセスとか画面への表示などどんなアプリケーションでも必要またはあったら便利なクラスをひとまとめにしたものと考えればいいと思います。

Webアプリを作るたびに同じようなデータベースアクセスのプログラムを作るのは無駄ですし、作るごとに微妙に違う仕様のものができてくると思います。

また、Webアプリケーションの作り手がある程度共通となるプログラムを作ったとしても外部の人間からみれば一からその使い方を学習する必要があります。

そんなときに、一般的なフレームワークを採用していれば外部の人間からみても既知のフレームワークかもしれません。これは、そのフレームワークについての学習をする必要がなくより速い開発が行える可能性があります。

また、データベースアクセスなどについてもたとえばSQL文をテキストファイルに書いておいて特定の場所においておくとか、特定のファイル名にしておくとか、XMLに設定を記述するとかフレームワークによりけりですが、プログラムにSQLを埋め込むことなくデータベースアクセスができることが多いのでプログラムの保守性とか独立性とかが高くなるかと思います。

http://www.atmarkit.co.jp/fjava/rensai3/struts01/struts01_1.html

保守の面からいえば一番の効能は妙な構造のプログラムとならないということでしょう。たとえば、JavaのStrutsは、MVCシステムデザインを元にしたフレームワークでStrutsの機能を使ってプログラムしていく限りたとえば画面遷移はXMLを読めば把握できるなどプログラムそのものを読むことなくおおざっぱな流れを把握できます。

要するにフレームワークというのはたいていのアプリケーションで必要になる機能をひとまとめにして提供されているもので、これに準拠することによってどこに何を書くかがはっきりするために誰がみてもわかりやすいプログラムとなりやすいというところでしょう。

Webアプリケーションにおいてはデータベースアクセス、画面遷移、画面表示あたりの機能が入っていることが多いです。

id:garyo No.2

回答回数1782ベストアンサー獲得回数96

ポイント23pt

ライブラリというものはご存知でしょうか。

ライブラリというのは自分が使うプログラムから呼び出して使う共通プログラムです。

同じような処理があれば、毎回作るのは面倒なので、一度作って共通で使いまわそうという考えです。

WEBアプリなどは、定型の処理が多くあり、大きくわけると、

1.どのアプリでも共通の処理

2.カスタマイズが必要な処理

になります。


そこで、共通の処理を定型にしてカスタマイズが必要な所だけ変えるといいとなります。

この定型の処理を取り出したものをフレームワークといいます。


ライブラリと違うのは

ライブラリ:ユーザーがプログラムから呼び出す

フレームワーク:ユーザーがフレームワークから呼び出される部分をカスタマイズする

という風に逆になります。


つまり一度WEBアプリを作っておいて、変更が必要な所は各自で書き換えて下さいというやり方です。

これだと各自の処理の書き方が共通化するという利点があります。


テストなどで使われるテスティングフレームワーク(xUnit)もテスト用の共通のプログラムで、

各自で個別のテスト内容を書き換えるわけですね。





http://e-words.jp/w/E38395E383ACE383BCE383A0E383AFE383BCE382AF.h...

id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント22pt

喫茶店でコーヒーを頼んだときの、喫茶店側の業務の流れを頭に思い浮かべてください。

  1. お客さんが入店
  2. 座席を案内する
  3. メニューを見せる
  4. 注文をとる
  5. コーヒーを注ぐ
  6. テーブルにコーヒーを届ける
  7. 会計伝票を届ける
  8. 会計処理する
  9. 食器を下げる

だいたい、どこの喫茶店でもこんな流れでしょうか。

だいたい流れが同じなら、その一部を共通化してコストを下げることができるはずです。たとえば伝票、コーヒーカップは共通化できます。たとえば伝票なら、基本形式は同じで、店舗名や連絡先だけを個別印刷(カスタマイズ)しておけばいいでしょう

このように、共通化できる部品のことを「ライブラリ」と呼んでいます。

プログラムの世界でも同じです。共通化できるプログラム・コードを「ライブラリ」と呼びます。CやPascalなどの関数型言語の部品は「関数ライブラリ」、C++などオブジェクト指向言語では「クラスライブラリ」などと呼ぶこともあります。


さて、業務の流れ(フロー)そのものも定式化(標準化)できます。全国どこの喫茶店でも、冒頭のフローは同じようなものです。

とくにファストフード店では、徹底的にフローの標準化を行っています。俗に言う「マニュアル」がそれです。

流通管理など、業界で定式化されたフローがあります。また、会計処理などは、国が定めたルール(ロジック)があります。

そこで、これらの定式化されたフローやロジックをライブラリ化したものを、プログラムの世界では特に「フレームワーク」と呼んでいます。


フレームワークの中で、とくにWebアプリケーションの分野で利用されるものを「Webアプリケーション・フレームワーク」と呼んでいます。

お買い物サイトで、商品一覧から買い物かごに商品を入れ、クレジットカードで決済するという手順はWebアプリケーション・フレームワークで用意されます。その中で、メールアドレスをチェックしたり、データを暗号化する処理は、ライブラリによって処理されます(よくできたフレームワークでは、プログラマが直接ライブラリを操作することは少ないです)。


ライブラリやフレームワークは、先達のノウハウを部品化・共通化することで、あらたなコードを書くという時間コストを削減するものです。

いろいろなライブラリやフレームワークが出回っていますが、噂や流行に惑わされることなく、システム化する業務にマッチするものを選ぶことが肝要です。

id:tedmans No.4

回答回数114ベストアンサー獲得回数3

ポイント22pt

http://www.thinkit.co.jp/free/tech/9/1/

「フレームワーク」って「枠にはめた仕事場」ことだよ。


フレームワークって言うのは要するにソフトベンダーにとって囲い込みの手段。

色々な事をするのに色々なところからツールを持ってきてばらばらに作業するのではなく決まった土俵(砂場でもいいや)を作っておいてそこの中で相撲を取って下さいという仕組み。


簡単な例で言うと一太郎の世界なんかも一種のフレームワークなわけ。

UNIXの世界だとemacsの世界も広い意味で言うとフレームワーク。

一旦、その中に入ってしまえば自分は今どんなOSの上で作業をしているのか気にしないで色々な事ができる。


ツールの連携とか外部コマンドを使えるとかあってその場に慣れてしまえば居心地良くいられるのでベンダーにとって囲い込みをしたのと同等ってことになるね。


ユーザーにとってみてもフレームワークの中で作業すればOSとかの環境に左右されずに済むので効率がいいというメリットがあるし、共同作業がしやすい。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません