更新日:
【Rails】 Ruby on Railsとは?Rubyとの違いを徹底解説!
プログラミング言語のRubyのフレームワークです。Ruby on Railsを使うと簡単にアプリを開発できるようになります。
フレームワークとはアプリケーションを作成するための骨組みがあらかじめ用意されている便利なものといったイメージです。
アプリを作るとき、誰が作っても同じようなコードになるものをあらかじめ用意しておけば開発効率がかなり上がります。
また一部の天才が作成したコードを再利用することにより、自分にそのコードを書く知識がなくても簡単にその機能を実装することができるため、プログラミングの知識がそれほどなくてもそれなりのアプリを作成することができます。
Ruby on Railsとは
この章では、フレームワークからRuby on Railsについて1つ1つ解説します。
フレームワーク
フレームワークとは、アプリケーションを作成するための骨組みがあらかじめ用意されている便利なものといったイメージでした。それでは、フレームワークを使ったメリットとデメリットについて確認していきましょう。
メリット
Rubyだけでアプリを作成するよりもフレームワークを利用すると作成時間をかなり短縮させることができます。
実際に簡単なアプリであればフレームワークを使うと15分ほどでアプリが作れると言われています。
またRubyでアプリを作成すると人によって記述がまちまちになってしまい、複数人での開発になると管理がとても大変になってきます。
ですがフレームワークを使えば基礎となる部分のコードは全て同じなので保守がとてもしやすくなるというメリットもあります。
デメリット
デメリットとしてはフレームワークの使い方を覚えなければならないことです。
フレームワークの学習はプログラミング言語の学習というより便利な道具の使い方を覚えるといったイメージです。
Railsを使って新規アプリを作成すると下のようにフォルダとファイルが自動で作成されます。
各フォルダの中身は下記の通りです。
フォルダ名 | 中身 |
---|---|
assets | 画像やjavascript、stylesheetsファイルなど |
controllers | コントローラーファイル |
helpers | ヘルパーファイル |
mailers | メイラーファイル |
models | モデルファイル |
views | ビューファイル |
新しいファイルを作成するときには自分で自由にフォルダを作ってソースを書けるわけではなく、それぞれ決められたフォルダに応じてコードを書かないとアプリは動きません。
このようにどのフォルダに何のファイルを作成するかというのが大事なので、Railsの使い方を覚える必要があります。
そのため、実際に使いこなすにはそれなりの時間がかかります。
またフレームワークは言語によって複数存在するので、自分が覚えたものが実際の開発現場で使われていなかったら、また別のフレームワークの使い方を学習しなければなりません。
また簡単にアプリを開発できるので、省略されている部分がたくさんあります。
なのでどうしてこういう動きになるのかはコードを見ただけでは把握することが難しいです。
特にRuby on Railsは他のフレームワークよりさらに簡潔にコードが書けるので、プログラミング初心者はファイルの関係性などが理解しづらいというデメリットがあります。
ただデメリットをはるかに超えるメリットがあるので、現在ではフレームワークを使ってアプリを作成することがほとんです。
Rubyだけでなくその他の言語にもフレームワークがあります。
有名なフレームワークとしてJavaならStrutsやSpring、PHPならCakePHPやLaravel、PythonならDjangoなどがあります。
Rubyだと一番多く使われていると言われているのが今回紹介するRuby on Railsです。
Rubyとの違いは何か
Rubyはプログラミング言語の一つです。
プログラミング言語とはコンピュータに命令を出すための言語で実際にプログラムを書いてファイルを作成します。
それに対しRuby on Railsは前述したフレームワークです。
Webアプリケーションを作成する際は「Ruby on Rails」を勉強しますが、その中でRailsで使用される構文はRubyの構文が大半です。
Rubyは触りだけでRailsの扱い方に学習時間を費やす、もしくはRailsから学習している方もいますが、いずれにしても並行してRubyを学ぶと良いでしょう。
Rubyに関しては、こちらの「プロを目指す人のためのRuby入門」でRubyの特徴から例外処理、デバック技法など実務で必要となる知識を一通り学ぶことができます。
言語仕様からテスト駆動開発・デバッグ技法まで
Ruby on Railsで作成されたサイト
Ruby on Railsを使って作られたサービスを紹介してみます。
価格.com
誰もが使ったことがあろう価格比較サイトです。
クックパッド
国内最大級のレシピサイトです。
GitHub
エンジニアであれば誰もが使うであろうサービスです。
Gunosy
有名なキュレーションサイトです。
食べログ
日本最大級の口コミサイトです。
このようにRuby on Railsは様々なサイトで利用されています。
Ruby on Railsの特徴
たくさんあるフレームワークの中でRuby on Railsが持っている特徴があります。
MVCアーキテクチャ
MVCとは、「Model、View、Controller」の3つの頭文字をとったものです。
ルーティング→コントローラー→モデル→ビューの順番に処理が行われるシステムのことをMVCアーキテクチャと言います。
それぞれ担当するものを分けることで、コードの可読性が上がるというメリットがあります。
詳しくはMVCフレームワークの記事を参照してください。
DRY
DRYとは「Don’t Repeat Yourself」の頭文字を取ったものです。
Railsは同じコードを重複して書くことを嫌います。
重複している部分はメソッドにしたり、ビューであれば部分テンプレートに切り分けるなどします。
こうすることにより何か変更があった時の作業が効率化されます。
例えば全く同じコードが10箇所で使われていたら、もしその部分に変更が生じたら10箇所全部修正する必要があります。
ですがこれをメソッドにしたりビューでは部分テンプレートにしておけば、メソッドを定義した部分だけ修正するだけで修正が終了します。
例えば下記のコードが5つのファイルで使われていたとします。
それを部分テンプレートにしてこのコードが書いてあった5つの場所には下記のようなコードを書きます。
もし変更があった場合は5つのファイルではなくて部分テンプレートのファイルだけ変更すればいいので管理がとても楽ですよね。
コードの管理が非常にしやすくなるので、これは徹底しておきましょう。
CoC
CoC「Convention over Configuration」の頭文字を取ったものです。
これは設定より規約を重視することを意味します。
どういうことかというと自分で色々と決めて設定をするのではなく、Railsで決められた規約に則ってコードを書くということです。
例えばアクションはRailsで最初から定義されている7つのアクション名を使うとか、コントローラー名は複数形、モデルは単数形、テーブル名は複数形と決まっています。
またルーティングを作成するresourcesメソッドがありますが、これを利用してルーティングを作成すると下記のようなルーティングが自動で作成されます。
※ルーティングの意味はわからなくても大丈夫です。
1
2
3
4
5
6
7
8
9
Prefix Verb URI Pattern Controller#Action
tweets GET /tweets(.:format) tweets#index
POST /tweets(.:format) tweets#create
new_tweet GET /tweets/new(.:format) tweets#new
edit_tweet GET /tweets/:id/edit(.:format) tweets#edit
tweet GET /tweets/:id(.:format) tweets#show
PATCH /tweets/:id(.:format) tweets#update
PUT /tweets/:id(.:format) tweets#update
DELETE /tweets/:id(.:format) tweets#destroy
これはrailsが自動で規約通りに決めるものなので、これに沿ってコードを書く必要があります。
規約があらかじめ決まっていることにより、開発者はコードを書くことに集中することができます。
また誰が書いても同じようなコードになるので大人数での開発にも向いています。
規約といったレールに則ってコードを書くことから「Ruby on Rails」という名がついたくらいです。
Railsチュートリアル
Railsチュートリアルとは書籍の「Ruby on Rails Tutorial」を日本語訳したサイトです。
無料で使うことができるので、Railsのスキルをもっとあげたい方には最適です。
ただ内容的にはかなり難しいので、初心者がいきなりこれでRailsを勉強しようとすると挫折する確率が高いです。
ある程度Railsの知識を身につけた上で挑戦してみるとかなりスキルアップすることができるでしょう。
Railsチュートリアルに挑戦する前に、こちらの「現場で使える Ruby on Rails 5速習実践ガイド」で一通り学習すると効果的です。
初学者にはやや難しい内容も含まれていますが、わかりやすい図と噛み砕いた文章で解説しています。
何よりも実際に手を動かしてアプリケーションを開発しながら学べるので、より知識を吸収することができます!
Ruby on Railsの基礎から実践的なノウハウまで学べる!
Ruby on Railsの需要
Rubyだけの案件はあまりありませんがRuby on Railsの案件はたくさんあります。
ですのでRubyだけでなくRuby on Railsをマスターしないと仕事にはなりません。
Ruby on Railsで実務経験を積めば月50〜100万円越えの案件を取ってくることも可能です。
特にスタートアップ企業はRailsを使って開発をしている場合が多く、人材も不足しています。
他の言語と比較してもRubyは高い水準にあります。
上の資料だと月収は80万円ほど見込めそうです。
ただRuby on Railsを独学で身に付けるのはとても大変なのでTECH::CAMPなどのプログラミングスクールに通うと効率よくマスターできるのでお勧めです。
Ruby on Rails以外のフレームワーク
RubyにはRuby on Rails以外にも下記のようなフレームワークがあります。
・Sinatra
・Padrino
・Ramaze
・HANAMI
・Cuba
ただ圧倒的にRuby on Railsのシェアが高いので、これから学習をするのであればRuby on Railsが良いでしょう。
この記事のまとめ
- Ruby on Railsとは、Rubyのフレームワークのこと
- webアプリを簡単に作成することができる
- 規約があるので大人数で作成がしやすい!