はじめに
自分の備忘録用として記事にしてみました。
初学者の知識整理の一助になれば幸いです。
MVCモデルとは
「Webフレームワークで一般的に取り入れられているアプリケーション設定を整理するための概念の一つ」
これだけでは、整理?なんぞや?となると思います。
MVCとあるように、Webシステムの持つ機能を役割ごとに大きく3つに分けて開発を進めていく方法のことです。
3つの役割とは、
・Model(モデル)
・View(ビュー)
・Controller(コントローラー)
です。
これらを合わせて、MVCモデルと言います。
MVCのそれぞれの役割とは
Model
データを扱う部分です。データベースにアクセスをして、必要なデータを取り出します。
View
画面表示のための部分です。レイアウトや操作性に関わる部分です。
Controller
ModelとViewに指示を出します。
プログラムの制御を行う部分で、クライアントからの要求に対して、必要に応じてModelやViewを呼び出して処理を行い、結果となるWebページを用意してブラウザに返信をします。
MVCモデルを使うメリット
-
アプリケーション開発を効率的に行える
役割や機能別でコードを分けることにより、開発するときも、変更するときも、保守するときも、「このコードはどこの関連か?」と迷うことがなくなります。
また、MVCそれぞれを分業して開発することができるので、それぞれに対してアプローチが可能となります。 -
保守性の確保、新しい機能の追加を簡単にできる
各モジュールで役割分担していることにより、保守性が上がります。
Viewにバグが発生したとしても修正はViewだけに止まり、ModelやControllerにはほとんど影響がありません。
影響を少ない範囲で留めることができます。
また、独立性が高いため、コードの追加が容易にできます。
MVCモデルの概略図
①クライアントからのリクエストをControllerが受け取ります。
②Modelにデータを取り出すように指示を出します。
③データベースからデータを取り出します。
④データベースから取り出したデータをControllerに送信します。
⑤受け取ったデータをViewに渡します。
⑥データを受け取ったViewが、HTMLなどを生成します。
⑦クライアントの画面に返します。
Modelがデータを扱い、Viewが表示画面を作成します。
それを制御しているのがControllerとなります。
さいごに
ここまで読んでくださりありがとうございました。
記事を書くことで、MVCモデルについて少しは理解できたかなと思います。
ご指摘事項がありましたら、ご連絡ください。
参考サイト
https://www.geekly.co.jp/column/cat-technology/1911_040/
https://www.rstone-jp.com/column/93102/
https://qiita.com/riku-shiru/items/2bed096e106e72e0b58a