【プログラミング基礎】Rails と MVC
Rails とは
Rubyプログラミング言語で書かれたwebアプリケーションフレームワークのこと。
特徴はざっくり2つ
- DRY (繰り返し記述することを避けてシンプルに書こう)
- CoC (設定よりも規約を優先しよう)
フレームワークは骨組みということですが、それらをうまく組み合わせて使うことで簡単にアプリケーションが作れる仕組みになっています。
また、Ruby on Rails はMVC構造でできています。
MVC構造とは
- Model (モデル)
- View (ビュー)
- Controller (コントローラー)
という要素の頭文字を取ったもので、web上の見た目と内部データを分ける「ソフトウェア開発の設計パターン」のことです。
それぞれの役割について
MVCはそれぞれ明確な役割を持っています。
* Model データベースとのやり取りを行い、情報の管理をしている。
* View ユーザーに対して見た目を作るなど、表示・描画を行なう。
* Controller リクエストを受け取り、レスポンスを返す処理を統括する。
1行で簡単に書いてしまうとこんなイメージです。
ユーザーである私たちがリクエストを送ると、ルーティングで情報の行き先が振り分けられ、コントローラーでそれらのリクエストを受け取り、データベースとのやり取りが必要であればモデルにお願いして、リクエストに対するレスポンスの準備ができたらビューを通して返していくという情報の一連の流れが必ずあります。
簡単に書いてしまえば簡単にも思えますが、この流れや概念をきちんと理解しておくことはとても重要なことです。
なぜMVCの流れを理解しておく必要があるのか
- Ruby on Rails だけでなく、PHPのフレームワークや他の言語でもMVCの概念は利用されているため、汎用性がある。
- コードを書くときに、情報の受け渡しや流れを意識することができる。
- エラーが出たときに、仮説を立てやすく要因を突き止めやすくなる
まだ学習1ヶ月という段階ですが、個人的にはこういった点で必要性を感じています。
終わりに
以前書いたActiveRecordに関する記事は、このModelがデータベースとやりとりするときに使っているという話だったので、少し関連性もあるかなと思います。
学習したことを言語化して表現するのは大事だけど、難しいですね、、毎回拙い文章になってしまいます、、。