MVCって何だろうか。


MVCって何

 ウェブシステムの本を読むと,必ず「MVC」ということばが載っています.もう30年以上前から考えられている概念で,デザインパターンの一種,いや,元祖です.
 MVCのMはモデル.Vはビュー.Cはコントローラ.何のことだかさっぱりという人に分かるように書きたいと思います.
 MVCというから分かりにくい気もします.ここでは,CVMといってしまいます.コントローラ,ビュー,モデル.

コントローラ

 まず,コントローラってなにか.昔無線でラジコンって流行りましたよね.あと,任天堂のゲーム機もコントローラを持って遊びますよね.テレビにもリモコンがあります.こういう,操作するための「操縦」装置をコントローラといいます.そしてこれはつまり「入力」装置なんですね.

ビュー

 そして,ラジコンもゲームもテレビも,動いている様子を見ますよね.ラジコンで飛んでいる飛行機模型や,液晶画面,テレビ画面.そういうコントローラで動かしているのが分かるような装置をビューといいます.つまり「出力」装置ですね.

モデル

 そして,ふつうは入力と出力があれば充分楽しいのですが,作る側のことを考えると,もうひとつ大事なものがあります.何だかわかりますか.それは,データの処理です.入力装置からのデータを出力するために,データをどうにかしなければなりません.そのデータをモデルというんですね.
 データですから,大抵のウェブシステムはデータベースを使います.データベースが使えない環境でも,モデルにデータを持つ処理を書きます.こうしてデータを保存するところを作って,入力データを入れて,出力データを出して,システムは動きます.その出し入れをうまく行うために,モデルを書くんですね.
 どこにデータを持つか.これは重要です.それに劣らず,どうやってデータを見せるか,どこからデータが入ってくるか.これも重要.もうお気づきのように,データの持ち方はモデル,データの見せ方はビュー,データの入り方はコントローラなのです.ようやくMVCの順になりました.

まとめ

 MVCは30年以上前からある考え方で,ゲーム機もテレビもウェブサイトも,この考え方を知っているエンジニアが作ってきました.そのくらい,ウェブをエンジニアリングしやすくする考え方なので,ぜひこの先へ進んでいってください.