Ruby on Railsとは、と聞かれて答えに困ったことはないでしょうか。一般的にはプログラミング言語Rubyで作られたWebアプリケーション用のフレームワークとされています。しかしITに詳しくない方にそう説明すると、専門用語を使わずに説明してほしい、と言われてしまうかもしれません。
今回はRuby on Railsとは、と聞かれてもすらすら答えられるように、Ruby on Railsの基礎について解説します。
Ruby on Railsとは
Ruby on Railsとは、プログラミング言語Rubyで作られているオープンソースのWebアプリケーション用のフレームワークです。Webアプリケーションの開発にRubyを使うとすれば、そのほとんどでRuby on Railsが使われています。
まずはRuby on Railsの基本について解説します。
プログラミング言語Rubyがベース
Ruby on Railsは、オープンソースのプログラミング言語Rubyで作られており、Rubyと同じくオープンソースで公開されているフレームワークです。
なおRubyには、文法が解りやすくシンプルで読み易いプログラムコードが書けるという特徴があり、さらにオブジェクト指向のプログラミング言語のため他の人が作ったプログラムを利用しやすい、というメリットを持っています。
そしてRuby on Railsには、「同じことを繰り返さない」という基本理念がありますが、これはRubyのオブジェクト指向の考え方と一致しており、さらにRubyGemsのライブラリを組み合わせれば短期間でWebアプリケーションの開発が可能です。
フレームワークとは
Ruby on Railsを一言で言えばWebアプリケーション用のフレームワークですが、そもそもフレームワークとは何でしょうか。
このフレームワークとは、「枠組み」「骨組み」「構造」といった意味を持つ英語のframeworkが語源のIT用語で、特定の用途で使われるアプリケーションの基本構造をあらかじめ作ってあるものです。そしてフレームワークにコードを追加することで、オリジナルなWebアプリケーションを短期間で作成できます。
RubyのフレームワークとしてはRuby on Railsが有名ですが、古くから使われているJavaのStrutsや、PHPのLaravel、CakePHPなど、Ruby以外のプログラミング言語にもフレームワークがあり、それらもWebアプリケーション開発に利用されています。
Webアプリケーション構築用
先ほど紹介したようにフレームワークとは、特定の用途で使われるアプリケーションの基本構造をあらかじめ作成したものです。その1つであるRuby on Railsは、Webアプリケーションの構築に使用されます。
Ruby on Railsで作れるWebアプリケーションとは次のとおりです。
- 企業などの公式サイト
- オンラインショッピング等を目的とした電子商取引用のWebサイト
- ソーシャルネットワーキングサービス
- インターネットを介した情報収集
- 企業内などで使われる業務システム
RubyとRuby on Railsの関係
Ruby on RailsがRubyで書かれたフレームワークであり、Rubyのコードを追加することでWebアプリケーションを開発できます。しかしRubyを勉強したからすぐにRuby on RailsでWebアプリケーションを開発できるとは限りません。次からRubyとRuby on Railsの関係を解説します。
そもそもRubyとは
Rubyはオープンソースのスクリプト言語の1つで、オブジェクト指向の考え方を基に作られています。なおオープンソースとは、プログラムの設計図とも言えるソースコードがインターネット上で公開されているソフトウェアを指す言葉で、誰でも無料で利用できます。
またスクリプト言語とは、プログラムの書かれたテキストファイルを読み込み、すぐに実行するタイプのプログラム言語を指す言葉です。そのためRubyは、Rubyのプログラムを解析し、そこに書かれた処理を実行するためのアプリケーションが必要で、そのアプリケーションがオープンソースとして公開されています。
最後にオブジェクト指向ですが、これはアプリケーションを構成するプログラムのパーツをオブジェクトという単位にすることで、別のアプリケーションでも使えるようにする考え方です。
そして、この考え方を採用したRubyを使うことで、他のエンジニア作ったオブジェクトを活用でき、アプリケーションの開発期間を短縮できるなどのメリットが得られます。
Ruby on RailsはRubyで書かれたフレームワーク
先ほど紹介したとおりRubyはプログラム言語のため、作ろうと思えばゼロからWebアプリケーションを作成することが可能です。
しかし、オブジェクト指向のRubyは、他のエンジニア作ったプログラムのパーツを利用しやすいプログラム言語です。そしてWebアプリケーションを構成するパーツをオブジェクトとして用意しておけば、誰でも簡単にWebアプリケーションを開発できます。
そのようなWebアプリケーション用のパーツを組み合わせたフレームワークがRuby on Railsです。なおフレームワークとは、「枠組み」や「骨組み」と言った意味の英語「framework」が語源のIT用語で、Webアプリケーションの開発によく利用される仕組みです。
このようにプログラミングRubyで最も多く使われているWebアプリケーション用のフレームワークがRuby on Railsです。
Ruby on Railsの考え方
Webアプリケーションは、単にパーツを組み合わせれば作れるような簡単なものではありません。Webアプリケーションとはどのようなものかを規定し、さらにその動作をモデル化して、そのモデルを実現するためのパーツを組み合わせなければなりません。
Ruby on Railsは、Webアプリケーションの代表的なモデル、MVCモデルを基に作られたフレームワークです。次から、Ruby on Railsが採用しているMVCモデルや考え方について解説します。
Ruby on Railsの基本はMVCモデル
先ほど紹介したようにRuby on Railsは、MVCモデルに基づいたWebアプリケーションの開発用に作成されたフレームワームです。そしてMVCモデルとは、Webアプリケーションの動作を、Model、View、Controllerの3つの処理に基づいています。
この3の処理を簡単に説明すると次のとおりです。
- Model
Webアプリケーションが扱うデータ処理。データベースのテーブルと連携している。 - View
Webブラウザに表示するHTMLなどを作る処理。 - Contoller
Webブラウザからのリクエストなどに応じてデータを加工したり、他の処理への指示などを担当する。
そしてMVCモデルで作れるWebアプリケーションとは、扱う情報をデータベースで管理し、Webブラウザからのリクエストに応じて作成されたWebページを送信するスタイルです。多くのWebアプリケーションをこのようなMVCモデルで作成できますが、全てのWebアプリケーションを作れるとは限らないので注意してください。
Ruby on Railsの考え方
Ruby on Railsには、経験豊富なWebエンジニアが考える最良の開発方法が含まれており、その方法を運用するための考え方が推奨されています。そしてその考え方とは、次の2つです。
- 同じことを繰り返さない
定義などの作業は一回だけで済ませろ - 設定よりも規約
慎重に設計された規約に従うことにより、設定を不要にする(あるいは軽減する)
この2つのうち、「同じことを繰り返さない」は解りやすいと思いますが、「設定よりも規約」は解り難いかもしれません。Ruby on RailsはMVCモデルに基づいたフレームワークですが、フレームワークの規約に従うことで、最小限の作業でWebアプリケーションを作成できます。
なお設定で独自性を高めることは可能ですが、それではRuby on Railsのメリットを活かせません。Ruby on Railsは、この2つの考え方に従って利用することで、メリットが得られるフレームワークです。
まとめ
これまで紹介したようにRuby on Railsは、最小限のコードを追加するだけでWebアプリケーションの開発が可能な、プログラミングRubyによって記述されたフレームワークです。そのためRuby on Railsを利用すれば短期間でWebアプリケーションを開発できます。
しかしそのメリットを活用するには、Ruby on Railsの規約に従わなければなりません。Webアプリケーションによってはが向いていないケースもあります。メリットとその限界を理解して、Ruby on Railsとはどんなフレームワークか、と聞かれてもうまく説明できるようになってください。
Ruby on Railsは、よく知られているサービスでも使われています。代表的なサービスは次のとおりです。