Ruby on Railsは動的なウェブサイトやWebアプリ、Webサービスの開発をサポートするWebアプリケーションフレームワークとして多くの開発現場で採用されています。
プログラミング言語は、そのフレームワークが優れていれば、言語自体の人気が高まることがありますが、なかでも、Rubyが人気を博したのは「Ruby on Rails」の存在が大きいといえます。
本記事では、Ruby on Railsの特徴やできることなどについて解説します。
Ruby on Railsとは?
Ruby on Railsは2004年にデンマークのプログラマーであるデイヴィッド・ハイネマイヤー・ハンソン(通称DHH)氏によって開発されたRubyのフレームワークです。
プログラミング言語「Ruby」を用いて簡単なコードで効率よくWebアプリケーションの開発をするためのツールです。
アプリケーション開発のデザインパターンなどのひな型も提供されており、通常、サイトを作成するにあたり白紙の状態からプログラムを書いていかなければならならいところ、フレームワークを使うことによって作業を短縮できます。
また、開発経験が浅い学習初心者でもRuby on Railsを活用すれば、高機能なwebアプリケーションを開発できるのです。
Ruby on Railsは応用範囲も広く、万能であるため、昨今ではSNSやマッチングサービスだけでなく、ゲーム開発、業務システムなど、幅広い分野で活用されています。
Rubyとは?
Ruby on RailsのRubyは、1995年に日本人技術者によって開発されたプログラミング言語です。比較的、短い表記で直感的に、まるで英語でコードを書いているようにプログラムを書けるため、初心者でも学習しやすい言語といえます。
◆例
▼Javaの場合
public static void main(String args[]) {
System.out.print(“Hello “);
}
▼PHPの場合
<?php echo “Hello”; ?>
▼Rubyの場合
puts “Hello”
フレームワークとは?
Webアプリケーション開発を行う際に必要となる機能や骨組みをひとまとめにしたものです。あらかじめ完成している土台に、必要最低限のプログラムを書くだけでいいので開発工程を短縮できるのです。また、コードの書き方が統一されることで、機能追加や改修が楽になるなど、開発者の負担を大きく減らせます。
フレームワークはホワイトソース作りで例えるとイメージしやすくなるでしょう。フレームワークはホワイトソース作りにおけるホワイトソースの素です。ホワイトソースの素がないと小麦粉とバターを炒めて、少しずつ牛乳で伸ばしながら作っていきます。焦がしたりダマになったりしてしまうと、風味やなめらかさが損なわれてしまうため、手間も時間もかかり、初心者にはハードルが高い料理になってしまいます。しかし、ホワイトソースの素があれば時間も短縮でき、効率よくホワイトソースを作れます。これなら、初心者でも簡単にシチューやグラタンが作れますよね。
このように、フレームワークは、だれでもある程度の質を維持でき、時間を短縮するためのツールです。
RubyでWebアプリを作成する際、何度も書かなければいけない処理が存在しますが、Ruby on Railsは、そのような凡庸処理を最初から備えているため、それらを意識することなく開発に集中できるのです。
ただ、そのように便利である反面、枠組みが決まっているぶん、カスタマイズ性は劣るため、フレームワークにない機能を搭載したい場合は、自身で一からコードを書く必要があります。
ちなみに、「フレームワーク」は「ライブラリ」と混同されることがありますが、ライブラリは特定の機能を提供し、プログラムの中でそれらを呼び出すことで動作します。
それに対して、フレームワークはアプリケーション全体の枠を提供し、開発者の作ったプログラムを読み込んで動作します。
Ruby on Railsの特徴
MVCモデル
Ruby on Railsは設計にMVCモデルというソフトウェアのデザインパターンを採用しています。
MVCとはModel(モデル)、View(ビュー)、Controller(コントローラー)の略称です。
Model(モデル):データベースに対してデータの登録・取得・更新・削除などを行う。
View(ビュー):ブラウザに表示される画面の作成を行う。ユーザーが直接目にする箇所であり、WebページやWebサービスの見た目を決める際に欠かせない。
Controller(コントローラー):ユーザーからの要求に対して、ModelとViewの連携を行う。ModelやViewはControllerから命令を与えられることで初めて実行される。
このように、3つの機能ごとに役割分担をすることで、アプリケーション開発を効率的に分業して行うことができ、仕様の変更にも柔軟に対応可能です。
DRY
Ruby on Railsには「DRY」という開発思想があります。
「DRY」は「Don’t Repeat Yourself」の頭文字をとったもので、一度やった作業を繰り返さないということです。
Ruby on Railsではコーディングの効率化に向けた工夫がたくさんされています。
このほかにもRuby on Railsには様々な開発思想がありますがそれらは全て「プログラマーの幸福度を最適化する」と言う目標をもとに形作られてきました。
また、エンジニア自身にも「DRY」を意識することを推奨しています。DRYを意識し、複数の処理を一箇所にまとめるなどの工夫を行うことで質の高いアプリケーション開発を効率よく進められます。
Ruby on Railsでできること
Ruby on Railsはあくまでフレームワークなので、単体では何もできませんが、ほかの言語と組み合わせて使用することで、さまざまなことができるようになります。
Ruby on RailsはWeb開発向けのフレームワークとして設計されているため、Webアプリケーションを作るのに適しており、WebサイトやSNS、ショッピングサイトは、Ruby on Railsを用いて開発することもあります。
実際にRuby on Railsで開発可能なシステムを紹介します。
Webサイト
WordPressなどを使うのが一般的ですが、Ruby on Railsを使って自分でWebサイトを作れます。機能やデザインなどを無料で自分好みに設定できます。
ショッピングサイト
決済機能のついたショッピングサイトを作ることができます。Rubyだけで決済機能を実装することは非常にハードルが高いですが、Solidusというフレームワークやpay.jpのAPIを使用することで実装できます。
SNS
ユーザー登録やログイン機能が実装され、データベースと連携したSNSを作成することができます。
スクレイピング
ウェブサイトのHTMLタグをもとに情報を取得し、その情報を加工して新たな情報を生成します。
たとえば、「商品のデータを集めて価格表を生成する」といったことができます。
Ruby on Railを利用して作られたサービス
Ruby on Railを利用して作られたサービスは数多く存在します。
たとえば、世界最大規模のSNSである「Twitter」は、Ruby on Railを用いて設計されたことで知られています。(需要が伸びたことで、Scalaに移行)このほかにも、料理レシピサイト「クックパッド」、民泊予約サイト「Airbnb」、クラウドソーシングサービス「クラウドワークス」などもRuby on Railが使われています。
企業やサービスの立ち上げ時には、開発にスピードが求められるケースが多く、フレームワークとして開発効率に優れているRuby on Railが採用されるケースが多いのです。
ただ、Ruby on Railsは開発効率やコードの書きやすさに優れる一方で、処理速度が遅いという欠点があるため、速度が重視されるプロジェクト立ち上げ時には、Ruby on Railを使って開発を行ったとしても、規模が拡大に伴って、処理速度に優れた言語に切り替えるという事例もあります。