#はじめに
プログラミングを初めて2ヶ月の駆け出しエンジニアが文字通り初心者目線で、かつ初心者でもできるだけ分かりやすいようにRuby on Railsについてまとめてみました。
間違いなどありましたらご指摘いただけると幸いです。
#Ruby on Railsとは
Rubyを元に作られたアプリケーションフレームワークです。
そもそもフレームワークとは簡単に言い換えると「枠組み」や「骨組み」「雛形」のことで、アプリを作る際に必要となる基本的なものがあらかじめ準備してくれているものになります。
ゼロから開発する必要がないため、開発にかかるコストを減らしてくれるとても便利なものです。
##Rails Way
Railsはフレームワークというある種固定的なレールに柔軟で自由なRubyを使い、「フレームワークの良いところ」と「自由に自分のコードを書けること」を両立させたものと言えるでしょう。
これを踏まえてRailsらしく考えRailsらしいコードを書くことが大事になってきます。
そうすることで綺麗な読みやすいコードになっていき自ずと生産性も上がっていくはずです。
##Railsの哲学
上記でも触れたRailsらしいコードにあたる共通理念のようなもので、代表的なものを二つ紹介します。
DRY (Don't Repeat Yourself)
繰り返しや重複はコードとして美しくない
設定より規約
従来のフレームワークのように大量に設定を記述するのでは無く、規約に乗っ取とることでシンプルなコードにする。
##MVCとは
Railsについて簡単に説明したところで、最後にMVCについて解説します。
MVCとはソフトウェアをどのような構造にするかの考え方のパターンの一つです。
さまざまな処理によって構成されるアプリケーションの中でも、UI(ユーザーインターフェース)の部分は性質が異なるため、一緒くたにして記述するとコードが複雑になってしまいます。そのため『UIに関わる部分(view)』と『アプリケーション固有の処理やデータの扱いを(model)』、『この二つの橋渡し的な立ち振る舞いをする(controller)』の三つの役割に分けて管理しやすくしたのがMVC(Model View Controller)というわけです。
橋渡し役であるコントローラの中にはルーティングがあります。これはブラウザから受け取ったURLやHTTPリクエストを元に、__どのコントローラ(クラス)の、どのアクション(メソッド)が処理を担当するのかを決めるところ__です。
図にすると次のようになります。
それぞれの番号に対応する処理を説明します。
①ブラウザ(クライアント)からのリクエストがwebサーバを介して受け渡されます。
②ルーティング機能が受け取ったURLなどを元に処理するべきコントローラとアクションを特定しアクションを呼び出します。
③アクションでは必要に応じてモデルを利用します。(データベースからデータを取得するなど)
④必要に応じてモデルはデータベースへ書き込みや呼び出しなども行います。
⑤アクションごとに対応するviewテンプレートを用いてHTMLを作成します。
⑥コントローラがレスポンスを作成し、ブラウザに返します。
RailsにおいてこのMVCはとても大切な概念なのでしっかりと理解しておきましょう。
##参考図書
現場で使えるRubyonRails5速習実践ガイド5.2対応