フレームワーク、というものは簡単に言うとどういうものなのでしょうか?
解決済
回答 4
投稿
- 評価
- クリップ 0
- VIEW 1,036
Ruby on Railsでプログラミングを始めた者です。
フレームワークって何?って言われることがあったのですが、すぐに返答することが出来ませんでした。
言葉通り枠組み、というイメージでしか捉えていなかったのですが、簡単に説明するとしたらどういう返答がベストでしょうか?
RailsみたいなWebアプリケーション開発のフレームワーク、と言うと
開発を便利にしてくれる枠組み、
つまりRailsで使われる「メソッド」を予めたくさん準備してくれたもの。というイメージなのですが間違っているでしょうか?
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+3
建築で例えれば基礎工事を省いてくれるものです。他の人には見えにくいけどしっかり作り込まないといけない場所、建築の土台となる場所です。自分が作りたい建物の「見栄え」や「利便性」や「機能」の部分だけに注力するために、基礎工事を他人の作ったもので一気に済ませてしまう、それがフレームワークだと思います。
ビル(大型なシステム)を建てたいならビル用のフレームワークを選びますし、住宅(こじんまりした個人用のシステム)を建てたいなら住宅用のフレームワークを選びます。
Ruby on Railsは例えるなら「ビルから犬小屋まで対応できるフレームワーク」でしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
Wikipediaからの引用ですが
プログラミングにおいて、一般的な機能をもつ共通コードをユーザーが選択的に上書きしたり特化させたりすることで、ある特定の機能をもたせようとする抽象概念のことである。(Wikipediaより)
かみ砕いて言うと、さまざまなシステム開発を効率化してくれる機能群でしょうか。
単なる機能の集まりならライブラリやAPIとも言えますが、単なる寄せ集めではなく、ある一定の概念のもとに構築されているところが違うところでしょう。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
様々な便利機能を備えたスケルトンプロジェクトが端的な説明なように思えます。
- フレームワークを使って作るものはプロジェクトである
- APIやライブラリとは違って、プロジェクト内に展開して機能の肉付けを行っていく
- 予めフォルダ分けがされていて、多人数開発をしても意識が程度統一される
- プロジェクトに適したデプロイ方法やテスト機能を備える
Webフレームワークに具体化させると、オブジェクト指向を使ったWebサーバーのスケルトンプロジェクトと呼べるんじゃないですかね?
- Webサーバーを構築することが目的
- Controllersフォルダにファイルを保存すると1ページ出来上がる
- Controllerは自動的にViewを使ってページをレンダリングしてくれる
- Modelsフォルダにファイルを保存すると1テーブル出来上がる
- 上記一貫した名前のフォルダを付けると、CRUDの仕組みが超高速に出来上がる
- has_many等のプロパティを適切に付けてあげると、SQLレスに外部結合等の概念が定義できる
現場ではニッチな要望を満たす為に試行錯誤は必要かと思いますが、
想定範囲内でやりたい事が多く合っても、一瞬で作れるのがWebフレームワークの魅力ですね。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
一言でという条件なら「実装の自由度を適切に狭めてくれるもの」だと思いますよ。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.13%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2017/02/08 20:13
一番分かりやすく頭に入ってきたのでこちらをベストアンサーとさせていただきます。