このような疑問・要望に応えるべくRuby on Railsのできることについて解説する記事です。
具体的には次の順番でお話していきます。
- RubyとRuby on Railsの違いについて
- Ruby on Railsでできること、向いていないことの解説
- Ruby on Railsで作られたサービスの事例紹介
これからRuby on Railsを使ってみたいと考えている方向けの記事ですので、ぜひご覧ください。
記事のもくじ
できることの前に、RubyとRuby on Railsは何が違う?
Ruby on Railsでできることを紹介する前に、そもそもRubyと何が違うのか知りたい方も多いのではないでしょうか。
Rubyはプログラミング言語であり、Ruby on RailsはRubyで構成されたオープンソースのWebアプリケーションフレームワークを表します。
フレームワークとは枠組みのことであり、特定の開発をスピーディかつ効率的に行うためのプログラムの雛形が用意されたものです。
つまり、Ruby on Railsを使うとWebアプリケーションの開発が行えるというわけですね。
もちろん、そのほかにもRuby on Railsを使って開発できるものは多く存在しますので、詳細は後ほど紹介します。
Ruby on RailsではMVC(Model/View/Controller)モデルを採用しており、Webアプリケーション開発を効率的に分業して行うことができる特徴を持ちます。
また、仕様変更にも柔軟に対応でき、開発の速度感が求められるWebアプリケーション開発において非常に人気の高いフレームワークなのです。
Ruby on Railsでできること、向いていないこと
ここからは具体的にRuby on Railsでできることを見ていきましょう。
あわせて、Ruby on Railsでは向いていない開発の種類も紹介しますので、ぜひ参考にしてみてください。
できること1:Webアプリケーション
先ほども軽く触れましたが、Ruby on RailsはWebアプリケーションフレームワークであるため、Webアプリケーション全般の開発が行なえます。
具体的に開発できるWebアプリケーションのイメージとしては、後ほど事例を紹介しますので、そちらを参考にするとイメージしやすいでしょう。
できること2:ブログ
ブログと言えばWordPressがまっさきに挙げられますが、Ruby on Railsを使ってCMSを作成することも可能です。
WordPressはPHPで作られており、MySQLなどのデータベースとの連携によってCMSを実現していますが、Ruby on Railsでも同様のことが実現できます。
必要な機能などを自ら開発することができ、非常に自由度の高いCMSを作れます。
できること3:通販サイト
通販サイト、ECサイトといったショッピングサイトの構築も可能です。
通販サイトではログイン機能や決済機能、カート機能が欠かせませんが、一から構築することもできます。
また、「Solidus」などのRuby on Railsパッケージを利用すると上記の機能が簡単に実装できるため、通販サイトの構築が簡単に行なえます。
できること4:Webスクレイピング
Webスクレイピングはインターネット上のページから、必要な情報だけを抽出する技術です。
Webスクレイピングを上手に活用すれば、業務の自動化などにも活かせます。
Ruby on Railsでは「Nokogiri」や「Mechanize」などのパッケージを利用することで、簡単に実現可能です。
Ruby + NokogiriだけでもWebスクレイピングは行なえますが、Ruby on Railsと組み合わせることで、WebアプリケーションとしてWebスクレイピングが行えるようになります。
Webスクレイピングの効果を最大限に発揮するためにも、Ruby on Railsと連携して利用するとよいでしょう。
できること5:SNS
TwitterやInstagramなど、SNSにはさまざまな種類がありますが、共通してログイン機能やテキスト・画像などの投稿機能が必須となります。
これらの機能もRuby on Railsでは簡単に実装でき、データベースと連携することで実現可能です。
SNSは誰もがイメージしやすいということもあり、多くのチュートリアルや学習サイトで「Twitter風・Instagram風のWebアプリを開発する」というサンプルコードが多く存在します。
興味のある方はぜひ検索して見てくださいね。
できること6:API
APIはApplication Programming Interfaceの略称であり、「特定の機能に特化した共有可能なプログラム」や「ソフトウェアの機能を共有する仕組み」を表します。
たとえば、スマホアプリなどではサーバーとデータのやり取りが必要になりますが、その際の入口となるものがAPIなのです。
Ruby on Railsでは、そのAPIを作る際に利用されるケースも多く見られます。
できること7:業務システム
業務システムの多くはWebアプリケーションとして開発されていることから、Ruby on Railsを利用して業務システムの開発も行えます。
たとえば、勤怠管理システムや入退室管理システム、スケジュール共有システムなど、業務上利用することの多いWebシステムをRuby on Railsを使って開発可能です。
できること8:ポータルサイト
ポータルサイトはWebにアクセスするための「入り口」となるさまざまなコンテンツを有したサイトを表します。
検索エンジンやYahoo!Japanなどがわかりやすい例でしょう。
そのほかにも、社内情報を共有するための社内ポータルなども存在しますが、SNS連携機能やお知らせ機能などが搭載されたポータルサイトも多く存在します。
そのため、Ruby on Railsを使ってWebアプリケーションとして作成する例も多く見られます。
Ruby on Railsを使ってポータルサイトを構築することで、機能の追加やメンテナンス、拡張性の高さを実現可能です。
向いていないこと:スマホアプリ開発、機械学習など
Ruby on RailsはWebアプリケーションフレームワークであるため、それ以外の開発は基本的に向いていません。
たとえば、スマホアプリ開発や機械学習などは、Ruby on Railsでは向いていないと言えるでしょう。
Ruby on Railsを使って開発することができないわけではありませんが、スマホアプリ開発ならSwiftなど、機械学習ならPythonなどで簡単に行えるため、これらが採用されることがほとんどです。
しかし、Ruby on Railsとしては向いていなくとも、たとえばRubyで「RUBYMOTION」や「Ruboto」などのソフトウェア・フレームワークを利用してスマホアプリ開発が行なえます。
向いていないとはいえ、Ruby on RailsやRubyを使って開発できないわけではないことを覚えておきましょう。
できることの事例、Ruby on Railsで作られたサービス
Ruby on Railsを使って作られたWebアプリケーション・サービスのなかには、多くの人が利用したことのあるものも含まれています。
Ruby on Railsでできることのイメージを掴むためにも、Ruby on Railsで作られたサービスなどの事例を紹介します。
ここで紹介するサイトは、Google Chromeの拡張機能である「Wappalyzer」を利用して、2020年8月時点でRuby on Railsが利用されていることを確認できたサイトです。
グノシー
グノシーはニュースポータルサイトとして国内でも人気の高いWebサイトの一つです。
グノシーではスマホアプリも提供しており、Webサービスと管理画面はRuby on Railsを利用し、APIではGoを採用しています。
クックパッド
クックパッドは料理のレシピ投稿や検索が行えるWebサイトです。
クックパッドでは1998年にサービスを開始した後、2008年にRuby on Railsにリプレースしています。
現在では世界でも指折りのRuby on Rails製巨大サイトとなりました。
クラウドワークス
クラウドワークスは国内最大級のクラウドソーシングサービスです。
クラウドワークスではインターネットを通じて仕事を依頼することができるサービスですが、当然お金のやり取りも発生するためシステムの堅牢性は必須項目と言えるでしょう。
そのようなシステムにおいても、Ruby on Railsは活用されています。
食べログ
食べログは日本全国の飲食店を掲載しているWebサイトです。
食べログではユーザー登録機能や、レビュー投稿機能などが実装されており、Ruby on Railsによって実現されています。
さらに、エリアやキーワード、日時による細かい検索も可能であり、グルメポータルサイトでのRuby on Rails活用の最たる例と言えるでしょう。
まとめ:できることいっぱいのRuby on RailsはWebサービス開発に最適なフレームワーク
Ruby on RailsはRubyで構成されたオープンソースのWebアプリケーションフレームワークです。
Rubyとの違いとしては、プログラミング言語とフレームワークという違いがあります。
Ruby on RailsはWebアプリケーションフレームワークであるため、Webアプリケーション・サービスの開発に向いています。
その一例として、ブログや通販サイト、SNSなどの開発が可能です。
反対にWebアプリケーション以外の開発は向いていないため、スマホアプリ開発や機械学習などを行いたい場合は別のプログラミング言語、フレームワークを利用するとよいでしょう。
Ruby on Railsを活用した事例は多く存在しており、この記事のなかでも紹介しましたので、まずは事例から開発できるイメージを掴み、実際にWebアプリケーション・サービスの開発を行ってみてはいかがでしょうか。