MVC2
Model-View-Controller の3層に大まかにアプリケーションを分割して構築する手法。
2020年現在に於いては MVC というと MVC2 のことを指す事が多い。 MVC2 を採用しているフレームワークが Webアプリケーション向けのものが多い。
以下は Webアプリケーションと言う枠組みを前提に各要素を大まかに記載する。
処理の流れは諸説あるが大まかな理解として、Controller→Model→View という流れになる。
Model
大雑把に、アプリケーションのコア実装を格納する。
特にRuby on Railsの場合、Active Record を継承したモデルは、Active Recordモデルと呼ばれ、データベースの操作構造を提供するものとして機能する。データモデルと呼ばれることもある。 逆に Active Record を継承しない場合はデータベースの操作とは無縁となる。Form Model や Service Model と呼ばれる形で実現されるが厳密には「Rails Way」やRailsの基本的に想定する機構ではない。 Model間で重複する処理やコードについてはDRY原則に基づき Model や Controller の Concern という仕組みに切り出し共通化することで重複を防ぐ。 View
HTML や JSON を生成する層
ブラウザやクライアントアプリケーションへのレスポンスを形成する
オールインワンフレームワークで提供される場合、何らかのテンプレートエンジンに対応する、テンプレートそのものの実装を指す
Ruby on Rails であれば標準は ERB
Laravel であれば標準は Blade
など
Controller
Webアプリケーションの場合は Controller はWebアプリケーションそのもののURL設計を兼任する。
ユーザーからのアクセスを起点に、入力値を Model に伝播し、結果を View に渡し結果を得るための層。