【初心者向け】MVCがなぜ使われているのか

Webアプリ開発でよく見聞きする、「Ruby on Rails」「Laravel」「Django」などのフレームワークにはMVCモデルが採用されています。
そのMVCモデルとはどういったものかを解説していきます。
目次
MVCモデルとは 〜役割分担の明確化〜
MVC は、Webフレームワークで一般的に取り入れられているアプリケーション設定を整理するための概念の一つです。
Model(モデル)、View(ビュー)、Controller(コントローラー) の頭文字をとって 「MVC」と言われています。
Model, View, Controllerという役割で分けて開発を行うことで、機能の追加・編集が容易に行なうことができ流ようになり、効率的にアプリケーション開発を行うことができます。
MVCのそれぞれの役割
MVCの関係を図で表すと以下のようになります。

Model (モデル)
MVCにおいては、主に Modelがシステムのロジック を担います。
Modelでは、データベースとデータのやり取りを行う機能を実装したり、データベースからデータを取得して、システムや業務固有の処理をしてデータを変換して渡すというような役割を担っています。
View (ビュー)
Viewは ユーザーとの直接的なやり取りする役割 を持っています。
画面上への表示や入出力を行う機能を持ち、Modelからのデータを参照して画面に表示します。
Controller (コントローラー)
Controllerは ModelとViewを制御する役割 を担っています。
あくまで具体的な処理は行わず、ModelとViewとの橋渡しをする司令塔のようなものです。
MVCモデルのメリット
-
役割分担が明確で、分業しやすく効率的である
-
モジュールの独立性が高く、コードを再利用しやすい
-
仕様変更での対応が比較的に容易にできる
-
トラブルに対しても柔軟に対応できる
MVCモデルのデメリット
-
大規模システムではモデルやコントローラーが肥大化し、管理が難しくなる
-
コントローラーとビューの相互依存性が高まると修正が難化する
-
大規模だとMVCモデルどおりの設計が難しい
まとめ
MVCモデルには派生のモデルとして、MVVMモデルやFluxモデルなどもあります。それらについても、今度解説記事を描いてみようと思います。
この記事が皆様のお役に立てれば幸いです。ありがとうございました。