LoginSignup
1
2

More than 1 year has passed since last update.

MVCについて

Posted at

はじめに

Webアプリケーションフレームワークでよく用いられるMVCモデル。
当たり前のように使ってきたモデルだが、改めてどんなメリットがあり、どんな特徴があるのか
頭の中を整理したくてこの記事を作成した。

この記事の対象者

  • これからMVCモデルを使う人
  • ざっくりMVCモデルを知りたい人

MVCモデルって何?

MVC は、Webフレームワークで一般的に取り入れられているアプリケーション設定を整理するための概念の一つです。
モデル(Model)頭文字「M」、ビュー(View)頭文字「V」、コントローラー(Controller)頭文字「C」で「MVC」と言います。

参考:https://www.geekly.co.jp/column/cat-technology/1911_040/#MVC-2

Model、View、Controllerという役割ごとにディレクトリが分かれている。
image.png

モデル(Model)って何?

データの管理とビジネスロジックを担当している。
データの管理とはDBとのやり取り、ビュー/コントローラーが欲しい形に整形することを指す。
O/Rマッピングという手法を使えば、モデルの記載をもとに、SQLを書かずにデータベースのテーブルを作成したり
CRUD処理を行うことが可能。

ビュー(View)って何?

UIの表示を担当している。モデル→コントローラーとわたってきたデータを画面に表示させる。
画面表示用に、for文、if文のような簡単なロジックを書くことも可能。

コントローラー(Controller)って何?

ユーザーの入力を受け付けて、モデルとビューの仲立ちをする。

メリット

複数人に分かれて実装する際に、役割分担がしやすい

画面実装が得意なAさんはView、ロジック書くのが得意なBさんはModel、といった分担が可能。
(私はMVCモデルを現場で使ったことがない、珍しいよわよわエンジニアなので、本当にこんな分担がされているかは不明。)

保守性が高くなる

例えばだが、テストで画面上の表示にエラーがわかったとする。
MVCモデルに則って実装していれば、「まずはViewを確認しよう」となり、
予測を立ててバグ潰しができる。

使っているフレームワークが多いので、一度覚えると潰しがきく

MVCを使うメリットというより、覚えておくとメリットがあるという話。
MVCモデルを使用している代表的なフレームワークは以下の通り。
他にもまだまだあるので、構造を覚えておくと潰しがきいてよい。

  • Spring Boot(Java)
  • Spring MVC(Java)
  • ASP.NET Core(C#)
  • Rails(Ruby)
  • Laravel(PHP)
  • CakePHP(PHP)
  • etc...

理解している人が多いので、現場で使いやすい

これは、現場で使用するフレームワークを検討している人向け。
MVCモデルのフレームワークを選ぶとこんなメリットがあるよという話。

まとめ

  • モデルはデータの管理担当
  • ビューは画面担当
  • コントローラーはリクエストを受け付けて、モデルとビューの仲介担当

参考文献

1
2
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
1
2