RailsのMVCとはなにか?
先日、エンジニアの知人より、
という話を聞きました。 基礎概念の理解の大切さが身に沁みたので、 改めて、MVCとは?アーキテクチャとは?をまとめてみようと思います。
まず、アーキテクチャってなに?
ソフトウェアやハードウェアの「基本的な設計概念」のことです。
MVCってなに?
M model
- そのアプリケーションが扱う領域のデータと手続きを書く場所
- データ、ビジネスルール、ロジック、関数など。
V view
- UIへの出力を担当する場所。
C controller
- 入力を受け取りmodelとviewへの命令に変換する
つまり、RailsのMVCはそれぞれ何をしているの?
- Model
- データベースとのやり取りをする場所。モデルクラス(Active Record)とデータベース(テーブル)を作成する。
- View
- その名の通り、画面を表示するファイル。HTMLタグの合間にERBを含む形式で書かれる。
- Controller
- 司令頭。リクエストを受け取り、データをモデルから取得したりモデルに保存したりして、最後にビューを用いてHTML出力を生成する。
まとめ
以上、Railsのアーキテクチャの説明でした。 それぞれのコードがあるべき場所にあること、意外と難しいです…。 Viewについif分岐を書いてしまうことがよくあります。 (本来きちんとヘルパーに切り出すべき) しっかり意識して良いコードを書いていきたいですね!