はじめに
今回はRubyonRailsなどで用いられているMVCというものについて解説していきたいと思います。Railsをはじめ、MVCを採用しているフレームワークは多くあると思います。RailsにおいてはRailsチュートリアルやProgateでも初めの方で解説していることからこの構造を理解しておくことは非常に重要です。今まであまり考えずに使用してきたのであれば、この際詳しく知っておくと良いでしょう。
MVCとは
ソースコードをそれぞれ
・モデル(Model)
・コントローラー(Controller)
・ビュー(View)
の3つに分割して管理しようという考え方の1つです。それぞれの頭文字を取ってMVCとなっています。
モデル(Model)
例えば投稿した人の名前や投稿したテキストなどを保存する際などにデータベースとのやりとりをします。データの登録・更新・削除などの処理を行います。
コントローラー(Controller)
モデルにデータ処理の指示を出したり、ビューに画面表示の指示を出したりする指示役です。
ビュー(View)
Controllerからレスポンスデータを受け取って画面に表示します。HTMLを構成する見た目の部分です
※ルーティングとは
MVCの頭文字には入っていませんがルーティングも重要な役割を果たしていますので覚えておくと良いでしょう。主にリクエストが来たときにどのコントローラーのどのアクションを呼び出すのかを設定します。
MVCをレストランに例えると・・・・
と、ここまでは調べるとこんな流れで書かれていると思いますが、ここでちょっとMVCというやつをレストランで例えてみましょう。下の図になります
MVCを採用する理由は?
ズバリ、役割分担がしやすいからです
レストランでも1人で接客して、料理を取り出して、料理を作って、料理を渡して、さらに皿洗い・・なんてなると大変ですよね。小さい個人店なら実際にあり得ますが多くの顧客を迎え入れようとすると1人でのルーティンは難しそうです。ゆえに店長は全体の流れを見て人を動かす、シェフは料理を作る、洗い場の人は洗うことに専念するなどの役割分担が効率的ですよね。
MVCでも同じようにビューの部分はデザイナーに任せ、モデルとコントローラーの部分をエンジニアに任せるなどの分業がしやすいのが特徴です。
おわりに
いかがだったでしょうか?MVCの流れを理解しておくとRailsをやっていくうえで今自分が何をやっているのか、エラーがどこで出ているのか把握しやすくなると思います。Rails初心者の方は是非この流れを覚えておくと良いでしょう。