テクノロジー
2017年11月22日Ruby on Railsとは
「Rubyは日本人が開発したプログラミング言語だということは知っているが、Railsについては知らない」という方もいらっしゃるかもしれません。 今回はこの「Rails」とはなにかを簡単にご説明いたします。
目次
Railsとは
Webアプリケーションフレームワーク
Railsの概要
DHH
Railsの哲学
Railsで作られたサービス
[クックパッド](https://cookpad.com/)
[GitHub](https://github.com)
[Airbnb](https://www.airbnb.jp/)
[ディープロ](https://diveintocode.jp/diver/)
Railsのバージョン
バージョンとは
バージョンごとの進化具合
Railsとは
「Ruby on Rails」という名前を聞いたことはありますか?
「Rubyは日本人が開発したプログラミング言語だということは知っているが、Railsについては知らない」という方もいらっしゃるかもしれません。
今回はこの「Rails」とはなにかを簡単にご説明いたします。
Webアプリケーションフレームワーク
Webアプリケーションフレームワークとは、Webアプリケーションを作成するための枠組みのようなものです。
ではなぜWebアプリケーションフレームワークが必要なのでしょうか?
Ruby単体で1から実装するか、Webアプリケーションフレームワークを使って楽をするか、皆さんはどちらを選択しますか?
Ruby単体で1から実装するのも良いですが、作業量がとても多く、挫折するだけです。
ここはWebアプリケーションフレームワークをありがたく利用しましょう。
Railsの概要
RailsはRubyで作られたWebアプリケーションフレームワークです。
まずはRailsの哲学的な部分から、実際にRailsで作られているサービスを紹介していきます。
DHH
デイヴィッド・ハイネマイヤー・ハンソン(DHH)はRailsの生みの親です。
1979年のデンマーク生まれ。
Railsが生まれたのは2004年なので、DHHさんは20代でRailsを作ってしまったという計算になります。
ではDHHさんはなぜRailsを作ろうと思ったのでしょうか?
それは Railsの2つの哲学
が大きく関係してきます。
Railsの哲学
Railsは2つの哲学のもとで設計されています。
それは Don't Repeat Yourself (DRY)
と Convention over Configulation (CoC)
です。
DRYは、 同じことを2度繰り返さない
という意味です。
例えば、Webアプリケーションを作るときには以下のような機能を実装する必要があります。
- DBとの連携
- リクエストを受け取る処理
- HTMLを生成する処理
これらのような機能を、アプリケーションごとにまたイチから作っていては時間の無駄ですよね?
なのでこれらを共通化しておくことで、アプリケーションの開発効率を良くしようとしたのです。
DHHさんはこのような発言をしています。
「ぼくがやろうとしていることは、自分の時間を消費する時間を減らそうっていうこと。どうでもいいことに時間を費やすのを減らす」
CoCは、 設定よりも規約
という意味です。
Railsにはたくさんのルールが存在しますが、逆にルールさえ守ってしまえば良い設計ができるようになっています。
つまり Railsに乗る
ことが大切なのです。
Railsで作られたサービス
このような哲学からエンジニアからの評判も高く、Railsで作られているサービスも多数存在します。
その中でも特に有名なRailsで作られたWebサービスをいくつか紹介していきます。
クックパッド
GitHub
Airbnb
ディープロ
Railsのバージョン
バージョンとは
Rubyにバージョンがあるように、Railsにもバージョンがあります。
現在の最新バージョンは rails 5.1.3
(2017/11/14現在)です。
しかし、Railsを導入している企業は rails 4.X.X
を導入しているところが多いです。
なぜ最新バージョンにしないのか。それは以下2つの理由が関係しています。
- Railsのバージョンを上げる作業によって、アプリケーションが動かなくなる可能性(リスク)がある
- Rails5.X.Xのリソースが少ない
Railsのバージョンを上げると、それに紐付くライブラリのバージョンも上げる必要があります。
そうすると今まで動いていたものが動かなくなったりして、めちゃくちゃな状態に陥りることがほとんどです。
なので企業がRailsのバージョンを上げるという作業は、もはや ビッグイベント
なのです。
バージョンごとの進化具合
ここではRailsがどのような進化を遂げてきたかを振り返っていきましょう。
バージョン | 加わった機能 |
---|---|
Rails1系 | DRY/CoC |
Rails2系 | RESTful |
Rails3系 | アセットパイプライン/CoffeeScript |
Rails4系 | ストロングパラメータ |
Rails5系 | ActionCable |
※ストロングパラメータの概要に関しては参照記事をご一読ください。
「ストロングパラメーターについて」
いかがでしたでしょうか。Railsの概要が理解できましたでしょうか。とても便利なフレームワークですので、少しずつでも実際に触れて体験してみましょう。