1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

アプリ制作の基礎"MVCの機能"の簡単まとめ

Last updated at Posted at 2021-04-17

“初学者向け基礎知識”
WEBアプリにおける”MVC”という機能について

”そもそもWEBアプリケーションの仕組みとは?”

WEBアプリケーションを一言で表すと、
”WEBで公開されているプログラム”のことです。
クラインアントがリクエストを送り、WEBアプリがレスポンスを返します。

例えば、”Twitterにログインしている状態で自分のプロフィール画面を表示する”場合。
ここでは、
・クライアント=自分(ログインしているユーザー)
・WEBアプリ=Twitter
・リクエスト=プロフィール画面を見たいので「プロフィール」ボタンをクリック
・レスポンス=アカウントのプロフィール画面を表示

このように、WEBアプリでは「リクエストとレスポンス」のやり取りが行われています。

"MVCの言葉の意味"

MVCとは「アプリケーション内での処理の機能の総称」です。

それぞれ機能の頭文字を取ってM・V・Cとなっています。
・M:Model(モデル)。データに関わる処理を行う。
・V:View(ビュー)。ブラウザにレスポンスとして返す見た目を決める。
・C:Controller(コントローラー)。ルーティングからリクエストを受け取り、決められた処理を行う。ModelとViewの橋渡しの役割をしている。最終的にクライアントにレスポンスを返す。

また、MVCの前にルーティングも合わせて理解する必要があります。
それは下記の処理の流れで触れます。

”WEBアプリケーションの処理の流れ”

大まかな処理の流れは次の通りです。
1.クライアントがリクエスト送る。
2.ルーティングでリクエスを受け取り、処理を振り分ける。
3.コントローラーで”ルーティングからのリクエスト”を受け取り、その内容によってモデル・ビューで処理を行い、最終的にクライアントへ”レスポンス”を返す。

図1.リクエストからレスポンスまでの処理の流れ
MVCの流れ.jpg

"MVCのメリット"

一言で表すと役割分担を明確にできる!

上記で述べた様に「MVC」には、
・Model:データに関する処理を行う。
・View:クライアントへの見た目を返す。
・Controller:ルーティングからリクエストを受け取り、ModelとViewにリクエストを送る。また、図1の通りModelとViewの橋渡しになってもいる。

という役割がそれぞれにあります。
この時、役割を分けずにコードを記述した場合どんな手間が発生するのかを考えました。

・MVCで記述をしない場合の問題その1

見た目の変更が起きた時に対処が大変!
→どこになんのコードがあるのかを探すが面倒!

・MVCで記述をしない場合の問題その2

条件分岐の記述が大変!
→仮に”A”と”B”のボタンを押したら”画面1”に遷移する。”C”のボタンを押すと”画面2”へ遷移する……など条件分岐がある場合、その分岐ごとにコードを記述したとします。その時点で、複雑で分かりにくい見た目にもなりますし、さらに後々にレイアウトの変更があったら、「問題その1」のように全てに変更を反映させるのに大変な労力を要します。

これらの問題を解決するために、役割ごとに分割をするということがとても重要になっています。
以上がMVCのメリットでした。

・参照URL

https://qiita.com/tshinsay/items/5b1724baf32b8b5113c2
→簡潔に説明してくれているので、軽く読める!
https://www.geekly.co.jp/column/cat-technology/1911_040/
→他のサイトよりも詳しく触れている。ある程度の理解がある人向け。
https://bap-software.net/knowledge/mvc-model/
→MVCの例えが分かりやすい!
https://kanda-it-school-kensyu.com/php-framework-contents/pfc_ch07/pfc_0701/
→ 神田ITスクールの記事です。信憑性が高いです。

以上がWEBアプリケーションにおける大まかな処理の流れとなります。
この流れを把握していると、エラーが発生した際に「どこに問題があるのか」を推測することが可能です。
各機能の詳細な処理の内容については、この記事内では触れませんのでご了承ください。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?