ひがやすを技術ブログ

電通国際情報サービスのプログラマ

SAStruts 1.0.1-rc2リリース

リリースノートはこちら

  • Bug
    • [SASTRUTS-18] - ArrayWrapperでListを実装するようにしました
    • [SASTRUTS-20] - ActionからActionへ遷移できない問題を修正しました
  • Improvement
    • [SASTRUTS-19] - ActionのプロパティがMapの場合も扱えるようにしました

ダウンロードはこちら
http://sastruts.seasar.org/download.html
このバージョンから、チュートリアルに、ResourceSynchronizerプラグインを使ったリッチなエラーページをつけました。ResourceSynchronizerを超ざっくり説明すると、ブラウザからEclipseを操作するプラグインです。
チュートリアルのリッチなエラーページをクリックすると、Ext.jsで作ったリッチなエラーページが表示されます。スタックトレースのツリーをクリックすると、AjaxEclipseに問い合わせ、該当するソースコードを表示します。
これが、Seasarの新しい開発スタイル。ブラウザとEclipseの融合。新たな開発スタイルをお楽しみください。
詳しくは、ハードコピーつきで、太一が解説しています。
http://d.hatena.ne.jp/taichitaichi/20080211/1202759047

Strutsをなめんな

Strutsがいかにだめなフレームワークかという話。
ではなくて、Strutsに文句を言う前に、Webフレームワークを理解してから、批判しろという話。
Webフレームワークのやってることを超簡単に説明すると次のようになります。

  • リクエストが飛んできたときに、URLに関連付けられているコントローラオブジェクトを見つける。
  • リクエストのパラメータを何らかのオブジェクトにつめる。
  • 入力値のバリデーションを行なう。
    • NGなら特定のURLに遷移する。
  • コントローラオブジェクトにリクエストのパラメータをつめたオブジェクトを設定する。
  • コントローラの特定のメソッドを呼び出す。
  • 特定のURLに遷移する。

フレームワークがやってくれることを自前でやってもいいでしょう。自前でやってもやることは同じです。
Strutsは、上記のことを淡々とやってくれる薄いフレームワークなのです。Strutsのだめなところは、上記のことをすべて設定ファイルに書かなければいけないことで、それ以外は、無駄なことはほとんどしていない見通しの良いフレームワークです。
Strutsは、もっと見直されていい。設定ファイルを書く必要をなくして、HOT deployをサポートすることで、弱点は解消され、非常に使いやすいフレームワークに生まれ変わります。そういう発想で作られたのが、SAStrutsです。
Struts以降さまざまなWebフレームワークがStrutsに挑戦し、敗れたのはなぜか。多くのフレームワークは、プラスアルファの部分を多く出そうとして、余分なお世話として判断されてしまったのではないでしょうか。薄くすればするほど、Strutsに似てくるしね。
Strutsは、いろいろ古いところもあるけど、そんな表面的なことは、いくらでも変えられます。Strutsを批判する人は、「Strutsは、Webフレームワークの本質的に必要なことを無駄なく実装したフレームワーク」だということをもう一度思い出すべきです。
追記:
設定ファイルや、アクションとアクションフォームに分離されていることや、特定のクラスを継承しないといけないことや、URLの.doがかっこ悪いとか、そんなことは、Strutsの本質ではなく枝葉のことです。なぜ、本質ではないと言い切れるのか。
Struts本体にまったく手を入れることなく変えることができるからです。本質的なことは変えることができない。SAStrutsの存在がその証拠。本質的なことと、そうでないことをきちんと区別できることは非常に大切なことです。