はじめに
こんにちは!
社会人一年目の石川です。
記事をご覧いただきありがとうございます。
今回は、MVCモデルについてまとめました。
目次
- MVCモデルとは?
-
MVCモデルのそれぞれの役割
・M(モデル)
・V(ビュー)
・C(コントローラ) -
MVCモデルのメリットとデメリット
・MVCモデルのメリット
・MVCモデルのデメリット - 最後に
MVCモデルとは?
MVCモデルはアプリ開発においてコードを整理する考え方のことです。
MVCは、モデル(Model)、ビュー(View)、コントローラー(Controller)の頭文字を取ったもので、それぞれの役割を明確に分離します。この3つが独立して連携することで、コードの管理が容易になり、開発効率が向上します。
つまり、役割によってどこに何のプログラムを書くかルール化された開発方法の一つです。
効率を最優先する場合や、開発スタッフの負担を軽減する場合に適した開発方法
MVCモデルのそれぞれの役割
次は「MVC」のそれぞれの役割についてです。 MVCの役割は色々ありますが、ここでは一般的に考えられている役割について紹介していきます!
M(モデル)
モデルではDB操作に関わる処理を作ります。
タスク(やること)を登録するプログラムを例にします。
アプリの完成画面には、既に登録されているタスクの一覧が表示されています。
このようなアプリを作る場合、DBに登録されているタスクのデータを取得し、画面に表示する指令をコンピューターに出さなければなりません。このとき、DBから取得する指令を書く場所がモデルです。
V(ビュー)
ビューでは画面を表示する処理を作ります。
ユーザーが見る画面を作ります。モデルの説明同様、タスクを登録するアプリを再度例にします。モデルではデータを取ってきただけなので、取ってきたデータを表示する画面を作る必要があります。それを行うのがビューとなっています。どこに何が入ってくるかがわかるように、画面の元となる素材を作るイメージです。
C(コントローラ)
コントローラではモデルとビューの橋渡しとなる処理を作ります。
モデルでデータ取得、ビューで画面の作成などを指示するのがコントローラです。つまり、モデルとビューの処理をコントローラが制御してコンピュータ画面にその結果を表示させています。コントローラがモデルとビューとコンピュータ画面の間で橋渡しをしているイメージです。
コントローラでは例えば次のような指令を出します。
1.モデルに指示を出して、DBからデータを取得
2.取得したデータをビューに渡して、画面を作成
3.パソコンの画面に、ビューで作った画面を表示する
MVCモデルのメリットとデメリット
MVCモデルのメリット
それぞれの役割が明確化されている
モデル、ビュー、コントローラに役割が分かれているので、どこに何を書けばいいかわかりやすいです。そのため、どんなファイル構成にしてアプリを作ろうかを考えなくてもアプリを作ることができ、効率的に開発ができます。
保守性が高い
アプリは開発してから機能を追加することはよくあります。そのとき、プログラムに修正が必要となるケースもあります。このような場合でも、機能を追加するためにどこに何を書いたら良いか役割がわかれているので、見るだけで判断しやすくなります。
分担して開発しやすい
モデル担当、ビュー担当、コントローラ担当のように分担することができます。画面のデザインが得意な人、DB処理が得意な人のように、分担できるので1つの機能を作り終えるまでにかかる時間も少なくなります。このようなことから結果として効率的に開発できるようになります。
MVCモデルのデメリット
情報データの管理が大変
それぞれの機能を書き分ける必要があるため、コード記述に制約が増えることにつながります。場合によってはかえって時間がかかってしまう可能性もあります。
コントローラーの処理が大変
機能拡張により、データベースとのやり取りやデータ変換を行うモデル部分やその仲介をするコントローラ部分に負担がかかることで、処理速度が遅くなってしまう可能性が生じます。
「V」と「C」の依存性が高い
コントローラからモデルへの支持が増大しすぎることで、モデルのコントローラへの依存度が高くなってしまい、MVCモデルのメリットである機能ごとの独立性を保てなくなる恐れがあります。
最後に
今回はMVCモデルについてまとめました。
PHPの「Laravel」やRubyの「Ruby on Rails」など、非常に多くのフレームワークがこのMVCモデルを採用しているので、理解を深めて開発効率を上げられるように頑張ります!
最後まで読んでいただきありがとうございました。