第2回:JSFとRailsで比較(前編) (1/4)

徹底比較!!Ruby on Rails vs Javaフレームワーク
徹底比較!!Ruby on Rails vs Javaフレームワーク

第2回:JSFとRailsで比較(前編)

著者:DTS  五座 淳一   2006/9/6
1   2  3  4  次のページ
はじめに

   第2〜3回のRailsと比較するJavaフレームワークは、「JavaEE標準」のプレゼンテーション層のフレームワークであるJSF(Java Server Faces)です。

   JSFは、JCP(Java Community Process)によって策定が行われている仕様であり、2004年3月に正式リリースされ、最新版はバージョン1.2となっています(2006年8月現在)。

   このJSFの仕様に準拠したフレームワークもいくつかリリースされています。中でもオープンソースであるApache MyFacesが有名です。

   多くのフレームワークで、プレゼンテーション層として提供している共通した機能は表1の通りです。今回はこれらの機能ごとに、JSFとRailsを比較していきます。

  • ルーティング
  • ビュー
  • ビュー/アクション連携
  • ビューヘルパー
  • バリデーション

表1:フレームワークが提供する機能(プレゼンテーション層)


アーキテクチャ

   機能ごとの比較をはじめるまえに、RailsとJSFのアーキテクチャを比較してみましょう。

   両フレームワークともMVCモデルを採用したアーキテクチャであり、MVCモデルを構成するそれぞれのコンポーネントと対応するレイヤは図1のようになります。

RailsとJSFのアーキテクチャ
図1:RailsとJSFのアーキテクチャ
(画像をクリックすると別ウィンドウに拡大図を表示します)


JSFのアーキテクチャ

   JSFはプレゼンテーション層のフレームワークです。ビジネス層やインテグレーション層には、EJB/Spring/Hibernateといったフレームワークを組み合わせて使用します。


Railsのアーキテクチャ

   Railsは、プレゼンテーション層からインテグレーション層までを網羅しています。

   とくにRailsのコントローラであるActionControllerは、Faces Servlet/Java Bean/Service Layerが扱う範囲までをサポートしています。


アーキテクチャの比較結果

   両フレームワークのアーキテクチャの大きな違いであるレイヤの扱いの違いからは、下記のようなメリットが生まれます。

JSF/レイヤを明確に分割したメリット
  • レイヤごとに分業しやすい
  • 変更による影響を他のコンポーネントが受けにくい
  • コードの再利用性が高い
  • 単体テストしやすい
Rails/レイヤを分割しないメリット
  • 記述量が少ない
  • シンプルなアーキテクチャ

表2:レイヤを分割するメリットと分割しないメリット

1   2  3  4  次のページ


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


INDEX
第2回:JSFとRailsで比較(前編)
はじめに
  ルーティング
  Railsのビュー
  Railsのビュー/アクション連係
徹底比較!!Ruby on Rails vs Javaフレームワーク
第1回 O/Rマッピング
第2回 JSFとRailsで比較(前編)
第3回 JSFとRailsで比較(後編)
第4回 DIコンテナとの比較
第5回 テストフレームワーク
第6回 RailsとGrailsの比較(前編)
第7回 RailsとGrailsの比較(後編)
Ruby on Rails入門
第1回 Railsが注目されている理由
第2回 すぐできるアプリケーション作成
第3回 アーキテクチャと検索機能の追加
第4回 Railsでテストをしてみよう
第5回 Ajaxアプリケーションの作成
第6回 プラグインでさらに生産性アップ
第7回 Linux環境で動作させよう

人気記事トップ10

人気記事ランキングをもっと見る