アプリケーションを開発する上で効果的なデザインパターン
Model View Controller (MVC)についてまとめてみる。
MVCとは
MVCとはアプリケーションを3つの主要なパーツに分割し効率よく開発するデザインパターンである。
以下の図がMVCを表す概略図である。
https://qiita.com より引用
MVCは、Model、View、Controllerの3つから構成されて
おりその頭文字をとってMVCと名付けられている。
また、それぞれ役割がある。
Modelとは
Modelでは主にビジネスロジックを記述する。Modelはアプリケーションそのものであり
データベースの操作も絡んでくる。
例えば、データの検索、変換、処理、検証、関連づけなどは
Modelで開発される。
よって、開発するアプリケーションによって
Modelのオブジェクトは異なることに注意しなければならない。
Viewとは
Viewでは、Modelの表示や入出力を担当する。モデリングされたデータの表現を描写したりする。
これは、ユーザが直接触れるだろう動画や音楽などの
データを指している。
Controllerとは
Viewの入力を受け取って判断し、Modelを起動する。また、Modelの結果をViewに渡す。
そして、Controllerではユーザからのリクエストも扱う。
MVCを扱うメリット
・アプリケーションを分割することで効率的に開発できる→MVCは独立性があるため仕様変更に柔軟に対応できる
・古い機能の改変、新しい機能の追加を簡単に行うことができる
→独立性が保たれているため、各3つのパーツは複雑に紐づいていないため
追加、削除を行いやすい
・開発者とデザイナーが同時に作業できる
→同時に作業できるので迅速にプロトタイピングできる
MVCを扱うデメリット
・開発方法によってMVCどれかを肥大化させる可能性がある
→肥大化することでトラブルの原因にもなりかねないので開発チームメンバーとよく相談してMVCを定義する必要がある。チーム内規約をアプリケーションごとで確認するなど日々意識してアプリ開発をする。
・定義が人によって曖昧なのでそれぞれがMVCを適用するとシステムがぐちゃぐちゃになる
→これも上述と同様にチーム内規約を作り、MVCを明瞭化させることで防ぐことができる。チーム内規約の例としては、チームとしてやってはいけないことを決めておくなど。また、定期的にコードレビューを行いチームにとって最適なMVCを保てているか確認をする。
まとめ
MVCはModel、View、Controllerで構成されていることはどこの開発グループでも同じだろうが、開発グループによってさらには
案件によってMVCの規則はさらに細分化されて決まっている可能性がある。
もし、何かのプロジェクトでMVCを元に開発を進めているのならば
開発チームのメンバーと日々コミュニケーションをとって
効率よく開発を進めていきたい。