フレームワークとは、
当記事では2. について解説する。
概要
フレームワークとは、それを利用してより大きなソフトウェアを開発するためのソフトウェア部品である。特にWebアプリケーションフレームワークを指すことが多い。
こう書いてしまうと、ソフトウェアライブラリとの区別があいまいになるが、実際その点はしばしば議題となりうる。
フレームワークでは、プログラムがあなたを呼び出す!
ライブラリは、自分で書いたメインプログラムから呼び出すことが主体であるのに対して、フレームワークでは起動するメインプログラムは予めフレームワークとして与えられていて、そのメインプログラムからの呼び出しに応答する部分を自分でカスタマイズして書くようなイメージである。
たとえば前述のWebアプリケーションフレームワークでは、ユーザーからリクエストを受け取ったり、HTMLファイルをユーザーに送ったりするWebサーバーのような機能がフレームワーク自体として提供されるか、あるいはフレームワークとWebサーバーがセットで提供される。開発者は、ユーザーのリクエストをもとにユーザーに返すHTMLファイルを生成する部分の開発に専念できる。その場合でも、フレームワークにHTMLファイルを生成する機能が多数備わっており、その動作の組み合わせを記述するのみで済むようになっている。
実際にはフレームワークという単語が厳密に定義されているわけではないので、あてはまらない例もある。たとえば.NET Frameworkは名前こそフレームワークだが、汎用性が高すぎて通常はフレームワークというよりもJVMなどのような仮想マシンに分類することが多い。
最近ではクラウドサービスの普及により、フレームワークにクラウド上のハードウェアの組み合わせまでセットでついてきたりもるする。
MVCフレームワーク
今日、フレームワークといえば、MVCフレームワークと呼ばれるようなフルスタックフレームワークを指すことも多い。これは一つのパッケージがModel、View、そしてControllerによって構成されているものであり、それぞれ役割が異なる。
これをわかりやすく工場にたとえる。Modelとは原料であり、Viewとは製品、Controllerはプラントである。また、このMVCモデルのネットワークを管理するのがルーティングという機能であり、Viewのアドレスを格納している。
代表的なMVCフレームワークとして名高いのがRubyフレームワークであるRuby on Rails(通称、Rails)。これの登場によって、MVCフレームワークはパッケージ作成のスタンダードとして地位を確立し、これにインスパイアされたのがPHPのCakePHPやLaravel、PythonのDjangoなどである。また、最低限の機能だけを残して動作を軽くしたものとして、PythonのFlaskやRubyのSinatraなどがある。
関連動画
関連商品
フレームワークに関するニコニコ市場の商品を紹介してください。
関連項目
- 0
- 0pt