MVCってなんだろう?

 ウェブシステムの本を読むと,「MVC」ということばが必ず載っています.もう30年以上前から考えられている概念で,デザインパターンの一種,いや,元祖です.
 MVCのMはモデル.Vはビュー.Cはコントローラ.何のことだかさっぱりという人にも分かるように書きます.
 MVCというから分かりにくいという気もします.CVMといってしまいます.コントローラ,ビュー,モデル.
 まず,コントローラってなにか.昔無線でラジコンって流行りましたよね.あと,任天堂のゲーム機もコントローラを持って遊びますよね.テレビにもリモコンがあります.こういう,操作するための「操縦」装置をコントローラといいます.そしてこれはつまり「入力」装置なんですね.
 そして,ラジコンもゲームもテレビも,動いている様子を見ますよね.ラジコンで飛んでいる飛行機模型や,液晶画面,テレビ画面.そういうコントローラで動かしているのが分かるような「確認」装置をビューといいます.つまり「出力」装置ですね.
 そして,ふつうは入力と出力があれば充分楽しいのですが,作る側のことを考えると,もうひとつ大事なものがあります.何だかわかりますか.それは,データの処理です.入力装置からのデータを出力するために,データをどうにかしなければなりませんね.そのデータをモデルというんですね.
 データですから,大抵のウェブシステムはデータベースを使いますね.データベースが使えない環境でも,モデルにデータを持つ処理を書きます.こうしてデータを保存するところを作って,入力データを入れて,出力データを出して,システムは動きます.その出し入れをうまく行うため,モデルを書くんですね.
 どこにデータを持つか.これは重要です.それに劣らず,どうやってデータを見せるか,どこからデータが入ってくるか.これも重要.もうお気づきのように,データの持ち方はモデル,データの見せ方はビュー,データの入り方はコントローラなのです.ようやくMVCの順になりました.
 いかがでしょう.MVCは30年以上前からある考え方なので,ゲーム機もテレビもウェブサイトも,この考え方を知っているエンジニアが作ってきたと思います.そのくらい,ウェブをエンジニアリングしやすくなる考え方なので,ぜひこの先に進んでいってほしいです.
 それでは,またどこかで.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です