Strutsの知識を基に、Ruby on Railsを学ぶ方法:JavaエンジニアのためのRuby入門(3)(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リリース(本稿執筆時点の最新バージョン)
MVCアーキテクチャに沿ってRails、Strutsを比較してみると
Railsを学ぶJavaエンジニアにとってうれしい点は、Rails、Strutsの両者ともにフレームワークの基本的な設計概念としてMVCアーキテクチャを採用しているところでしょう。
MVC自体を知らない人は、まず「MVCとは何なのか」という学習から始める必要があります。しかし多くのJavaエンジニアは、Strutsについて多少なりとも知識を持っているのではないでしょうか。Strutsで得たMVCの知識を、Railsにマッピングして考えることが可能だと思います。
以下、MVCにおける両者の共通点と相違点について考えてみます。
RailsのMVCに当たる各コンポーネントと、Strutsの各コンポーネントとの関係をまとめたのが図1です。両者は同じMVC準拠のアーキテクチャではあっても、Model(モデル)とController(コントローラ)については責務の分担が少々異なっていますので、その点に注意して見ていきましょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
- コントローラ
まずコントローラについては、StrutsではActionServlet継承クラスと設定ファイル(いわゆるstruts-config.xml)がアプリケーションの動作制御を、Action継承クラスが個々のビジネスロジックを受け持つのに対して、RailsではActionControllerコンポーネントが両方の役割を受け持ちます。
ただしRailsの場合、「設定より規約」の哲学に基づき、デフォルトの規約に従うことで、Strutsでいうところのstruts-config.xmlに相当するファイルを記述する必要がなくなっています(図2)。
Copyright © ITmedia, Inc. All Rights Reserved.