JavaエンジニアのためのRuby入門

第3回 Strutsの知識を基に、Ruby on Railsを学ぶ方法

ナレッジエックス 中越智哉
2008/4/8

1 2 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日
2004年12月17日
2005年12月14日
2006年3月29日
2006年8月10日
2007年1月19日
2007年11月25日
2007年12月7日
2007年12月18日
Rails 0.5.0リリース
Rails 0.9.0リリース
Rails 1.0リリース(正式版リリース)
Rails 1.1.0リリース
Rails 1.1.6リリース(セキュリティホールへの対応など)
Rails 1.2.1リリース
Rails 1.2.6リリース(1.2系の最終バージョン)
Rails 2.0.0リリース(RESTサポートの強化)
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のコントローラ


モデルとビューについても相違点を確認しよう

1 2 3次のページ


JavaエンジニアのためのRuby入門 バックナンバー

@IT Special 注目企業
@IT Special ラーニング
関連キーワード

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップに役立つサービス
ITトレメ スキルアップに役立つ問題を無料で出題
ラーニングカレンダー ITスキル研修4000件、最新情報の検索できます

キャリアアップ

スポンサーからのお知らせ

・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ

- PR -
@IT Special 注目企業
インデックス

イベントカレンダー

PickUpイベント

- PR -
もっと見る

お勧め求人情報


@IT Special ラーニング