【Ruby on Railsの概要】Rubyの基礎【MVCモデル初心者向け】

Ruby on railsRuby on Rails

Rubyを学習したらもちろんWebアプリを作りたくなると思います。
そのときによく使われるフレームワークというのがRuby on Railsになります。
フレームワークと言われてもピンとこない方もいると思うので、ざっくり説明します。

今回はそのRuby on Railsフレームワークがなんなのかどういった利点があるのか説明します。

スポンサーリンク

Ruby on Railsとは

ざっくりいうと

  • RubyのWebアプリケーションフレームワーク

です。わかりませんね。。。

フレームワークとは

WebアプリケーションフレームワークとはWebアプリケーションの開発時に必要な基本的な機能がすでに用意されているので、全てを自分で設計する必要がなく、そちらを使用することで自分で書くコードを少なくすることができ、時間も節約できます。

また、記載の作法がある程度決まっており、こういったコードはここに書くべきということもルールもある程度決まっているので、複数メンバーで開発する際もみんなフレームワークに沿ってコーディングすることでみんなが読みやすいコードになり、可読性も上がります。

Railsの基本理念

Railsには基本理念と言われるものがあります。

同じことを繰り返すな(Don’t Repeat Yourself: DRY)

プログラムだと割と当たり前のことですが、大事なことです。

システムを構成するあらゆる部品は、常に重複することなく1つであり、明確であり、信頼できる形で表現されていなければならない

処理がちゃんとクラス毎に整理されていて、わかりやすい命名がされていればチームで開発する際もこのコードを使えば実装できると直感的にわかりやすく、バグが出た際も修正コードが少なくメリットだらけです。

同じような処理を色々なところに書かずに、1箇所に書くべきということですが、中々実戦は難しく私も間違えて似たような処理を複数箇所に書いてしまった経験があります。

特にチーム開発ではうまくディレクションしないとまとまりがないコードになってしまいます。

設定より規約を優先する(Convention Over Configuration:CoC)

こちらが意味することはRailsではデフォルトでWebアプリケーションではこういう風に使用されるであろうと設定を規約として設定されています。

そのため当たり前のことは細かい設定を行わずとも、よくあるWebアプリケーションを作成することができます。

クラス名、データベースのテーブル名の命名にもルールがあり、余計なことを考えずに開発に没頭することができます。

MVC

開発に置いて必ず必要な概念であるMVCについて説明します。

MVCとはモデル(model)、ビュー(view)、コントローラー(controller)の略です。
railsプロジェクトを作成するとデフォルトでmodel、view、controllerのディレクトリがあるので確認してみましょう。それぞれの役割があり、役割に合わせてコードを書く必要があります。

コントローラー(controller)

コントローラーはRubyのクラスでユーザーからのリスエストを受けとり、モデルとビューを呼び出し、最終的にページを返す役割をしています。

モデル(model)

モデルはRubyのクラスでデータの管理やビジネスロジックでデータの処理を行うコードを書き込む部分です。

例えば、インスタグラムなどのアプリだとすれば、コントローラーから受け取った画像、文章、ユーザーなどをデータベースに登録して、いいねをもらったら通知をするなどの処理を記載する部分になります。

ビュー(view)

ビューは名前の通り、主に画面側のHTMLを作成する機能を実装する部分になります。

コントローラーから受け取ったデータをHTMLに埋め込んで、リクエストによって表示内容を変えたHTMLを返します。

Railsではデフォルトではerb拡張子のテンプレートを使用して記載します。
このテンプレートを使用することでHTMLの中にRubyのコードを埋め込むことができます。

MVCの処理の流れ

まずユーザーがWEBアプリにアクセスするとRailsアプリでルーティングの処理が行われ、アクセスしてきたURLに応じたコントローラーが呼び出されます。
そしてコントローラーがユーザーのリクエストに応じたウェブページを作成します。

例えばインスタグラムのようなアプリで特定のユーザーページにアクセスしたとすれば、特定のユーザーのデータをモデルを通じて取得し、そのデータをビューでHTMLに埋め込みWEBページを作成します。完成したWEBページをコントローラーが受け取り、ユーザーに返却します。

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】


コメント

タイトルとURLをコピーしました