戦略法の提案

Struts VS SAStruts
・STRUTSとSAStrutsを比較します。
Strutsのメリット1
STRUTSはディファクトスタンダード。
↓
プログラマがたくさんいる。
ライブラリ、ツールがたくさんある。
ビジネス案件が豊富。
書籍などの情報元が豊富。
Strutsのメリット2
・根源的な部分のみのフレームワーク。
↓
拡張が容易。理解が容易。
・大規模アプリケーションの十分な実績。
↓
枯れている。高いパフォーマンス。安定性
Strutsのデメリット
・設定ファイルが肥大する。
・修正するたびにサーバ再起動。
・テストしずらい。
↓
生産性が低い。
SAStrutsの設計野望
安定していて、知っている人もたくさんいる。けど
使いづらい。
↓
・使いづらい部分だけ改善して安定してる部分は
使いまわそう。
・Strutsを知っている人を取り込もう。
SAStrutsで改善1(before)
※ 設定ファイルを無くした。
strutsの場合
<action-mappings>
<action path="/login"
←urlキー
input="~~~~~~~~~~~"
name="LoginForm"
←Form発見
type="LoginAction"
←Action発見
scope="session" validate="true">
<forward name="success" path="/pages/menu.jsp" />
</action>
</servlet-mapping>
SAStrutsで改善1(after)
sastrutsの場合
url: /login
↓ (フレームワークが推測)
アクション:→ loginAcition (格納場所:pakkege.action)
フォーム:→ loginForm (格納場所:pakkege.form)
↓
格納場所やネーミングルールで対象を
見つけることで解決。書かなくていい。
SAStrutsで改善2(before)
※ form情報の取得をシンプルに
strutsの場合
–
–
–
–
–
–
–
–
–
–
–
–
–
–
–
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
LoginForm loginForm=(LoginForm)form;
String user=loginForm.getUser();
String inputPassword=loginForm.getPassword();
ActionForward af = null;
if (user == 10113) {
af = mapping.findForward("success");
} else {
af = mapping.findForward("failure");
}
return af;
}
SAStrutsで改善2(after)
※ form情報の取得をシンプルに
strutsの場合
–
–
@Resource
protected LoginForm loginForm;
–
–
–
–
@execute(validator = "checkPassword", input=失敗.jsp)
public String index(){
return input=成功.jsp;
}
※条件user = 10113の定義部分は, メソッドcheckPassword
としてloginFormクラス内に書く
SAStrutsで改善(その他)
・プログラムの組み替えを自由に
インスタンス化処理をDIコンテナに委譲することで
プログラムを疎結合にした。
↓
結合関係を切り替えられる
↓
組み替えが自由になる。
↓
テストが楽になる。プログラムの再利用が容易。
※DIによるソースのPOJO化機能
比較
雑感
STRUTS
SASTRUTS
開発スピード
×
○
コード量が減る、テスト環境が作りやすいなど
言語習得
△
×
SASTRUTSの方が、決め事が多いのでJAVAか
ら勉強すると覚えることが多い
再利用性
×
○
POJO化されているので再利用しやすい。
安定度(実績)
○
△
STRUTSは長年使われてきたので枯れている
が、SASTRUTSも
コアの部分以外で追加されているクラスが少な
いので間もなく安定する
だろう。
処理速度
○
△
実際には比較していないが、設定ファイルを無く
すなど自動化している
部分の処理が追加されるはず。
まとめ
・SAStrutsは昨今はやっているアジャイル開発に
向いている。
・SAStrutsの大型案件実績も出てきているので
STRUTSに取って代わる日も近いのでは。