Seasar Conference Spring 2009 メモ
Slim3 on Google App Engine/Java
http://event.seasarfoundation.org/sc2009spring/Session#hall1
- GAE/Jは老害へのリトマス試験紙(^^;)
- Less is more. 「ちょっとWebアプリを作りたいだけなんだ」にフォーカス。
- TDD support.
- サーブレットをエミュレートした環境でテストできる。
- apt=Annotation Processing Tool.
- antを使ってControllerの雛形を作成。
新しいslim3は リクエストパラメータが Controllerのプロパティとしてセットされる形ではなく requestScope("arg1") のような形で取り出していた。プロパティにセットされる形が個人的には好きだったのだが。。
Smart! Jiemamy DBの構成管理
http://event.seasarfoundation.org/sc2009spring/Session#S6012
- スキーマだけでなく初期データも管理対象である。
- mavenのプロセスにDBの整備も入れてしまおう => Smart Build
- DBのリファクタリングをSQLファイルベースで行なうのはしんどい => jiemamy model で管理
- mavenで jiemamy model => SQL
非常にいい視点を持ったプロジェクトだと思う。MVCフレームワークは洗練されてこの部分の工数は格段に下がってきた。
次なる課題はDBの構成管理とHTMLモックアップをいかにすばやく作るかという点にあると感じている。
すごく期待。現時点でも結構なことまでは出来ているようだが、例えばSubversionのdiffからALTER文をexportするなんてことができてくるとかなり嬉しい。
45分で動かせるBuri/escafeFlow入門
http://event.seasarfoundation.org/sc2009spring/Session#S6023
- Buriとはwork state engine. (work flow engineのサブセット)
- XPDL: BPELとは違う
- テーブルとフローは1対になる
- Buriではアクティビティを「〜済み」で表現することを推奨している
- processer.toNextStatus() で次の状態へ移動する
この類のものにはまだ開眼できてない。自分の中に強烈なニーズが生まれたときに開眼するのかな。。
BigtableとJDOの勝ちパターン
http://event.seasarfoundation.org/sc2009spring/Session#S6024
- column group: JDOのentityの @persistentアノテーションで特定できる(?)
- Entity Group : RDBMSのrelationのような感じ。なおかつTransactionの単位
- Kind: テーブル名みたいなものか。これもindexになる。
- Single property index: 原則全てのpropertyの値がindex化される。
- where句とorderbyは同時に使わないほうがよいのではないか(Java側でソートする)
- 1回に読めるのは1000件まで。
- 非正規化を恐れるな。⇒ INSERT時にに手間をかけてSELECTしやすいようにする。
「非正規化を恐れるな。⇒ INSERT時にに手間をかけてSELECTしやすいようにする。」
たぶんこれが一番重要なことなのかなと思う。
BigTableの不自由さから生まれるデザインパターンが確立し、不便さを解消するライブラリが広まってきたとき本当にブレイクするかもしれない。
よく例に挙がる「INSERT時に列の件数を管理するデータをあわせて更新する。」みたいなことが例えば
slim3-jdoのようにjdoをラップする部分のレイヤで実現できるようになったり。
自分もそのあたりいろいろ経験しながら考えていきたい。