サイトリニューアル作業が長引いて、記事がなかなか増やせなくてすみません。
今日はMVCモデルについて調べてみましたので、書いてみます。
目次
MVCモデルとは
私が勉強しているRailsはMVCモデルというフレームワークが採用されています。
MVCそれぞれを簡単にまとめると以下のようになります。
M:Model(モデル)
処理(ビジネスロジック)を担当します。
Railsの場合は大体DBへのアクセスを示す場合が多いようです。
要求された処理を行い、結果を返します。
V:View(ビュー)
表示や出力といったユーザインタフェースを担当します。
ユーザに表示するHTML/CSSを作成するのが役目です。
C:Controller(コントローラ)
モデルとビューの制御や中継といった処理を担当します。
Railsの場合は表示指示やロジック、DBへの処理を行うことが多いようです。
つまり、ユーザからの入力を基にしてモデルへ処理を依頼したり、ビューに対してユーザに表示する内容を渡したりします。
どんなプログラムがある?
例えば何らかのシステムへのログイン処理をMVCモデルで考えたとします。
Web画面にログイン情報としてユーザ名とパスワードを入力して「ログイン」ボタンを押すと、マイページが表示されるといったシステムを作ることができます。
このまま例として「ログイン」ボタンを押した後の処理を考えたとすると、
- ビューにて得たユーザ名とパスワードをコントローラに渡す。
- コントローラはビューから得たログイン情報を加工する。
- コントローラは加工した情報を基にモデルに問い合わせる。
- モデルは問い合わせ情報を基にDBを確認する。
- モデルはDBに合致するデータがあればコントローラに登録されているユーザであることを反す。
- コントローラは結果を受けてログイン処理を行う。
- コントローラはマイページを表示するようにビュー指示を出す。
- ビューはマイページを表示する。
といった感じで、モデル、ビュー、コントローラが連携をして処理を行います。
ちなみに2番の加工とはパスワードの暗号化処理などを想定しています。
調べてみての感想
理解はできたけど、実際にソースコードを書くときに迷いそうではありますね。
Railsも奥が深いです。