この記事を読むのに必要な時間:およそ 1 分
そもそもMVCモデルって?
検索エンジンや乗り換え案内,ネット銀行などのインターネット上の便利なサービスは,Webアプリケーションと呼ばれる仕組みで動いています。たとえば検索エンジンでは,調べたい単語を入力してしばらく待つと,サーバ内でデータベースが検索され,関連Webページ一覧が出力されます。この「ユーザーの入力」→「サーバ内の処理」→「結果の出力」という基本の流れは,ほぼ全てのWebアプリケーションで共通しています。
それなら,アプリを「入力」と「処理」と「出力」の3つに分けて作ったら便利じゃない? …という発想で考えられたのが,MVC(モデル・ビュー・コントローラ)モデルです。MVCモデルでは,Controllerはユーザーからの入力を受け取ってModelに渡す役目を担当します。Modelはアプリの本体で,入力データを元にデータベースから結果を得る役目を担当し,Viewは結果をWebページに表示する役目を担当します。
ただ,MVCモデル自体は1970年代からある技術で,Javaでは,J2EEやStrutsなどのMVCフレームワークが10年以上使われてきています。それがここに来て急に注目を浴びるようになり,あのマイクロソフトまでもがあわてて「ASP.NET MVC」なる類似品を出すまでに至ったのは,「Ruby on Rails」の革新性によるところが大なのです。
Ruby on Railsのどこがすごいの?
Ruby on Railsがそれまでのフレームワークと最も違うのは,導入が非常に簡単な点です。名前が示しているように,RailsはWebアプリというゴールまでの「レール」です。DRY(Don't Repeat Yourself:同じ記述を繰り返さない)とCoC(Convention over Configuration:設定よりも規約)という2つの原則の下に,極力ユーザーの手を動かさなくて済むように設計されているため,必要なソースをセットするだけで自動的にアプリが完成する仕組みになっています。
また,各種ライブラリやサーバ,テストツールなどを最初から含んだフル機能フレームワークであることも特徴です。開発時やテスト時でも外部のコンポーネントを導入する必要がないため,Railsだけで全ての作業がまかなえるという安心感があります。
バージョン3.0で何が変わったの?
そんなRuby on Railsも2010年にバージョン3.0となり,大幅に手を加えられました。最も大きな変更は,別プロジェクトであるMerbと統合されたことによりモジュール性が向上した点です。ユーザーが欲しい機能だけを取捨選択して搭載できるようになり,軽量コンパクトなフレームワークを作ることが可能になりました。
最新のWeb技術も積極的に取り入れています。Rails 2で採用されたRESTfulインターフェースはさらに推進され,美しいURL設計が可能になりました。また,HTML5への対応も進み,それに伴い,動的コードであるJavaScriptをHTMLから分離する設計(Unobtrusive JavaScript)が推し進められています。
Rails 2から大きく変わったため,リリース当初はRubyとの互換性に問題がありましたが,半年以上経ってほぼ問題はクリアされています。最新のRails 3とRuby 1.9で,ぜひ快適なWebアプリ開発を体験してください。