【ゼロからわかる】MVCモデル!未経験者が確実に押さえたいデータの流れ

MVCモデルIT用語
スポンサーリンク

MVCの理解が学習効率と転職可能性を高める

今回は「MVCモデル」についてお話します。

MVCモデルが理解できると3つのメリットがあります。

  1. 処理の流れに沿ってコードが書けるようになる
  2. エラーが発生したときにも原因が見つけやすくなる
  3. 転職時にプログラミングの基礎理解を示せる

データの流れが理解できるようになるため、どの場所に何を書けばいいかわかるようになります。

その結果、エラーが発生した時に「この場合はコントローラーまで値が来ていないから、ビュー側の問題だな」というように原因を切り分けられるようになります。

転職を前提にプログラミングを学ぶなら、確実に理解しておきたいところです。企業はフレームワークを使ってなんとなくアプリを作成した人か、裏側の仕組みまで理解しているか確認します。

つまり、自分で考えて行動しているか、言われたままなんとなく行動しているかを見極めようとします。その時の質問が「MVCとは何か?」になります。

「自分で考えて行動できる」を示すために、今日でマスターしてしまいましょう

MVCモデルは役割分担の仕組み

役割を知る

MVCモデルとはModel(モデル)、View(ビュー)、Controller(コントローラ)が役割分担することで、効率的に開発する仕組みです。

仕事でも、効率的に行うために役割分担しています。指揮をする管理職がいて、その下に広報担当、経理担当がいるのと同じです。

プログラムをバラバラに組むと「どこで何をやっているのかわからなくなる」ので、役割と処理順をルール化して運用しています。その手法の一つがMVCモデルです。

それぞれの役割はこうなります。

モデル:データベースとやり取り
ビュー:ユーザーの目に見える部分の表示
コントローラー:モデルとビューに仕事を割りふる役割

先程の例で言えば、モデルが経理担当、ビューが広報担当、コントローラーが管理職みたいなものです。

 

スポンサーリンク

具体例で考える

ここから具体的な例で見ていきましょう。

「アクセスしたユーザーの氏名をデータベースから取得して表示する場合」を考えます。

クライアントからリクエストが送られると、どのコントローラーが行う処理か決めます。

リクエストがよくわからない方はこちらを先に読んだほうが理解が深まります。

コントローラーは「ユーザーに関すること」「商品に関すること」のように役割によって複数存在します。企業のPRに関することの場合、会社内の全部署の中から広報部に任せるイメージです。

リクエストに対してどのコントローラーが担う処理か決めることを「ルーティング」といいます。

 

今回のリクエストの場合、やらなければいけない仕事は2つあります。コントローラーは各仕事をモデルとビューに振ります。

①データベースから氏名を見つけてくること→モデル
②見つけた氏名を画面に表示すること→ビュー

それぞれが仕事をした結果次のような流れになります。

①【指示】コントローラー→モデル
データベースから氏名情報探索依頼「モデルくん調査よろしく!」

②【調査】モデル→データベース
データベースへアクセス「氏名情報見つかるかなぁ・・」

③【情報取得】データベース→モデル
氏名の情報を取得「うぉぉぉぉ!見つけた!」

④【報告】モデル→コントローラー
データベースから氏名情報をコントローラーに渡す「氏名情報見つけました!0.001秒かかりました」

⑤【指示】コントローラー→ビュー
モデルを経由して取得した氏名の情報をビューに渡す「氏名情報画面に表示していてね」

これで、ビューに氏名の情報が渡されて画面に表示できるようになるわけです。

まとめ

MVCモデルとは、Model(モデル)、View(ビュー)、Controller(コントローラ)が役割分担することで、効率的に開発する仕組み。
モデル:データベースとやり取り
ビュー:ユーザーの目に見える部分の表示
コントローラー:モデルとビューに仕事を割りふる役割

MVCモデルが理解できると、エラーの発見が簡単になります。ビューに問題があるのか、コントローラーに問題があるのか、モデルに問題があるのか切り分けられるからです。

未経験エンジニア転職ではMVCモデルを問われることも多いです。「何もわかってない人」を簡単にあぶり出すことができるからです。

逆に、最初に理解してしまえばコードの理解が進む・エラーが特定できる・転職に強くなるとメリットだらけです。

コメント

タイトルとURLをコピーしました