Javaエンジニアから見た、StrutsとRailsの決定的な相違点としては、やはり「Railsには、Strutsにおけるstruts-config.xmlのような設定ファイルがない」というものが挙げられるでしょう。これには、「Railsの哲学」の1つである「設定より規約」という考え方が大きく影響しています。
「設定」の記述により開発者がルールを定める前に、「規約」によってあらかじめデフォルトのルールを決めておくという考え方で、「規約」に従う場合には設定の記述を省略できます。
例えば、Strutsにおけるstruts-config.xmlには、次のような記述が登場します。
<action path="/authenticate" type="sample.LoginAction" input="/jsp/login.jsp"> <forward name="main" path="/jsp/main.jsp"/> </action>
これは、このアプリケーションにおいて、
といったルールを、「設定」の記述によって定めていると考えることができます。
このような「設定」を記述できることは、開発者がさまざまなルールを柔軟に定められるキャパシティを与えます。半面、特定用途のアプリケーションにおいて異なるルールを混在させたいと思う場面は意外と少ないため、ほぼ同一のルールを繰り返し書くことになり、冗長性を生み出す原因の1つともなっています。
一方Railsでは、これらに対して「規約」が定められています。上記の例にならって表現すると、
という「規約」が存在しているため、この「規約」に従う限りにおいては、いわゆる「設定」の記述を行う必要がないのです。
Railsでは、このような規約が多く用意されており、コード量の大幅な削減と可読性・メンテナンスのしやすさの向上に貢献しています。
Railsでは、scaffoldと呼ばれるコードジェネレータを使うことによって、データベース上のあるテーブルに対してCRUD(Create、Read、Update、Delete)操作を行うアプリケーションのサンプルを簡単に生成することができます。scaffoldはアプリケーションを短期間で開発するための強力なツールで、scaffoldで生成されたコードを「足場、土台」として実際のアプリケーションを開発することも可能です。
Railsをこれから学習しようという方にとって、scaffoldで作成されたコードはよい学習教材ともなります。Strutsにもいろいろなサンプルコードが用意されていますが、scaffoldでは任意のテーブルに対してアクセスできるサンプルが自由に作れてしまうため、お仕着せ的でない、よりリアリティのある教材が手に入ることになります。
多くのJavaエンジニアは、IDEを用いてコードの実装を行っていると思います。対してRubyのエンジニアには、強力なテキストエディタとシェルだけでコードを実装していく方が多いようです。
しかしRubyやRailsの開発においても、いくつかのIDEが用意されています。中でもJavaエンジニアになじみやすいと思われるのが「RadRails」と「NetBeans」です。
RadRailsはJava開発用のIDEとして有名なEclipseのプラグインとして実装されており、操作感はEclipseに非常に近くなっています。NetBeansももともとはJava開発用のIDEでしたが、最近ではサン・マイクロシステムズのJRubyへのコミットの動きに合わせてか、急速にRuby/Railsサポートが強化されてきています。
これまで3回にわたり、JavaエンジニアがRubyやRailsを学習していくためのいろいろなトピックスを紹介してきました。いかがでしたか。
記事ボリュームの関係もあり、あまり深いところまで触れることができなかったトピックスもありますが、これからRubyやRailsを学習していこうとお考えのJavaエンジニアの方にとって、本記事が少しでもお役に立てましたら幸いです。
中越智哉
北海道出身。北海道大学大学院電子情報工学専攻修士課程修了。在学中はJavaとLinuxに熱中。1999年にテンアートニ(現・サイオステクノロジー)に入社し、Javaの受託開発案件や教育事業などを幅広く担当。2006年3月にナレッジエックスを設立。同社では主にJava/Rubyを中心としたIT開発技術の教育・研修に従事。2007年にはRuby/Rails講師養成講座で講師を務めるなど、Ruby研修講師の実績も豊富。趣味は自転車と草野球、そして毎日欠かさない耳かき。
Copyright © ITmedia, Inc. All Rights Reserved.