80
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MVCをレストランに例えてみた

Last updated at Posted at 2024-08-10

はじめに

今回はRubyonRailsなどで用いられているMVCというものについて解説していきたいと思います。Railsをはじめ、MVCを採用しているフレームワークは多くあると思います。RailsにおいてはRailsチュートリアルやProgateでも初めの方で解説していることからこの構造を理解しておくことは非常に重要です。今まであまり考えずに使用してきたのであれば、この際詳しく知っておくと良いでしょう。

MVCとは

ソースコードをそれぞれ
・モデル(Model)
・コントローラー(Controller)
・ビュー(View)

の3つに分割して管理しようという考え方の1つです。それぞれの頭文字を取ってMVCとなっています。


モデル(Model)
例えば投稿した人の名前や投稿したテキストなどを保存する際などにデータベースとのやりとりをします。データの登録・更新・削除などの処理を行います。

コントローラー(Controller)
モデルにデータ処理の指示を出したり、ビューに画面表示の指示を出したりする指示役です。

ビュー(View)
Controllerからレスポンスデータを受け取って画面に表示します。HTMLを構成する見た目の部分です

※ルーティングとは
MVCの頭文字には入っていませんがルーティングも重要な役割を果たしていますので覚えておくと良いでしょう。主にリクエストが来たときにどのコントローラーのどのアクションを呼び出すのかを設定します。

MacBook Air - 1.png

MVCをレストランに例えると・・・・

と、ここまでは調べるとこんな流れで書かれていると思いますが、ここでちょっとMVCというやつをレストランで例えてみましょう。下の図になります

MacBook Air - 2.png

MVCを採用する理由は?

ズバリ、役割分担がしやすいからです

レストランでも1人で接客して、料理を取り出して、料理を作って、料理を渡して、さらに皿洗い・・なんてなると大変ですよね。小さい個人店なら実際にあり得ますが多くの顧客を迎え入れようとすると1人でのルーティンは難しそうです。ゆえに店長は全体の流れを見て人を動かす、シェフは料理を作る、洗い場の人は洗うことに専念するなどの役割分担が効率的ですよね。

MVCでも同じようにビューの部分はデザイナーに任せ、モデルとコントローラーの部分をエンジニアに任せるなどの分業がしやすいのが特徴です。

おわりに

いかがだったでしょうか?MVCの流れを理解しておくとRailsをやっていくうえで今自分が何をやっているのか、エラーがどこで出ているのか把握しやすくなると思います。Rails初心者の方は是非この流れを覚えておくと良いでしょう。

80
60
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
80
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?