テクノロジー

2017年11月22日

Ruby on Railsとは

Railsとは

「Ruby on Rails」という名前を聞いたことはありますか?
「Rubyは日本人が開発したプログラミング言語だということは知っているが、Railsについては知らない」という方もいらっしゃるかもしれません。
今回はこの「Rails」とはなにかを簡単にご説明いたします。

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

Webアプリケーションフレームワークとは、Webアプリケーションを作成するための枠組みのようなものです。
ではなぜWebアプリケーションフレームワークが必要なのでしょうか?

https://diveintocode.gyazo.com/ac2c7d6b2be2f49a6a5c27cfcd41a744

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さんはこのような発言をしています。
「ぼくがやろうとしていることは、自分の時間を消費する時間を減らそうっていうこと。どうでもいいことに時間を費やすのを減らす」

https://diveintocode.gyazo.com/4067ecb49f6bf712edc73a25575981ed

CoCは、 設定よりも規約 という意味です。
Railsにはたくさんのルールが存在しますが、逆にルールさえ守ってしまえば良い設計ができるようになっています。
つまり Railsに乗る ことが大切なのです。

Railsで作られたサービス

このような哲学からエンジニアからの評判も高く、Railsで作られているサービスも多数存在します。
その中でも特に有名なRailsで作られたWebサービスをいくつか紹介していきます。

クックパッド

https://diveintocode.gyazo.com/185f0a7607577ac0147eb9c9ec21bd3a

GitHub

https://diveintocode.gyazo.com/44e4b1cc6c529eee6a7272e27fa3c439

Airbnb

https://diveintocode.gyazo.com/7af4bc4752e18930ca2357866fffa4cd

DIVER

https://diveintocode.gyazo.com/2ca1a6c19201a5424ddb5708772e1858

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の概要が理解できましたでしょうか。とても便利なフレームワークですので、少しずつでも実際に触れて体験してみましょう。

DIVE INTO CODEのことをもっと知ってみませんか?