aoのプログラミングブログ

あおのエンジニア学習日記

初心者のプログラミング学習記録。

RailsのMVCとはなにか?

f:id:ao_pro_21:20220125114026p:plain

先日、エンジニアの知人より、

RailsアーキテクチャMVCMVCアーキテクチャに則って、あるべき場所にあるべきコードがあるのが良いコード。

という話を聞きました。 基礎概念の理解の大切さが身に沁みたので、 改めて、MVCとは?アーキテクチャとは?をまとめてみようと思います。

まず、アーキテクチャってなに?

ソフトウェアやハードウェアの「基本的な設計概念」のことです。

MVCってなに?

  • MVCとは、UIを持つアプリケーションを実装するためのデザインパターンのことです。
  • アプリケーションが持つ内部データを、ユーザーが直接参照・編集する情報から分離しているのが特徴です。

M model

  • そのアプリケーションが扱う領域のデータと手続きを書く場所
  • データ、ビジネスルール、ロジック、関数など。

V view

  • UIへの出力を担当する場所。

C controller

  • 入力を受け取りmodelとviewへの命令に変換する

つまり、RailsMVCはそれぞれ何をしているの?

  • Model
    • データベースとのやり取りをする場所。モデルクラス(Active Record)とデータベース(テーブル)を作成する。
  • View
    • その名の通り、画面を表示するファイル。HTMLタグの合間にERBを含む形式で書かれる。
  • Controller
    • 司令頭。リクエストを受け取り、データをモデルから取得したりモデルに保存したりして、最後にビューを用いてHTML出力を生成する。

まとめ

以上、Railsアーキテクチャの説明でした。 それぞれのコードがあるべき場所にあること、意外と難しいです…。 Viewについif分岐を書いてしまうことがよくあります。 (本来きちんとヘルパーに切り出すべき) しっかり意識して良いコードを書いていきたいですね!

参考資料