Ruby on Railsでできることを挙げてみると、どれくらい思いつくででしょうか。Ruby on RailsはオープンソースのWebアプリケーションフレームワークなので、すぐに思いつくのはWebアプリケーションでしょう。
しかし、Webアプリケーションと言っても、その全てがRuby on Railで作成できる訳ではありません。Ruby on Railsに向いているWebアプリケーションばかりではなく、向いてないものもあります。今回はRuby on Railsでできることをメリットとデメリットから紹介します。
そのそもRuby on Railsとは
Ruby on Railsは、オープンソースのプログラミング言語Rubyで作られたWebアプリケーション用フレームワークです。Ruby on Railsができることを紹介する前に、まずはRuby on Railsとはどのようなもので、何に使われるかについて簡単に紹介します。
フレームワークとは
Ruby on Railsに代表されるフレームワークとは、Webアプリケーションを構築するために必要な機能をあらかじめ用意されており、さらにそれらの機能を拡張することが可能で、規約に沿ったプログラムコードを追加してオリジナルなWebシステムを構築するための仕組みです。
RubyではRuby on Railsが有名ですが、広く使われているプログラミング言語それぞれにフレームワークが作られており、Webシステムの構築に広く利用されています。そのため現役のWebエンジニアの多くは、何らかのフレームワークを習得して仕事に利用しています。
Ruby on Railsは何に使われる?
Ruby on RailsはWebアプリケーション構築のために作られたフレームワークです。そのためRuby on Railsを利用することで、Webアプリケーション構築が可能です。
なおWebアプリケーションとは、データベースに格納したデータを用い、Webブラウザからのリクエストに応じて動的にHTMLを生成して、ユーザーが求める情報を提供したり、リクエストを受付する機能を提供します。
そのためRuby on Railsには、データベースをアクセスする機能や、Webブラウザからのリクエストを受け付ける機能、さらに動的なHTMLを生成する機能などが組み込まれています。
またRuby on Railsだけでもできることはかなり多いのですが、さらにRubyGemsなどのライブラリと組み合わせて、より多機能のWebアプリケーション作成も可能です。
Ruby on Railsの特徴はMVC
Ruby on Railsの最大の特徴は、その設計に「MVCモデル」を採用している点です。なおMVCモデルとは、構築するWebシステムをModel(モデル)・View(ビュー)・ Controller(コントローラ)の3つに分けて構築する方法です。そしてこの方法を採用することで、役割の分担や保守の効率化などのメリットが得られます。
「MVCモデル」の3つの機能を次に簡単に解説します。
- モデル
データベース内のデータを取得したり、「更新」「削除」「新規作成」といった機能を担当する部分。 - ビュー
Webブラウザに表示するHTMLを動的に生成する部分。 - コントローラ
Webブラウザからのリクエストに応じて、モデルなどのデータをビューで表示するための加工処理などを担当する部分。
Ruby on Railsにできること
先ほど紹介したようにRuby on RailsはWebアプリケーション構築用のフレームワークです。そのためRuby on Railsにできることとは、Webアプリケーションの構築です。とはいえ、どんなWebアプリケーションの構築にも使える訳ではありません。えきることは限られています。
まずはRuby on Railsの利用が向いているWebアプリケーションの特徴を紹介します。
Ruby on Railsを導入するメリット
Webシステム開発に使えるプログラミング言語はRubyだけではありません。それでもRubyで作られているRuby on Railsを採用するのは、それだけメリットがあるからです。そしてRuby on Railsを利用する際、よく挙げられるメリットは次の3つです。
- 少ない記述で済むのでそれだけ開発期間を短縮できる。
- RubyGemsなどのライブラリを活用すことで少ない人員で開発できる。
- 読み易いコードのためメンテナンスが容易になる。
この3つのメリットを活かせるWebアプリケーションが、Ruby on Railsに向いていると言えます。
メリットを活かせる用途
Ruby on Railsのメリットを活かせるWebアプリケーションとして真っ先に挙げられるのが、これまでに無いような新しいサービスです。
アイデアを思い付いたとしても、それをWebアプリケーションにするのに時間がかかっていたら、他の誰かが同じようなサービスを始めてしまうかもしれません。その点、短い開発期間でWebアプリケーションを開発できるRuby on Railsを活用すれば、短期間でサービスを開始できます。
さらに社員が少ないスタートアップ企業では、少ない人数でサービスを開発できたり、機能追加やメンテナンスができる点も見逃せません。スタートアップで新しいサービスを立ち上げたい場合は、Ruby on Railの利用が向いています。
Ruby on Railsが使われたWebアプリケーション
今では広く知られているサービスも、Ruby on Railsが使われています。
・クックパッド
・食べログ
・価格.com
・Airbnb
・Gunosy
短期間で開発できるメリットを活かすには
Ruby on Railsが少ない人数でも短期間でサービスを立ち上げたり、そのサービスに次々に新しい機能を追加していくことが可能です。とはいえそれを担当できるRubyエンジニアには、少ない人数でも開発に関係する作業を担当できるだけのスキルと経験が求められます。
そのため自分ができることを増やし、Ruby on Railsを利用すれば1人でもサービスを立ち上げられるようたRubuエンジニアを目指してください。
Ruby on Railsが向いていない用途
Ruby on Railsを利用してできることはたくさんあります。しかし全てのWebアプリケーションを作れるとは限りません。Ruby on Railsが向いていないWebアプリケーションもあります。
次にRuby on Railsに向いていないWebアプリケーションを紹介します。
処理速度を優先したいWebアプリケーション
Rubyのデメリットとしてよく挙げられるのが処理速度の遅さです。もともとスクリプト型プログラミング言語のRubyでは、Rubyコマンドが読み込んだプログラムを逐次解析して処理を実行します。そのためコンピュータで直接実行できるプログラムに変換するコンパイル型に比べると、処理速度が遅い点がデメリットです。
Rubyで書かれたRuby on Railsも処理速度の遅さがデメリットです。そのため処理速度を優先したいWebアプリケーションには向いていません。多くの利用者が同時にアクセスするようなWebアプリケーションやインターネットを介してプレイヤー同志が遊べるゲームなどの開発には向いていません。
Rubyのジャストインコンパイラ
Rubyの処理速度の遅さを改善するために、Rubyの最新版ではジャストインコンパイラを採用しています。なおジャストインコンパイラとは、スクリプトを解析した時点でコンパイラ言語のようなCPUの命令に変換し、それを実行することで処理速度を改善する記述です。
そしてジャストインコンパイラにより、近いうちにRuby on Railsで作られたWebアプリケーションの処理速度も大幅に改善されると予想されています。
[/comment]
MVCモデルが向いていない仕組み
Ruby on RailsはMVCモデルに基づいたWebアプリケーション開発用のフレームワークです。しかし全てのWebアプリケーションがMVCモデルで構築できるとは限りませんMVCモデルが向いていないWebアプリケーションも幾つもあります。
なおMVCモデルとは、モデル(model)すなわちデータベースに格納された情報を基にしたWebアプリケーションを対象にしたモデルです。そのためデータベースを使わない仕組みの開発にはRuby on Railsは向いていません。
例えば人工知能を活用した仕組みやリアルタイムで処理するようなWebアプリケーションの開発には向いていません。まずはMVCモデルの理解を深めて、Ruby on Railsのメリットを活かせる用途で活用してください。
まとめ
これまで紹介したようにRuby on RailでできることはWebアプリケーションの開発です。しかし、どんなWebアプリケーションでも作成できる訳ではありません。Ruby on Railは、MVCモデルが適したWebアプリケーションの開発に向いているフレームワークです。
Ruby on RailsはいろいろなWebアプリケーションの開発に適用できますが、メリットとデメリットを理解したうえで利用してください。
Ruby on Rails以外のMVCモデルのフレームワークの例
JavaのStruts、Spring MVC
PHPのCakePHP、Laravel
PythonのDjango
JavaScriptのVue.jsなど