ジャンル:Webアプリケーション開発環境 作者:David Heinemeier Hansson氏など
ライセンス:MIT License URL:http://www.rubyonrails.org/

 Ruby on Railsはデータベースを利用したWebアプリケーションを構築するためのフレームワークだ。RubyとMySQLで構成される。新規に記述するコードの量が少なくて済み,簡単にWebアプリケーションを開発できる。利用可能なアプリケーションも多い。


写真1●Ruby on Railsで構築したWebサイト 郵便番号から住所や地図を検索するmap.rails2u.com
[画像のクリックで拡大表示]

写真2●ムービーによる「10分で作るRailsアプリ for Windows」
[画像のクリックで拡大表示]

写真3●Ruby on Railsで構築したRSSリーダー・サイトのFEEDBRINGER.net
[画像のクリックで拡大表示]

 Ruby on Rails(以下,Rails)は,2005年12月14日にバージョン1.0が登場したこともあり,今最も注目されるWebアプリケーション・フレームワークといえるだろう(写真1)。PHPやJavaを使った既存のフレームワークに比べて,開発時間が短い,すなわち生産性が高いことが特徴である。Ajax(Asynchronous JavaScript and XML)といった先端の技術にも対応している。

 特にデータベースを使ったCRUD(Create,Read,Update,Delete)と呼ばれる種類のWebアプリケーションでは,他のフレームワークに比べて非常に高い生産性を誇る。

 公式サイトではblogシステムを15分で作成する手順を納めたムービー「Creating a weblog in 15 minutes」が公開されているので,その生産性の高さを実際に目で確かめてほしい。日本語では「10分で作るRailsアプリ for Windows」が,Windows上にRails環境を構築し,オンラインブックマークを作る様子をテロップ付きで公開されているので,こちらも参考にしてほしい(写真2)。

多くのWeb 2.0的サイトがRailsを採用

 Railsは昨今流行のWeb2.0と共に語られることが多い。これはRailsの生い立ちが37signals社のBasecampというWeb2.0世代のアプリケーションの代表と言われ,Ajaxを使った使いやすいユーザーインターフェースが特徴のアプリケーションの開発から生まれたフレームワークだからだ。

 そのため,Railsで作られたアプリケーションは,AjaxやWebサービスなどを積極的に使ったサイトが数多く見られる。

 2005年12月13日に,初めての安定版1.0が公開されたばかりであるが,既に公式WikiのRealWorldUsageには,Railsで構築されているサイトが170以上もリストされている。

 日本のサイトはまだ多くないが,RSSリーダのFEEDBRINGER.net写真3)や,郵便番号から住所や地図を検索するmap.rails2u.com(写真1)が公開されている。

テスト駆動式で品質向上にも力

 公式サイトでも素早くアプリケーションを作成する様子がムービーで複数公開されているなど,Railsは高い生産性という点が非常に強調されている。

 最近ではRailsと同じ様なコンセプトで開発され,高い生産性を歌ったMVCフレームワークがPHPやPerlなどでもリリースされているが,Railsを選ぶ理由は,高生産性だけではない。

 速いだけではなく,品質を上げることにも力が注がれている。

 Railsではテスト駆動式の開発を推奨しており,コードの自動生成などでは,通常のコードと同時にテスト用のコードも自動生成されるようになっている。データベースを用いたアプリケーションの場合,テスト用のデータベースを用意する必要があるが,これもFixtureという仕組みで簡単に生成できる様になっている。これにより,テストファーストを簡単に実践することができるようになっている。

 また,アプリケーションの公開やプロセスの再起動,データベースの変更などを。自動化するツール,SwitchTowerが同梱されている。公開するアプリケーションサーバーや,データベースサーバーのアドレスをレシピファイルに記述し,開発マシン上で,「rake deploy」と実行するだけで,各種サーバーに最新のソースコードをSubversionやCVSからチェックアウトし,プロセスの再起動やデータベースの構造変更などを行う。

 もし,公開したアプリケーションに間違いなどがあった場合,「rake rollback」と実行すると,前のバージョンに戻すことが可能だ。

 この様に,Railsは単なる高生産性アプリケーションフレームワークというだけでなく,アプリケーションの精度を上げる為のテストや公開,その運用までをサポートした広い意味でのフレームワークとなっている。

Railsの弱点

 しかし,Railsが万能であり,PHPやJavaなど既存の環境をすべて置き換えられるという訳ではない。

 Railsの作者であるDavid Heinemeier Hansson氏は元々PHPユーザーであり,いまでも37signalsのページではPHPが使われている。

 Railsはしっかりしたモデルを持ったデータベースアプリケーションには向いているが,メールフォームやアンケートなど,遷移の少ないものでは,その利点をあまり発揮しない。またPHPなどに比べて,メモリーを消費すると言う問題もあり,資源の少ないサーバーでの運用には注意が必要である。

 稼働実績の少なさも弱点ではあるが,37signalsのBasecampはXeon 2.4GHz dual,メモリー2Gのサーバー2台で40万リクエスト/日を処理している。他にも43Things.comでも20万リクエスト/日の処理をこなせていることから,かなり安定性は高いと言えるだろう。

 では実際に,Rails環境を構築してみよう。