システム開発においての設計方針の一つに「MVCモデル」というものがあります。
このモデルは「Model」「View」「Controller」の3つに分けてコードを管理するものです。
MVCモデルのように役割ごとにコードを分けることで分担作業を行いやすく、システムの保守性や生産性につなげることができます。
この記事ではシステム開発の発注をご検討されている中で「MVCモデルって何?」「その設計を行うことでどういうメリットがあるの?」という疑問を持たれている方に向けて解説いたします。
MVCモデルとは
MVCモデルとは、プログラムを役割ごとにModel(モデル)・View(ビュー)・Controller(コントローラー)の3つに分けて管理するソフトウェア設計モデルのことです。
システムの保守性や生産性の向上を図ることができます。
Model・View・Controllerの頭文字を取ってMVCモデルと呼ばれます。
Model・View・Controllerはそれぞれ次の役割を担っています。
Model・View・Controllerとは
Model
ビジネスロジックを担当する部分です。
DBとデータをやり取りしたり、データの登録・更新・削除などの処理を行います。
DBから取得したデータや処理の結果はControllerに送ります。
View
表示や入出力などのユーザーインターフェースを担当する部分です。
HTMLなどユーザーが実際に見る画面にあたります。
リクエストデータをControllerに送ったり、Controllerからレスポンスデータを受け取って画面に表示したりします。
Controller
ModelとViewの制御を担当する部分です。
Modelにデータ処理の指示を出したり、Viewに画面表示の指示を出したりします。
MVCモデルの例
ECサイトで商品を購入した場合
ビジネスロジック = 商品の購入処理
- View ユーザーが商品を選択して購入ボタンをクリックする
- Controller ユーザーの購入情報をViewから受け取り、Modelに購入情報の登録を指示する
- Model ユーザーの購入情報をDBに登録し、登録処理の結果をContorllerに返す
- Controller Modelから登録処理の結果を受け取り、購入完了画面をViewに送る
- View 購入完了画面を表示する
メリットとデメリット
MVCモデルには次のメリットとデメリットがあります。
メリット
保守性の向上
コードが役割ごとに独立しているため、Viewでバグが発生した場合でもControllerやModelに影響はなく、影響を少ない範囲にとどめることができます。
また原因もより早く特定できます。
生産性の向上
コードが役割ごとに独立しているため分かりやすく、効率的にコードを管理できます。
作業の分担やコードの変更・修正もしやすくなります。
デメリット
処理速度の低下
コードが分割されているため、処理のスピードが遅くなる場合があります。
またオブジェクト間でやり取りをするため制約も設けられます。
分割作業の発生
コードが役割ごとにしっかりと分割されていない場合、分かりにくいコードになってしまいます。
そのためコードを分割するための手間が発生します。
MVCモデルのまとめ
MVCモデルについて解説いたしました。
- 「MVCモデル」とは、プログラムを役割ごとにModel(モデル)・View(ビュー)・Controller(コントローラー)の3つに分けて管理するソフトウェア設計モデルのこと
- 役割ごとにコードを分割することでシステムの保守性や生産性の向上を図る。
- デメリットとして処理速度の低下や分割作業の発生が上げられる。
末永くご満足いただけるシステムを開発
メディアファイブでは「システムは使いやすく長く付き合えることが大事」だと考えています。
大変ありがたいことに、メディアファイブが開発したシステムは、ほぼ全てのお客さまから納品後の追加発注をいただいております。
中には、機能の追加・変更をしながら10年以上お付き合いいただけているお客さまもいらっしゃいます。 これは「メディアファイブが開発したシステムにご満足をいただけた証」と光栄に思っております。
また、お打ち合わせはアットホームな雰囲気を心掛けており、システムに関係のないご相談を受けることもあります。
「IT用語に詳しくない…」というお客さまでも問題ありません。分かりやすく説明いたしますので、お気軽にご相談ください。
システム開発の発注をご検討されている方はぜひ、メディアファイブにお問い合わせください!ご相談は無料です。