BP Study#20 Wicket for Beginers
株式会社ビープラウド
発表者はid:t_yano
本体はグラサン巫女で、会場に来ているのは式神(自称)
オブジェクト指向
- データと振る舞いのパッケージング
- 状態を保てる
- 拡張少しだけ動作の違うものを効率的に作れる。
- Ruby on Railsは便利だけどCGI/Servletと同じ手続き型パラダイムから脱却していない。
コンポーネントとモデル
- コンポーネント自体は値を保持しない
- 値はどこにあっても良い
- モデルが値のある場所を知っている
- ロケータ(Locator)
- コンポーネントにデータをやり取りするやり方を格納する
- プッシュからプルへ
- ページ→コンポーネント→データという順にpullしていく
- それぞれの矢印の内容:表示していいのか聞く、何を表示するか聞く
- ページ→コンポーネント→データという順にpullしていく
- Pageオブジェクトのライフサイクルは
セッション単位ブラウザウィンドウ単位- セッションの下にブラウザウィンドウがぶら下がっている
- シリアライズしてファイルに保存するのでメモリがあふれる訳じゃない
- GAE/Jの場合はメモリ保存にしておけば勝手にBigTableに突っ込んでくれるのでスケールしまくる(ファイル保存する設定にしておくと動かない)
- ブラウザウィンドウ単位でどうやって管理するか?→URLの最後のゴニョゴニョで管理している。(こんなのhttp://www.physalis.net/senryu/?wicket:interface=:1:1:::)
- 一時生成ページはこうだけどブックマーカぶるなページはまた別
JSP vs Java
JSPはクソのような言語
再帰的に階層メニューを作るとかいったことをやるのは無理だし、階層が3層とかでも普通に死ねる。
Wicketならコンポーネントに渡したデータの要素が子供を持っていた場合に、
同じコンポーネントに子孫分のデータを渡して追加していくと行った。
コンポジットパターンを使った再帰的なコンポーネントを使えるので、余裕しゃくしゃくでできる。