Ruby on Railsとは

Ruby on Railsは2004年ごろにDavid Heinemeier Hansson氏(通称DHH)らによって開発された、非常に人気のあるオープンソースのWebフレームワークで、Rubyを使ってWebアプリケーションを作成するための枠組みを提供してくれます。

Ruby on Rails logo

Railsで作られたWebサービスの例としては CookPad食べログQiitaなどがあります。他にも Ask.fmGitHubHuluもRailsですし、今ではかなり有名になったTwitterも初期バージョンはRails製でした。

Railsの流儀に従ってプログラムすることで楽しく効率的にWeb開発を行うことができ、これを肯定的なニュアンスで「レールに乗る」と表現することがあります。 現在のWebは使われる技術も複雑になっており、ゼロから学んでいくと大変な時間がかかります。そこでまずは「レールに乗る」ことで正しい「型」を身に付け、なにか作れるようになったあとに理解を深めて独自の改良を加えていく……という順番が良いでしょう。スポーツや武道の上達プロセスに通じるところがあるかもしれません。

登場から10年以上経つ現在でも、GitHub上のレポジトリで進められている開発は非常に活発です。執筆時点のバージョンはv4.0.3ですが、次のバージョンv4.1.0に向けて世界中のRubyエンジニアによって開発が進められています。

Railsの哲学

先に「Railsの流儀」と書きましたが、Railsにはいくつかの「哲学」とでも呼ぶべき指針があります。以下、簡単に紹介します。

  • Don't Repeat Yourself ... DRY(ドライ)の原則
    • 似たコードがいろいろな場所に散らばると、後々のメンテナンスが難しくなってしまいます。そこでRailsは「同じことを繰り返さない」というDRYの原則に従い、徹底的な抽象化・モジュール化を行うことで無駄コードの少ないフレームワークを実現しています。
  • Convention over configuration ... 設定より規約(CoC)
    • ゼロから実際に動くアプリケーションを作成するまでには、たくさんのコードを書き、設定を行う必要があります。そこでRailsがあらかじめデフォルトのやりかた(= 規約)を決めておき、開発者はこの規約に従うことで設定を行う手間を省略し、少ないコード量でアプリケーションを動作させることが出来ます。

これらはRails思想の中核にあるとはいえ、実際にコードに触れてみないとなかなかピンと来ないと思います。しばらくRailsを学んだ後に思い出して「なるほどこれがDRYやCoCか」と思えればそれで良い、と軽く考えておいてください。

RailsのMVCアーキテクチャ

Railsは「MVC」というアーキテクチャに基づいたフレームワークです。MVCとは設計パターンのひとつで、アプリケーションを「Model, View, Controller」の3つに分解することでコードの見通しをよく、保守性を高めることを目的とします。具体的にそれぞれの役割は以下のとおりです。

  • Model: データ
    • アプリケーションが扱うデータ表現と、そのデータに関わる処理(ロジック)を担当する。
  • View: ページ
    • ModelデータをHTMLとしてユーザに見せるための出力を担当する。
  • Controller: 振り分け役
    • ユーザからのアクセスや入力を受け取り、ModelやViewに処理を指示する役割。

次ページ以降で実際に目にすることになりますが、Railsアプリケーションの実際のファイル構成はMVCアーキテクチャに沿ったものになります。

次のページでは、Railsをインストールする方法を紹介します。