
みなさん、こんにちは。
フリーランスエンジニアのRyuです(言ってみたかっただけ)。
今日は、プログラミングをする上において必要になる「MVC」という概念について解説していきます。
アルファベットだと何だかとっつきにくい気がしてしまいますが、プログラミングについて何もわからない方でも理解できるように平易な文章や図を使っていますので、ぜひご覧ください。
MVCの概念
MVCは、プログラミング全体の可読性を高めるための整理術のようなもので、設計を担当する「Model(モデル)」、表示を担当する「View(ビュー)」、そしてこの2つの橋渡しをし、制御する「Controller(コントローラ)」それぞれの頭文字を取ったものです。
改めて箇条書きにすると、以下のようになります。
MVCの中身
- Model(モデル):表示や入力に関連しない処理。システムの設計や、機能をどうするかを記述するファイル。
- View(ビュー):表示や入力に関連する処理を記述するファイル。
- Controller(コントローラー):ModelとViewの橋渡し役をし、制御する役割を担うファイル。
これらの説明を簡単な図にすると、下図のようになります。

MVCを使う長所(メリット)
次に、MVCを使うメリットについては、紹介しきれないほど沢山あるのですが、ここでは代表的なものを2点ご紹介していきます。
- 整理された分類が可能である
- 分業がしやすい
順番に解説していきます。
整理された分類が可能である
MVCの概念を取り入れていれば、ある程度整った形でプログラミングをすることができます。
ただ雑然とコードを並べでいたのでは、それを作った人にしかわからないプログラムが完成してしまいます。
そこで、ある程度最初からファイルに役割を与えておくことによって、誰が見ても何となくプログラムの役割が理解できるのに加えて、作者も管理やしやすくなります。
分業がしやすい
上記のメリットと被る部分がありますが、誰が見ても何となく各ファイルのプログラムの役割が理解できるということは、別々の作業を同時に行うことができることを意味します。
例えば、Webデザイナーがフロントエンド業務(Viewファイルのコーディング等)をしているのと同時に、Webエンジニアがサーバーサイド業務(Controllerファイル、Modelファイルのコーディング等)を進めることができることになります。
MVCの短所(デメリット)
こんなに便利で良いところしかなさそうなMVCにも、デメリットは存在します。
それは、ModelとControllerの記述に正解がないこと。
例えば、入れたい処理が決まっていたとしても、それをModelに記述すべきか、Controllerに記述すべきかは、エンジニアの中でも意見が分かれることがあります。
これを解決する方法として、PMやMVPなど、MVCとは違った概念がいくつかありますが、それは他の記事にお譲りします。
まとめ
今回はMVCの基礎について簡単にまとめてみました。
概念は理解できたつもりでも、いざ実際にコーディングをしてみると、案外できなかったりするものです。
まずは沢山コードを書いて、少しずつ、理解していきましょう。