最近、WEBアプリケーションの仕組みについて勉強していまして
今回はWebアプリケーション開発のひとつのモデルである「MV
この記事を読めば以下のことが理解できます!
- MVCモデルの考え方が分かる
- MVCモデルの考え方が必要になった経緯が分かる
- MVCモデルの役割が分かる。
- MVCモデルで開発するメリットが分かる
- MVCモデルの実用例が分かる
- ルーティングについて分かる
Webアプリケーション開発でよく耳にする「MVCモデル」です
MVCモデルとは?
簡潔に書くと以下となります。
- 機能ごとにプログラムの中身(処理)を分けて記述することで、
プログラムを整理しやすくする考え方 - 分け方としては、「モデル(Model)」「ビュー(View
)」「コントローラ(Controller)」の3種類
もう少し具体的に書くと
MVCモデルでは、プログラムの中身を
・モデル(Model):表示や入力に関連しない処理を担当
・ビュー(View):表示や入力に関する処理を担当
・コントローラ(Controller):ビューとモデルの橋渡
に分類して作ると言えます。
では次に、「なぜこのような考え方が生まれたのか」「なぜプログラム
MVCモデルが登場した経緯とは?
プログラムというのは、同じ処理をする場合でも実に色々な書き方がで
全部の処理をまとめて書くこともできるし、処理ごとに関数を分け
しかし個人開発ならまだしも、大勢の人が好き勝手に自分ルールでプログラムを作っていたら、他の人が作ったプログ
そこで、プログラムの構成を分かりやすく管理できるように「MVCモデル」という考え方が登場しました。
下の図のようにプログラムを機能ごとにファイル分けすることで、どこにどの処理が記述されているのかわかりやすくしているわけですね。
「Model」「View」「Controll er」の役割とは?
では次に「Model」「View」「Controller」のそれぞれの役割について解説します!
Model(モデル)
Model(モデル)はアプリケーションの中で、ビジネスロジックを担当する部分
ビジネスロジックとは、例えば申込フォームの内容をデータベースへ登録させる処理です。
ビジネスロジックという言葉の定義自体が曖昧なので、「処理した結果をデータベースへ反映させること」なんだくらいの理解でOKです。
主に以下の処理を担当します。
- データの検索
- データの変換
- データの検証
- データの関連
Controller(コントローラー)から受け取った処理に基づいて、必要なデータをD
そして、DBから取得したデータを一時的に預かりController(コントローラー)へ渡しま
しかし、ここで注意してもらいたのは、Modell(モデル)はDBそのものではありません。
あくまでもコントローラーから受け取った処理からDBのデータを取得してくるだけの役割です。
View(ビュー)
View(ビュー)は、ユーザーが「お問合せフォーム」など、実際に入力や設定を行う画面を表示します。
また、コントローラーから渡されたデータ
例えば、ログイン画面でユーザー名を入力してログインする場合、DBからログイン情報を探し出して、ユーザー名を画面に表示するといった具合です。
以下が主な役割です。
- リクエスト(ユーザーの入力)を取得する
- リクエストをコントローラーへ渡す
- コントローラーから受け取ったデータをHTMLなどで出力す
る
Controller(コントローラー)
Controller(コントローラー)は、View(ビュー)からのリクエストを
そして、レスポンスとして処理後の画面をView(ビュー)に返します。
またユーザーの処理に基づいてモデルをコントロールする部分でも
以下が主な役割です。
- ビューからリクエストを受け取る
- 受け取ったリクエストに基づいて該当するアクションを実行し
モデルに伝える - モデリングされたデータをモデルから受け取り、レスポンスと
してビューへ返す
MVCモデルの実用例を解説
ここではMVCモデルの実用例を現実世界の例で具体的に解説します!
飲食店働くアルバイトをイメージしてみてください。登場人物は3人です。
- ホール係⇒接客する人
- デシャップ係⇒ホールとキッチンの仲介をする人
- キッチン係⇒料理を作る人
それでは、お客さんが来店し、料理を注文し、料理が届くまでの一連の流れを追っていきましょう。
①ホール係は、レストランに来たお客さんから注文を聞きます。
②そして、その注文内容をデシャップ係に伝えます。
③デシャップ係は、注文を受け取ってキッチンに作るべき料理を知らせます。
ここまでの流れを整理すると、お客さんの「イチゴパフェ」という注文は、以下の流れでキッチン係まで伝わりました。
ホール係 ⇨ デシャップ係 ⇨ キッチン係
MVCモデルに当てはめると、以下のようになります。
View ⇨ Controller ⇨ Model
どうでしょう?イメージできますか?
そして、出来上がったイチゴパフェは今度は逆順でお客さんへ運ばれていきます。
この「イチゴパフェ」こそがDBから取り出した「データ」です。
イチゴパフェを食べられて、お客さんはとても幸せですね。
「イチゴパフェ」という注文を受けとって3人の登場人物が「イチゴパフェ」をお客さんに提供しました。
MVCモデルで言い換えるなら、
ユーザーからのリクエストを受け取って、DBから該当のデータを取り出し、ユーザーの元へ送る。
「注文」=「リクエスト」、「イチゴパフェ」=「データ」に該当します。
これがMVCモデルに基づいた作り方の全てです。
そして、モデル、ビュー、コントローラはそれぞれが独立しているのが普通なので、分
URLを受け渡すルーティングとは?
ルーティングとは、ブラウザから送られてきたURLで、MVCの
例えば、誰かがあるホームページのトップページのURL「htt
するとルーティングを設定しておくことで、
「https://x
とコンピュー
こうしてルーティングがURLをMVCへと受け渡してくれるというわけですね。
まとめ
- MVCモデルとは、Model、View、Contorllerでプログラムの処理を分けて開発する考え方。
- MVCモデルを採用することで、どの処理がどこに記述されているかが明確になる。
- ルーティングの設定によって処理をModel、View、Controllerのどこに渡すかが決まる。
以上が今回の学習のまとめとなります!
MVCモデルについて理解できましたか?
MVCモデルは決して必要な知識ではありませんが、より効率的により明瞭にWeb開発を進めていくことができる大変便利なものなので、ぜひMVCモデル構成でWebアプリケーションを作ってみてください。
MVCモデルを利用したPHPのフレームワークである「Laravel」でのWebアプリケーション開発についての記事もあるので、興味のある方は参考にどうぞ!
それでは、今回はここまで!!
ではでは~、♪( ´▽`)