MVCとは
WEBアプリケーションなどの開発に携わった時に
なんて説明があったりして
初心者の人にはわかりずらいと思ったのでまとめてみました。
安心してください!
まず強く言いたいのが、このMVCって概念は
最初の段階でマスターしなくて良いことです。
天才でもない限り、開発して複数のフレームワークを使った上でなんとなく概念が見えてくるのが通常です。
軽い気持ちで当記事を読んでもらうと助かります。
MVCとは?
MVCとは開発する際の『型』の一種です。
プログラムに対し、
- M(Model)
- V(View)
- C(Controller)
という役割を持たせることにより、チームで開発するときに効率がアップしたり保守がしやすくなったりします。
MVCの役割をさらっと説明
ここでMVCの役割をサラっと説明します。
V(View)
入力や出力。いわゆる『画面』の役割を果たします。
M(Model)
演算やデータベース処理などの役割を果たします。
C(Controller)
V(View)とM(Model)を仲介する役割があります。
Controllerが一番イメージしにくい
V(view)とM(Model)はイメージしやすいのですが、
実際に開発しないうちは
って思ったりすると思いますが、
Controllerも意外と画面から受け取ったデータを渡したり、
逆にModelから返ってきた正常・異常メッセージを画面に返したり。大忙しだったりします。
理想は違うのですが、大体の開発現場では
Controllerは
ViewとModelがしないことを全部やる
感じになっているので大忙しです。
Controllerは上司と部下に挟まれる中間管理職とでも覚えておきましょう。
メリット
MVCモデルの型を覚えると初心者は何が得するのでしょう?
MVCモデルに意味があるというよりかは
『MVCモデルという型を使う』
ということを開発者全員でルールを決めることで、受けられる恩恵があります。
MVCモデルのように型を決めて開発する場合、以下のメリットがあります。
・開発の効率・品質が上がる
・チーム開発に有利
開発の効率・品質が上がる
M・V・Cそれぞれに役割があるので
例えば画面の開発を依頼されたときに
『Viewの部分を作成すればいいんだな』
とかイメージがしやすくなります。
コードを書く場所がイメージしやすくなりますので、当然保守もしやすくなり、開発の効率や品質があがります。
チーム開発に有利
またチーム開発にも適しています。
一人で開発する場合は、M・V・Cなどプログラムごとに役割を設けなくても、自分の頭の中にプログラムの設計が入っているので、極端な話MVCの型なんて無視しても問題ないです。
なので。
ただ、チームで開発する場合は、全員が頭の中にプログラムの設計が入っているわけではないので、MVCモデルで開発するとコミュニケーションロスが減ります。
補足:デザインパターンについて
以上で説明は終わりですが、1つ補足します。
今回説明したMVCのような『型』のことを
デザインパターン
と呼んでいます。
初心者は無理にデザインパターンを覚える必要はないのですが、覚えるほど、様々な開発現場で活躍できると思います。
このMVCというデザインパターンは
著書「オブジェクト指向における再利用のためのデザインパターン」で紹介され注目を集め、有名になりました。
興味があれば読んでみることをお勧めします。