home wiki.fukuchiharuki.me
Menu

Orca

Orcaはサーブレットの薄いラッパーとして位置づける簡易的なWebアプリケーションフレームワークです。Orcaは主に次のことを目標にしています。*1

  • 1ページ=1クラス+1JSP
  • ブックマーカブル/or NOTなページを区別する
  • パラメータやセッションの取り扱いを楽にする

1ページ=1クラス+1JSP

HTMLのUIモックを起点に開発を進めるページ駆動開発を念頭に置いています。ひとつのページにつきひとつのクラスとひとつのJSPを必要とするようになっています。要するにたとえば「入力ページの入力値チェックは入力ページインスタンスのメソッドがする」し「リダイレクトページなんかない」ということです。

ブックマーカブル or NOTなページを区別する

ページ遷移の方法としてOrcaでは3つの方法があります。ページ名を指定する方法、ページクラスを指定する方法とページインスタンスを指定する方法です。たとえば××確認ページはパラメータによって再現されるべきページではない(ブックマーカブルでない)ページなのでインスタンスを指定してページ遷移します。

パラメータやセッションの取り扱いを楽にする

パラメータや表示項目はページのインスタンスフィールドとして扱います。たとえば所定のアノテーション「@Parameter」をつけたフィールドはパラメータ項目として扱われ、フィールド名で紐づくパラメータの値がセットされた状態でリクエスト応答メソッドがコールされるようになっています。

メニュー

作ってみてなんですが...

プッシュ型ならTeedaまたはSAStrutsが、プル型ならWicketがあるよ*2というのが私の見たところです。それでもあえてOrcaを開発したのはあまりたくさんのことをしないフレームワークが新人研修において必要だったことと、単に私自身の勉強のためです。このためにEJBにも触れてみましたがリフレクションが不自由になってしまうのと、JBossが重たすぎるのとで結局ほとんどを自前で書いてみることにしました。開発期間が短かったこともありいろいろ粗末ですが誰かにとって何かの参考になればと思います。


*1 Orca開発の背景は新人研修におけるシステム開発演習です。本来あるべきクラスの設計をさせるということと、リクエストやパラメータなどの取り扱いの面で負担をかけないようにすることが大きな目的なので、逆にそれ以外のことをほとんど何もしません。
*2 個人的にはWicket推しです。