TOPシステム開発> Railsのバリデーション
徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

第3回:JSFとRailsで比較(後編)

著者:DTS  五座 淳一   2006/9/12
前のページ  1  2  3
Railsのバリデーション

   JSFのように、ビューに記述する形のバリデーションは、Railsにはありません。その代わりに、モデルにバリデーションを記述することができます。この場合、データベースに格納する直前に値の正当性をチェックしています。
Railsのバリデーション
class User < ActiveRecord::Base
   validates_length_of :name, :in => 4..32
end


バリデーションに比較結果

   バリデーションがビューにあるべきかモデルにあるべきかについては、それぞれ好みがあり賛否が分かれるところではありますが、Railsでは、データベースに格納する直前で正当性の確認をすることで、データの不整合を確実に防ぐという狙いがあります。

   しかし、データベースに格納しない入力値をチェックすることができません(プラグインを使用することで、ビューでの入力チェックを実施することは可能です)。


まとめ

   両フレームワークについて、記述量に着目した場合、Railsの方が多くの比較項目で記述量が少ないという結果になりました。

   たしかに、記述量のみで比較してみるとRailsに分があることは間違いありませんが、差がついた主な要因は、ゲッターとセッターそして設定ファイルです。ゲッターとセッターはEclipseなどのIDEが自動的に補完してくれますし、設定ファイルについても開発ツールを使えばグラフィカルに編集でき、画面遷移などの情報を一目で把握することもできるというメリットも忘れてはいけません。

   次に、アーキテクチャという観点で考えると、JSFはレイヤを明確に分割している分、各レイヤで採用するフレームワークの幅が広がり、レガシーの資産を有効に活用できます。また、一部のレイヤだけを新しいフレームワークに切り替えることが容易にできるなど、拡張性が高く、柔軟な構造になっています。逆にRailsはレイヤを分割しないことによって、シンプルなアーキテクチャと、高い生産性を実現できる構造になっています。

   拡張性、柔軟性を重視しているJSF、シンプルなアーキテクチャで、開発ツールに頼らずとも高い生産性を発揮するRailsとなっていることがわかります。

   次回は、DIコンテナとRailsの比較を行います。

前のページ  1  2  3


株式会社DTS  五座 淳一氏
著者プロフィール
株式会社DTS  五座 淳一
技術部所属。入社以来、交換機や携帯電話、Webシステムなど様々な開発を担当する。Ruby on Rails上に構築したオープンソースのCMS「Rubricks」(http://rubricks.org/)のコミッタ。


INDEX
第3回:JSFとRailsで比較(後編)
  前回は
  Railsのビューヘルパー
Railsのバリデーション