SAStrutsの特徴まとめ

SAStrutsチュートリアルを触りながら、何かを書こうと思っていたのですが、その前に、今まで読んでいたid:higayasuoさんの『SAStruts論』を勝手恐縮ながら引用しまくってまとめてみました。

”なぜSAStrutsS2JDBCなのか?”ってところは採用するにあたって重要だと思います。
アーキテクトにとってもそうですし、まず試したいだけの人にとっても。

SAStrutsとは

Super AgileにWebアプリケーションを開発するためのフレームワーク

Super Agile Struts(以降SAStrutsと省略)は、Strutsを使った開発をSuper Agileに行なうためのフレームワークです。

Strutsで開発する場合に困ることは、設定ファイルをたくさん書く必要があったり、設定ファイルやJavaのコードを修正するたびにアプリケーションサーバを再起動する必要があることでしょう。

SAStrutsを使えば、設定ファイルを書く必要はなく、スクリプト言語のようにファイルを保存する(保存と同時にコンパイルするような設定になっている場合)と、すぐにその内容をアプリケーションサーバの再起動なしで認識することができます。

Super Agile Struts

Super Agileとは

この中に出てくる、Super Agileってなーに?ってところは以下のPDFが起源だと思われます。

http://www.iajapan.org/bukai/java/event/2007/0124/JNS_02.pdf*1

開発の背景や特徴など

2007/10/17に開発が表明されていました。

大規模プロジェクトをささえるには、どういうフレームワークが必要なのか、この半年以上ずっと考えてきて、その答えが、Super Agile Strutsと新O/R Mapper(S2JDBC)です。

2007-10-17 - yvsu pron. yas

「みんなが理解している枯れた技術のだめな20%の部分を改良する」という発想で作られているのが、S2JDBCSAStrutsです。

2007-12-31 - yvsu pron. yas
SAStrutsの特徴

SAStrutsの特徴のひとつは、ドキュメントの充実。いろんなサイトを見る必要はなく、SAStrutsのサイトのドキュメントを一通り読めば、開発できるようになっています。

また、Seasar2(DIやAOP)の知識も不要です。Strutsの知識があれば、理解できるように書いています。

Railsが好きなんだけど、パフォーマンスに不安があるという方は、ぜひSAStrutsを検討してみてください。

Railsのような生産性で、Javaのパフォーマンスを得ることができます。

from Java to Rubyは過去(Struts, Spring, Hibernate時代)の話だということもわかってもらえるでしょう。

2008-01-08 - yvsu pron. yas
SAStrutsの基本方針

SAStrutsの基本方針は下記のとおり(他にもあるけど引用に関係のある部分)です。

  • フレームワークは押し付けがましくなく、開発者が自由にコードを書ける余地をできるだけたくさん残すこと。
  • ただし、ルーチンワークは徹底的に省略できるようにすること。

フレームワークでがちがちに固めると弊害のほうが多いというのが最近の考え。

プログラマをもっと解放しようよ。
逆にがちがちに固めることも、もちろん許容しているので、がちがちが必要な場合は、上にフレームワークをかぶせればいいんです。

2008-01-10 - yvsu pron. yas
SAStrutsの特徴がより具体的に

SAStrutsの特徴は次の7つです。

  • Strutsベース
  • Strutsの薄いラッパーなので、ソースコードが少なく(主要パッケージaction,config,customizer,filter,validatorのクラス総数は23)、全体を把握しやすい。また、ソースコードが少ないので、(たぶん)バグは少ない。
  • HOT deploy完全対応。
  • publicフィールド完全対応。
  • 設定ファイル無し。
  • フレームワークに依存しないPOJOベース。
  • きれいなURL

S2JDBC、S2BeanUtils(Beans)に続く、3部作がこれで完成です。

2008-01-27 - yvsu pron. yas
Seasar2のロードマップについて

Seasar2は、2.5でやろうとしていたS2PersistenceとS2PresentationをS2JDBCSAStrutsという形で、2.4ベースで実装してしまったため、2.5を出すことはおそらくないでしょう。

また、コンテナに手が入ることももうないと思います。やるべきことはやったと思うので。

S2JDBCで、データベースの定義からEntityを自動生成する機能と、Entityからデータベースを再構築する機能を今後追加予定ですが、それで、機能追加の予定は終わりです。Seasar2.4は、安定バージョンとして、ずっと使い続けられることになると思います。

Seasar2.4に対する追加要望があれば、もちろん検討します。ただし、大きな変更や追加はもうないでしょう。

2008-01-29 - yvsu pron. yas
フレームワーク構想としてのSAStruts

Seamが成功すると、フレームワークの肥大化には、しばらく歯止めがかからなくなるでしょうね。機能豊富であることが、勝ち残るための最も重要な要因だとみんなが認めたということなので。

私の個人的な意見としては、薄いフレームワークのほうが世の中に好まれるんじゃないかと思っています。Strutsプラスアルファで、学習コストが低く、ソースコードもさらっと読めるフレームワーク

開発者全員が、フレームワークのことを把握していて、技術的に見通しがいいフレームワーク

この薄いフレームワーク構想を実現するために作ったのが、SAStruts, S2JDBCです。口だけでなく、さくっと作ってみる。これが「ひがやすを流」。

2008-02-13 - yvsu pron. yas

使っているStrutsのバージョンは?

Struts1.2.9です。

ちなみに sa-struts-tutorial\webapp\WEB-INF\lib の中身はこんな感じになっています。

  • antlr.jar
  • aopalliance-1.0.jar
  • commons-beanutils-1.7.0.jar
  • commons-collections-3.1.jar
  • commons-digester-1.6.jar
  • commons-el-1.0.jar
  • commons-fileupload-1.2.jar
  • commons-io-1.3.2.jar
  • commons-logging-1.1.jar
  • commons-validator-1.2.0.jar
  • geronimo-annotation_1.0_spec-1.0.jar
  • geronimo-ejb_3.0_spec-1.0.jar
  • geronimo-interceptor_3.0_spec-1.0.jar
  • geronimo-jpa_3.0_spec-1.0.jar
  • geronimo-jta_1.1_spec-1.0.jar
  • geronimo-jta_1.1_spec-1.0-tsr.jar
  • hsqldb-1.8.0.1.jar
  • jakarta-oro-2.0.8.jar
  • javassist-3.4.ga.jar
  • jstl-1.1.2.jar
  • log4j-1.2.13.jar
  • ognl-2.6.9-patch-20070908.jar
  • poi-3.0-FINAL.jar
  • s2-extension-2.4.22.jar
  • s2-framework-2.4.22.jar
  • s2-tiger-2.4.22.jar
  • sa-struts-1.0.1-rc2.jar
  • standard.jar
  • struts-1.2.9.jar