Ruby on Railsについて
「Ruby on Rails」を聞き慣れない方もいると思いますが、人気言語のRubyを学びたい方にはRuby on Railsは不可分のフレームワークです。ここでは「Ruby on Railsの入門」ということで、Rubyエンジニアを目指す方に必須の情報をまとめました。ぜひ参考にしてください。
Rubyとは
Rubyは日本で開発された言語として、初めてIEC(国際電気標準会議)で国際規格に認証されたプログラミング言語です。まつもとゆきひろ氏が開発したRubyは「ストレスなく楽しいこと」をその開発理念とし、プログラミング入門者にもオブジェクト指向言語の概念が理解しやすく作られています。
Ruby on Railsとは
「Ruby on Rails」(ルビー・オン・レイルズ)は、Webアプリケーション向けの「フレームワーク」です。フレームワークとは、システムの開発を容易にするために準備された、土台や枠組みのことです。
システムでゼロから開発されたものは少なく、その多くは土台や枠組みを利用して、必要な機能をプログラミングし、そこに組み込んで完成させています。そうした土台や枠組みのことを「フレームワーク」と称しています。「フレームワーク」を利用することで、開発工数の短縮が可能です。「Ruby on Rails」は2004年にデンマークのプログラマーが開発しました。エンジニアの間では「Rails」や「RoR」と呼ばれています。
RubyとRuby on Railsの違い
Ruby on Railsはプログラム言語Rubyの「フレームワーク」ですが、まだフレームワークのイメージが湧かない方もいるでしょう。Ruby on Railsはカレーで言えば、カレールーと似ているかもしれません。
1から作ると手間は掛かりますが、RubyだけでWebアプリケーションを開発することは可能です。しかし、逆にRuby on RailsだけではWebアプリケーションを作ることは困難です。Webアプリケーションは計算や条件分岐など、さまざまな機能がないと動きません。そうした計算や条件分岐などを担うのがRubyです。
カレーを作るときは切った野菜や肉を煮て、カレールーを入れて作ります。カレールーは1から作ると面倒なので、市販のルーを使うことが多いですよね。「Ruby on Rails」はまさにこの市販のカレールーと同じ役割をしてくれます。
Ruby on Railsの特徴
「Ruby on Rails」の最大の特徴は、「MVC(モデル)アーキテクチャ」という考え方に基づいて作られたフレームワークだということです。MVCとは、Model・View・ Controllerの頭文字をとった言葉です。MVCモデルとは、プログラムの構成をModel(モデル)・View(ビュー)・ Controller(コントローラ)に分類して作ることです。Model・View・Controllerの機能や役目は以下の通りです。
1. Model:データベース間のやり取りやシステムの処理をつかさどる機能で、情報の取り出しや書き込みを行います。
2. View:ブラウザへの表示をする機能で、Webページ見た目(GUI)を決める際に欠かせません。
3. Controller:ModelやViewに対する指令や指示を司る機能です。
このように、MVCアーキテクチャは機能ごとの独立性が高く、分業がしやすく、仕様の変化に対応しやすいのが利点です。MVCアーキテクチャを基本としているRuby on Railsは、システムを効率的に開発することができる点が強みです。
Ruby on Railsで何ができるのか
Ruby on Railsはあくまでフレームワークのため、単体では機能を果たせません。住宅で例えると、土台と柱だけの状態です。人が住む・暮らすための機能が備わっていません。しかし、プログラミング言語(Ruby)と組み合わせることで、様々なことが可能となります。主にできることは、以下の2つです。
1. Webアプリケーションの開発 一般的なWebサイトの構築からSNS・ECサイトなどのさまざまなアプリケーション開発ができます。
2. APIの開発 スマホアプリそのものの開発はJavaなどの得意分野で、Ruby on Railsは使いませんが、スマホアプリから得たデータをデータベースに入力する際には、APIと呼ばれるものが必要です。このAPIの開発にRubyやRuby on Railsを用います。
Ruby on Railsをの活用例
Ruby on Railsで何ができるかは分かったと思います。続いて、Ruby on Railsを利用して作られたサイトの一部を紹介します。
■Hulu(動画配信サイト)
■cookpad(料理レシピサイト)
■Gunosy(ニュースアプリ・ポータル)※一部はGO言語
■食べログ(レストラン紹介サイト)
■freee(クラウド会計サービス)
皆さんよくご存じのサイトばかりです。
Ruby on Railsのメリットとデメリット
先ほどご紹介したように、有名サイトや人気サイトの構築にも利用されているRuby on Railsですが、そのメリットとデメリットを確認しておきましょう。
メリット1:学習がしやすい
Rubyは日本人(まつもとゆきひろ氏)により開発されたプログラム言語のため、Ruby on Railsの参考資料や解説資料なども、日本語で書かれたものが比較的多く、学習しやすい環境にあります。勉強の途中でつまずいても、文献やネットから自分で調べて、解決できる点は強みです。
しかもRuby on Rails自体がシンプルな構造で、馴染みやすく、覚えやすいフレームワークなのです。Ruby on Railsを使うことで、少ないコードで素早く開発が行え、結果が早く確認できるのも学習のモチベーションアップに繋がり、飽きずに学習を継続できることを意味します。こうした学習のしやすがRuby on Railsのメリットの1つです。
メリット2:汎用性が高い
Ruby on RailsはWebアプリケーション向けのフレームワークですが、汎用性が高く、ゲームなどの開発にも利用できます。さらに、OSを問わずLinux・Mac・Windowsなどで利用できる汎用性の高さがあります。
デメリット:実行スピードが遅い
学びやすく、汎用性が高く、開発の生産性が高いRuby on Railsですが、その反面デメリットもあります。それは他の言語やフレームワークと比べて、実行スピード・処理速度が遅いというRuby自体の弱点です。
「Ruby」は、その都度コンパイル(機械語に翻訳)をしながら実行する、インタプリタ方式を採用しています。規模が大きく、アクセスやトランザクションの多いサイトでは、これがボトルネックとなり、スピードやレスポンス低下によって利用者の評価が著しく低下するリスクがあります。
Ruby on Railsを学ぼう
Ruby on Railsを学ぶには、まず学習環境を整える必要があります。学習環境を整え、自ら試してみることでスキルが身に付きます。後ほど入門に適した教本を紹介しますが、その前に学習環境を自ら用意しましょう。Windowsパソコンとネットワークがあるという前提で以下、学習環境(開発環境)を整える手順を紹介します。
1:Rubyをインストールする
まず初めにRuby をインストールします。「RubyInstaller」にアクセスして「Ruby + Devkit 2.7.4-1(x64) 」をクリックします。これでダウンロードがはじまります。
ダウンロードしたファイルを開き、画面下のチェックボックスで「I accept the License」を選択した後に、右下の「Next」ボタンをクリックします。インストールの終了画面「Completing Ruby 2.7.4-1-x64」が表示されたら「Finish」をクリックするとコマンドプロンプト画面が表示されるので、半角で画面の指示通りに「1,2,3」の様に入力し、「Enter」キーを押すとインストールが始まります。
インストールが済むと「Enter」を求められますので、「Enter」キーを押せば黒い画面が自動的に閉じられます。これで「Ruby」のインストールは終了です。ここまで数分を要しますが、焦らず気長に待ちましょう。念のため、コマンドプロンプトの画面で、「ruby -v」と入力してみてください。「ruby 2.7.4」 と表示されれば、 Ruby のインストールは無事に完了しています。
2:Ruby on Railsをインストールする
Rubyのインストールが済んだら、次にRuby on Railsをインストールします。コマンドプロンプト画面で、「gem install rails」と入力するとインストールが開始されます。インストールが終わったら、コマンドプロンプト画面で「rails -v」と入力します。バージョン(Rails 6.1.4)が表示されたら、インストールは正しく行われています。
Ruby on Railsチュートリアルとは?
大学や企業などでも採用されている、Ruby on Rails チュートリアルというものがあります。チュートリアルは、Railsを用いた開発環境の構築からアプリ作成について体系的に学ぶことができますが、Railsの基礎が身についている人、中級者向けの教材のため、入門者にはおすすめできません。先に独習本などで基本を学んでからトライしましょう。
Ruby on Railsの入門におすすめの本
Ruby on Railsの入門書はいくつかありますが、ここでは2冊ご紹介します。
たった1日で基本が身に付く!Ruby on Rails超入門
「たった1日で基本が身に付く!Ruby on Rails超入門」は、実際に1つのアプリを作り、手を動かしながらRuby on Railsを学ぶことができるようになっています。
初心者でも操作に迷うことがないよう、開発環境のインストールからRuby on Railsの基本、データベースの基礎知識についてもしっかり解説してあります。
Ruby on Rails 5 超入門
「Ruby on Rails 5 超入門」は、WebアプリケーションやRailsに関して全く未経験の方におすすめしたい学習本です。Ruby on Railsをわかりやすく解説しているだけではなく、Windows環境でのセットアップ方法についても詳しく解説しており、実際に「伝言版」や「ミニブログ」などの簡単Webアプリを作成しながら学んでいきます。
同じシリーズに、「Ruby on Rails 6 超入門」「Ruby on Rails 5アプリケーションプログラミング」もありますので、ステップアップやバージョンアップに合わせて利用すると良いでしょう。
Ruby on Railsの将来性
Rubyは開発スピードを求めるスタートアップ系やベンチャー企業を中心に根強いニーズがあります。また、TwitterやHuluなどの多くのユーザーを抱えるWebサービスでも利用されており、求人も安定しています。
そのRubyの開発効率をさらに上げられる「 Ruby on Rails」は、Rubyとセットで身に付ける方が活躍の機会が広がります。これからの時代、複数の言語スキルを有する人が重宝されていくでしょう。ぜひ、Rubyと「 Ruby on Rails」をセットで学び、スキルアップを図ってみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから