cypher256's blog

Pleiades とか作った

SAStruts + S2JDBC でサクサクか炎上か

可燃プロジェクトに飛び込むことになりました。下記のような炎上する要素満載。

  • 関係者各社に告知済みのためカットオーバーは伸ばせない
  • 外部仕様を策定した会社は行方不明
  • 外部仕様はあるが、OS も AP サーバも環境もアーキテクチャーも未定
  • 外部仕様を分かる人がいないw
  • 開発は 3 社合同なのにソース管理方式も決まってない
  • DB アーキテクト不在っぽい
  • フレームワークに詳しい人がいない
  • AJAX っぽいのたくさん
  • お金がない、規模はわりとでかい、納期短い、残業禁止、増員不可


どうしろとw なんとなく、全体の士気低下が発生し、デスマ・スパイラルに陥り抜け出せなくなり、みんなで逃亡パターンですが、とっとと全部決めてしまうことにしました。開発者に学習時間はありません。素の Struts vs SAStruts + S2JDBC。以下、要調査。

  • SAStruts
    • 入力チェックのエラーは項目ごとに出力するため、Struts の ActionMessages#add の第一引数に渡すグルーピング指定を SAStruts 検証アノテーションでどう実現するか調べる。各アノテーションにグルーピング属性が渡せるといいですが・・・
    • Action はたぶん肥大化しすぎるので、すべて Form は分けたいが、そんなに推奨されていないっぽい。欠点を調査。また項目数が多いので Form は Excel マクロなどで自動生成した Entity を継承したい。変だけど工数再優先。実現可能か? Form は親クラスのフィールドにリクエストがセットされるか? JSP から参照できるか?
    • @Execute の input 属性はほとんど呼び出し元になるが省略できない?
    • @Execute に指定する検証メソッドは、なぜ、アノテーションの属性になっているか? 実行メソッド内で自分で呼び出すか、直接 ActionMessagesException スローのほうが分かりやすい気がするが、要調査。
    • 認証は AOP? BASIC 認証+フォーム認証? フィルター? どれがいい? その他?
    • 二度押し防止は、Struts の Token? JavaScriptRPG パターン? どれがいい? その他?
  • S2JDBC
    • 流れるようなインターフェースは使わず、検索はすべて SQL 指定にした場合に問題はあるか?
    • テーブルの共通項目となるであろう更新日時や更新ユーザID を @MappedSuperclass 指定した親クラスに定義し、JDBCManager を継承したクラスを作成して insert や update 時に処理したい。問題はあるか? insert や update に AOP で引っ掛けるか? 開発者に分かりやすいのはどれか?