MVCとは、ソフトウェア開発で使用される設計モデル・概念の一つで、「Model」「View」「Controller」の頭文字を取ってMVCと略して呼ばれています。MVCでは、役割ごとにコードを分けるため分担作業を行いやすく、システムの保守性や生産性の向上につなげることができます。今回はこのMVCについて紹介します。
MVCについて
Model・View・Controllerとは
Modelとは、ソフトウェア開発のデータやロジックを担う部分(ビジネスロジック)のことですで、データ処理や操作を行う役割を持っています。Viewとは、表示や入出力などのユーザーインターフェースのことで、Modelの情報をユーザーが目に触れる部分で表現する役割を持っています。Controllerとは、ユーザーとModel、Viewの間に位置し、ユーザーの入力に基づき、ModelとViewを制御する役割を持っています。
MVCの具体例
ここではYouTubeを事例にMVCを説明していきます。 まずModelは、YouTubeの場合、画面上のボタンになっている部分をクリックするとページが遷移したり、キーワードで検索すると該当する動画が表示される、といった機能にあたります。 次にViewは、YouTubeの場合、動画一覧ページ、動画閲覧ページ、マイページなどの表示されるWeb画面にあたります。 最後にControllerでは、ユーザーのある動作(○○のボタンをクリックするなど)が行われた時に、何を表示してどのような動きをするかを制御しています。
MVCのメリットとデメリット
MVCのメリット
MVCのメリットは以下の2点です。
- 保守性の向上
コードが役割ごとに独立しているため、Viewでバグが発生した場合でもControllerやModelに影響はなく、より少ない範囲を影響をとどめることができます。また原因特定を行う際にも、調査範囲を限定することができます。 - 生産性の向上
コードが役割ごとに独立しているため、コードが複雑化せず、作業・管理が効率化されます。また複数人で作業を行う際に、役割分担が行いやすくなります。
MVCのデメリット
MVCのデメリットは以下の3点となります。
- 小規模プロジェクトには不向き
コードを分割して開発を行うため、小規模プロジェクトの場合はかえって手間がかかる場合が多くなります。 - 処理速度の低下
コードが分割されるため、処理速度が遅くなる可能性があります。 - 柔軟性の低下
オブジェクト間のやり取りもモジュールをまたぐため、細かい部分で制約が生じる可能性があります。
エンジニアからのアドバイス
MVCはメリットの大きい設計モデルですが、プロジェクトによってはデメリットの方が大きくなる場合もありますので、プロジェクトごとに適切な設計モデルを検討するようにしましょう。
