wicket体験談
Post on 12-Jun-2015
2.468 Views
Preview:
DESCRIPTION
TRANSCRIPT
第1回 Wicket 勉強会 LT 発表資料
Wicketによる社内用システム開発・運用体験談Gishi ( id:gishi_yama )
第1回 Wicket 勉強会 LT 発表資料
自己紹介•Gishi ( id:gishi_yama )
•地方の大学で社内 SE 的職員をやってます
•主に文科省認定プロジェクトに関わる教育システムの開発・運用学生の研究開発のマネージメントを担当してます
•Wicket を使いはじめて6ヶ月目です
第1回 Wicket 勉強会 LT 発表資料
私が発表できること•実際の運用で大丈夫、という一例•Wicket で幸せになりました
といった体験談。
特殊な社内システムのケースなのでうすーい内容なのですが、どうかご容赦ください。
第1回 Wicket 勉強会 LT 発表資料
私が社内で開発しているシステム•授業支援グループウェア
▫ グループの管理▫ コミュニケーションとその管理▫ 授業情報の公開と管理▫ アンケートの集計と管理▫ 教職員スケジュールの公開と管理
Wicket の基本的なコンポーネントで
作ってます
第1回 Wicket 勉強会 LT 発表資料
Wicketに至る経緯
第1回 Wicket 勉強会 LT 発表資料
ことのはじまり•2006 年から授業支援グループウェアを開発することになりました(文科省認定プロジェクト)
•外注ではなく独自開発することになりました▫開発期間が限られている▫実践研究を兼ねており、運用中の仕様変更・再実装を手軽にしたい
▫独自開発した教育用システムの運用実績がある
第1回 Wicket 勉強会 LT 発表資料
開発当初•開発要員は私と大学4年生2人~5人(学生は卒業し、毎年初心者に入れ替わる)
•それまで使っていた Struts + Tiles 環境に伴う膨大な xml の存在が負担増
新たなフレームワークに希望を見いだしたくてJSF ( MyFaces ) +Spring1.5 を採用
限られた工数・人材の中でできるだけ開発効率を上げたい!
第1回 Wicket 勉強会 LT 発表資料
2 年近くかかって開発しました
• グループ管理機能• コミュニケーション機能• 授業情報管理機能• アンケート機能
2006.02
2006.09
2007.04
• 仕様策定(2ヶ月)• JSF,Spring 習得・教育(5ヶ月)
• 運用開始• 機能改良開始• JSF,Spring 教育(4ヶ月)
• スケジューラ機能2007.12
第1回 Wicket 勉強会 LT 発表資料
JSF(+Spring1.5)の苦痛• xml の行数は減ったものの、結果として約 2000 行• JSP の UI タグとブラウザの表示イメージが結びつかない• コンポーネントに癖がある( h:datatable など)• 開発中に MyFaces の仕様が大きく変更( h:form など)
開発・修正に思った以上に時間がかかる
教育コストが高い
コーディング速度も開発効率が上がらない……カスタムコンポーネントも xml が付きまとう……使いこなすのが大変だ ……orz
第1回 Wicket 勉強会 LT 発表資料
2007年 12月改良への要求に開発が追いつかなくなる•インターフェースの改善・機能改良が主な課題•与えられた期間は4ヶ月、開発者は私のみ
教職員(ユーザ)
登録画面の整理をしてほしいなあ
アンケートの選択項目ごとに自由記入欄がほしいなあ
UI コンポーネントにバグが………
……
etc
第1回 Wicket 勉強会 LT 発表資料
途方に暮れていた私に救いの手
id:mdgw さん(兄弟子)
使いやすいフレームワークがメジャーになってきたよなんたってページ遷移に xmlを使わないんだ
その名も wicket だ
第1回 Wicket 勉強会 LT 発表資料
Wicketと出会って
第1回 Wicket 勉強会 LT 発表資料
触ってみてすぐに利点と感じた事• ページ遷移・構成に xml を使わない開発中に Java (と HTML )から目を離さなくていい
• データモデルを扱いやすいPropertyModel や CompoundPropertyModel で快適
• コンポーネント用に特別なタグや属性が(ほぼ)いらないあっても非常にシンプル
• Ajax コンポーネントの存在Ajax 実装未経験者でも一瞬でリッチUI に
• Panel コンポーネントの存在カスタムコンポーネントもその使い回しも簡単
第1回 Wicket 勉強会 LT 発表資料
特殊なアンケートの様なビューも簡単
Panel クラスで既存のコンポーネントを組み合わせてカスタムコンポーネント化
1クラスだけで実現( 100 行程度)
第1回 Wicket 勉強会 LT 発表資料
出会った当時心配だったこと
•ドキュメントが英語だけしかない……
•実際の教育コストはどうなるだろう……
•運用実績が無い……
第1回 Wicket 勉強会 LT 発表資料
ドキュメントが英語だけしかない……
•基本的なコンポーネントを使う上では、▫先駆者の皆さんのドキュメント▫Wicket examplesだけで、疑問点の解決がほぼ可能だった
英語が苦手な開発者でも割と安心できる事例やサンプルが出揃ってきている
第1回 Wicket 勉強会 LT 発表資料
実際の教育コストはどうなるだろう……
•今年度入社したプログラマさんで実験してみた▫ 大学卒、大学の授業で Java を学習したことがある▫ 以後、一般企業で組み込み系( C 言語・ MVC 開発経験者)のプログラマを4年間経験
約 1 ヶ月程度で問題なく開発を開始( JAVA )プログラミング経験者なら敷居は低い
Wicket を全く知らない状態で“Enjoying Web Development with Wicket” を渡してみた
第1回 Wicket 勉強会 LT 発表資料
運用実績が無い……•全ユーザ数 約 1000名のグループウェア•これまでの最大同時利用人数 164名
• Wicket 1.3 + Guice• Tomcat 5.5• PostgreSQL v8.3•サーバスペック
▫Xeon3 GHz メモリ 8GB SAS-Raid 5▫JVMヒープ領域2 GB
運用開始から今日まで約3ヶ月間、 Wicket に起因するトラブル無し、パフォーマンスへの苦情なし
第1回 Wicket 勉強会 LT 発表資料
ただ、どうしても困ったこともあります
第1回 Wicket 勉強会 LT 発表資料
結論Wicketでどれだけ幸せになったか
第1回 Wicket 勉強会 LT 発表資料
結局、ほぼ一人でシステムを全て丸ごと作りなおしました
• グループ管理機能• コミュニケーション機能
• 授業情報管理機能• アンケート機能• スケジュール機能
2008.01
2008.03
2008.05
• 仕様策定(1ヶ月)• Wicket 習得(1ヶ月)
• 運用開始• 改良開始
第1回 Wicket 勉強会 LT 発表資料
開発・修正期間の短縮JSF Version Wicket Version
• 学習(教育)期間▫ 約5ヶ月
• 1機能あたりの開発期間▫ 約1ヶ月
• システム全体の開発期間▫ 約7ヶ月
• 1バグあたりの修正期間▫平均3日
• 学習(教育)期間▫ 約1ヶ月
• 1機能あたりの開発期間▫ 約0.5ヶ月弱
• システム全体の開発期間▫ 約2.5ヶ月
• 1バグあたりの修正期間▫平均1日
第1回 Wicket 勉強会 LT 発表資料
開発・修正期間の短縮JSF Version Wicket Version
• 私の残業時間(システム開発のみ)
▫平均130時間
• 私の残業時間(システム開発のみ)
▫平均60時間
とっても幸せを感じています
第1回 Wicket 勉強会 LT 発表資料
ご静聴誠にありがとうございました。
top related