yakuzarashiです.
この記事はRCCアドベントカレンダーの2日目の記事です.前日はnokkiさんでした.

こんにちは,yakuzarashiです.アドベントカレンダー2日目ということで頑張ります.今回はwebアプリケーションなどの開発時に用いられる設計モデルのひとつであるMVC(Model-View-Controler)について紹介するような記事を書いていきたいと思います.1日目の記事で記述があったグループ活動で,僕は会内SNS班の班員でして,SNSの作成をwebアプリケーションフレームワークcakephpを使って活動行っているので,今回はそのcakephpに用いられている設計モデルのMVCについての記事を書いていくことにしました.しかし,ただ説明するだけではわかりにくいと思うので,なるべくわかりやすいように説明出来るように頑張ろうと思います.以下のわかりやすい図を参照して読んで頂けるとわかりやすいかもしれません.

わかりやすい図

mvc_schematic

MVCはwebサービスの開発をサポートするためのwebアプリケーションフレームワークでよく用いられる設計モデルのひとつです.MVCはModel,View,Controllerの3つを用いることによってそれぞれ機能毎に処理を分割することで,共同開発での分業を容易にしたり,使用変更に強くなったり,作業の見積もりが正確になるなどの利点を持ち,web開発を簡単とします.

以下では理解を助けるために,例を挙げてMVCの実際の構造について説明します.上図わかりやすい図を見ながら以下の説明を読んで頂けるとわかりやすいかもしれません。

例えば誰かがMVC設計モデルを採用したwebサイトにアクセスしようとしたとします.
ブラウザはWebサーバにリクエストを送信し,リクエストを処理する役割を担っているControllerに渡します.Controllerは,静的なページの場合にはすぐにViewにページを生成させて,そのHTMLをブラウザに返します.動的なサイトの場合は,Controllerはサイトの要素を表して,Databaseとの通信を担当しているModelと対話します.Modelを呼び出した後,ControllerはViewをレンダリングし,完成したWebページをHTMLとしてブラウザに返します.

もう一度載せます。

わかりやすい図

mvc_schematic

番外編: これを寿司屋で表すとこんな感じになります.客が寿司を注文,Controller板前おじさんがその注文を管理していて,簡単な注文の場合,寿司職人Viewおじさんに寿司を握ってもらい,それを客に出す.難しい注文の際は色々と下準備のために冷蔵庫から食材を取り出せる,Modelの取り出しおじさんと話合いを行います.取り出しおじさんは会計とかその他もろもろの経済事情とかを考慮して,使える食材を制限して,使えるものだけをControllerおじさんに返します.その後Model取り出しおじさんから,貰った食材を元に,寿司職人Viewおじさんに寿司を作ってもらい,それを客に出す.といった感じです.

こんな感じで,MVCは,Model,View,Controllerの3つに処理を大きく分割することによって,webアプリケーション開発の手間を減らすことが出来るわけです.

以上で,MVCに関する説明は終わりです
僕自自身,理解出来ていない部分もあるで,間違えているところもあるかもしれませんが,基本的にはこんな感じなので,イメージを沸かせるぐらいでとどめておいて,興味がある方はご自身で色々調べてみてください.

omake

明日はhoroamaくんです.

Twitterでフォローしよう

おすすめの記事