
第3回 Strutsの知識を基に、Ruby on Railsを学ぶ方法
ナレッジエックス 中越智哉
2008/4/8
| 実は共通点の多い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 |
||
・コントローラ
まずコントローラについては、StrutsではActionServlet継承クラスと設定ファイル(いわゆるstruts-config.xml)がアプリケーションの動作制御を、Action継承クラスが個々のビジネスロジックを受け持つのに対して、RailsではActionControllerコンポーネントが両方の役割を受け持ちます。
ただしRailsの場合、「設定より規約」の哲学に基づき、デフォルトの規約に従うことで、Strutsでいうところのstruts-config.xmlに相当するファイルを記述する必要がなくなっています(図2)。
![]() |
| 図2 RailsとStrutsのコントローラ |
| モデルとビューについても相違点を確認しよう |
JavaエンジニアのためのRuby入門 バックナンバー
- 第1回 Javaエンジニアにこそ、Rubyの良さが分かる
- 第2回 JavaとRubyの共通点と相違点
- 第3回 Strutsの知識を基に、Ruby on Railsを学ぶ方法
|
|
| スキルアップに役立つ問題を無料で出題 | |
| ITスキル研修4000件、最新情報の検索できます |
キャリアアップ
スポンサーからのお知らせ
・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ
- - PR -


PHP技術者認定の最上位、ウィザード試験が5月より開始