LoginSignup
28
24

More than 5 years have passed since last update.

MVCという概念をさくっと理解するためのまとめ。

Last updated at Posted at 2017-06-30

概要

MVCについて改めて概念を理解しようと思い、さくっと読めるように短くまとめてみました。

MVCとは?

MVCはそれぞれ以下の言葉の頭文字をとったものです。

  • Model(モデル)
  • View(ビュー)
  • Controller(コントローラー)

それぞれについて見ていきましょう。

Model(モデル)

モデルはアプリケーションの中でビジネスロジックを担当する部分です。以下の処理を担当します。

  • データの検索
  • データの変換
  • データの検証
  • データの関連

コントローラーから受け取った処理に基づいて、必要なデータをDBで参照します。
DBから取得したデータを一時的に預かりコントローラーへ渡しますが、DBそのものではありません。

View(ビュー)

ビューはコントローラーから渡された(モデリングされた)データをHTMLなどで整形した状態を表現します。
またユーザーの入力を取得する部分でもあります。
ユーザーが実際に目にする部分だと思えば理解しやすいと思います。以下の流れです。

  • リクエスト(ユーザーの入力)を取得する
  • リクエストをコントローラーへ渡す
  • コントローラーから受け取ったデータをHTMLなどで出力する

Controller(コントローラー)

コントローラーは、ビューからのリクエスト(ユーザーの入力)を受け取り、モデルへのメッセージに変換します。
レスポンスとして処理後の画面をビューに返します。
またユーザーの処理に基づいてモデルをコントロールする部分でもあります。以下のような流れです。

  • ビューからリクエストを受け取る
  • 受け取ったリクエストに基づいて該当するアクションを実行しモデルに伝える
  • モデリングされたデータをモデルから受け取り、レスポンスとしてビューへ返す

どうしてMVC?

MVCを考慮する理由は、 開発の管理のしやすさ にあるのだと思います。
MVCを考慮して開発する場合、各要素が比較的はっきりと分かれるので、プログラムが見やすい状態になります。
また作業分担もわかりやすくなり 開発効率の向上を見込める というのがメリットです。

  • 開発管理がしやすい
  • 開発効率の向上を見込める

あとがき

さくっとMVCについてまとめてみましたが、開発手法にはいろいろあってそれぞれが独自の良さを持っているものだと思います。
案件の数だけ開発手法があり、流行り廃りがつきものであることもまた事実です。
社内でMVC開発を行う際は、こういったイメージをもって取り組みたいと思います。

参考にさせて頂きました

https://www.slideshare.net/MugeSo/mvc-14469802
http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636
https://book.cakephp.org/2.0/ja/cakephp-overview/understanding-model-view-controller.html

28
24
0

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
28
24