連載
» 2008年04月08日 00時00分 公開

JavaエンジニアのためのRuby入門(3):Strutsの知識を基に、Ruby on Railsを学ぶ方法 (1/3)

実は共通点の多いRubyとJava。Javaエンジニアであり、JavaとRubyの両方のインストラクターでもある筆者が贈る、JavaエンジニアのためのRuby入門。

[中越智哉,ナレッジエックス]

 前回「JavaとRubyの共通点と相違点」では、Javaエンジニアの視点からRubyを学ぶためのポイントをいくつか紹介しました。

 最終回である今回は、Rubyに関心のあるJavaエンジニアの皆さんが最も気になっていると思われるRuby on Rails(以下Rails)について紹介します。JavaエンジニアになじみのあるStruts(本記事ではStruts 1.xを指します)と比較しながら、Railsの学び方のヒントを解説したいと思います。

Ruby on Railsとは

 Railsは、Rubyをベースに作られたWebアプリケーションフレームワークです。Railsそのものの概要や特徴などについては、@ITのリッチクライアント用語辞典 「Ruby on Rails」の項、@ITの記事「WebプログラマはRailsに乗るべきか?」「Javaから見たRuby on Rails」「2006年『Ruby on Rails』が愛された理由」などを参考にしていただければと思います。

Ruby on Railsのリリース履歴(日付は日本時間)

2004年7月25日 Rails 0.5.0リリース

2004年12月17日 Rails 0.9.0リリース

2005年12月14日 Rails 1.0リリース(正式版リリース)

2006年3月29日 Rails 1.1.0リリース

2006年8月10日 Rails 1.1.6リリース(セキュリティホールへの対応など)

2007年1月19日 Rails 1.2.1リリース

2007年11月25日 Rails 1.2.6リリース(1.2系の最終バージョン)

2007年12月7日 Rails 2.0.0リリース(RESTサポートの強化)

2007年12月18日 Rails 2.0.2リリース(本稿執筆時点の最新バージョン)


※Rails 2.0のREST対応に関するニュース:「Ruby on Rails 2.0はとっても“RESTful”」

MVCアーキテクチャに沿ってRails、Strutsを比較してみると

 Railsを学ぶJavaエンジニアにとってうれしい点は、Rails、Strutsの両者ともにフレームワークの基本的な設計概念としてMVCアーキテクチャを採用しているところでしょう。

 MVC自体を知らない人は、まず「MVCとは何なのか」という学習から始める必要があります。しかし多くのJavaエンジニアは、Strutsについて多少なりとも知識を持っているのではないでしょうか。Strutsで得たMVCの知識を、Railsにマッピングして考えることが可能だと思います。

 以下、MVCにおける両者の共通点と相違点について考えてみます。

 RailsのMVCに当たる各コンポーネントと、Strutsの各コンポーネントとの関係をまとめたのが図1です。両者は同じMVC準拠のアーキテクチャではあっても、Model(モデル)とController(コントローラ)については責務の分担が少々異なっていますので、その点に注意して見ていきましょう。

Rails
Struts
Model
ActiveRecord
ActionForm
※DBアクセスは含まない
View
コンポーネント
ActionView
Strutsタグライブラリ
記述方式
ERB
JSP
Controller
制御
ActionController
ActionServlet

struts-config.xml
ビジネスロジック
Action
図1 RailsとStrutsでのMVC
  • コントローラ

 まずコントローラについては、StrutsではActionServlet継承クラスと設定ファイル(いわゆるstruts-config.xml)がアプリケーションの動作制御を、Action継承クラスが個々のビジネスロジックを受け持つのに対して、RailsではActionControllerコンポーネントが両方の役割を受け持ちます。

 ただしRailsの場合、「設定より規約」の哲学に基づき、デフォルトの規約に従うことで、Strutsでいうところのstruts-config.xmlに相当するファイルを記述する必要がなくなっています(図2)。

図2 RailsとStrutsのコントローラ 図2 RailsとStrutsのコントローラ
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。