Seasar Conference 2009 Autumnに行ってきた。

前回(Seaser Conference 2009 Springに行ってきた - ありの日記)に続き、今回も行ってきた。今回見たのは以下の4セッション。

ひがさんの目当てなんだけど、他の2つのセッションもめちゃおもしろかった。ということでざっくり。

Slim3入門

実演は前回同様、TDDでSlim3を使ったアプリを作るというもの。前回と違ったのは、今回は時間の半分をSlim3、TDD、Less is moreの心といった思想的な話だったこと。Less is more.と利休と秀吉の話、日本の”わび”の話。

次世代DaoフレームワークDoma

使い方としてはS2Daoと同じような感じ。ただし、ドメイン指向マッピングフレームワークという新しい考え方を取り入れている。ここでいうドメインとは値の定義域ということらしい。どういうものかと言うと、
エンティティにはいろいろなフィールドがあると思うんだけど(ここではフィールドっていうか何て言うのが適切なんだろう、プロパティ?ちがうな、ま、ここではフィールドとしておこう)、要はそのフィールドをドメインと解釈する。今までは、このフィールドが直接DBのデータ型に対応してたんだけど(例えばStringとかIntegerとか)それだと、おおざっぱすぎる部分もある。説明であったのは、体重というドメインを定義するとしたらWeightクラスを定義し、0〜500までの値しか許さないようにするとか、都市というクラスには都市名に使われる文字しか入らない(だっけ)とか。
今までエンティティに記述していた(かもしれない)値のチェック等もこのドメインに押し込めることが出来る。これらのドメインはエンティティを横断して現れることが多い。例えば、○○コードとか○○番号とか○○金額とか。そういうもののバリデーションとはか、エンティティにあるより、ドメインにある方が自然かもしれないね。
また、クラスとして定義することでコンパイル時に型チェックが出来る。String型の更新者(updateUser)とString型の更新日(updateDate)を入れ間違えるようなミスはよくあるけど、こういうのを減らしてくれる。
また、これらのフィールドの定義が変わったとしても(例えば、サイズが10桁から12桁に変わったり)した場合も対象のドメインを変更するだけで済みそうだ。
あと、おもしろいのはEntityクラスをインターフェースで定義するってところ。実装クラスはAPT(Annotation Processing API)というものを使ってて、コンパイル時に自動で生成される。そして、使う側はこの自動生成されたクラスをnewするだけで使えるようになる。(あれそれはDaoだっけ)
APTはSlim3でもMetaクラスを自動生成するときに使ってるみたいだけど、これを使うとホントいろいろなことが出来そう。
また、Domaは他のライブラリに依存しないため単体で動かすことも出きるし、他のフレームワークに組み込んで使うことができるらしい。当然Seasarもだし、Springに組み込むことも簡単にできるらしい。
あと、検索系のSQLは必ずSQLファイルを作って書くというポリシーらしく、ま、これはS2Daoと同じような感じでできるとのこと。でも、ここでもAPTが登場してきて、コンパイル時にDaoのメソッドとそれに対応するSQLファイルが存在するかチェックをしたり、一致するバインド変数のチェックをしてくれたりするので、今まで名前の間違いとかよくあったけど、事前に教えてくれるようになる。これはすごい便利。APTによって今まで出来なかった(出来なくはないだろうけど、多分別のアクションが必要だからちょっと面倒)ような新しい開発方法が出きるようになってるのかなーと思った。
DomaSAStrutsのデモがdoma-sastruts-demoとして公開されているらしいので見てみよう。
まだ、EclipseプラグインやDBからエンティティの自動生成には対応していないみたいだけど、それはこれからに期待。

SQL脳からBigtable脳へ

前回まったく分からなかったけど、だいぶ勉強したので分かるようになってきました。英語のプレゼン資料でもw
前回なかった(多分)集合関数の実現方法っていうのを最後にさらっと説明していたんだけど、Bigtableに出来ない部分をSlim3が内部で補って実装しているのがよく分かった。どう補完し実現しているのかを知っておくのが重要という話をしてたけど。データの特性を知ってその上でどういう方法でデータを取得するのがパフォーマンスが上がるのかっていうことを良く考えないといけないんだなーと、改めてBigtableの難しさを認識。
いろんなパターンが生まれそうな予感。

Blogopolisの裏側

Tophatenarを作ってる人の新しいブログ検索サービス(?)Blogopolisの説明。これは実際にサイトを見てもらった方が早いね。
http://blogopolis.jp/
今までは、ブログ検索は概要があって次にいきなり詳細という構造になっててその間がなかった。これを何とか視覚的に表現出来ないかってことで出来たものらしい。
難しい話が多かったですが、いろんなキーワードが聞けてよかった。

こういう表現のしかたって意外といろいろな所で使えそうだなーと思った。もうちょい勉強しないと文字にできないなーw

おわり

最後にid:bluerabbitさんに会いました。いま、GAE/Jで作って動いているサービスを見せてもらったりいろんな話が聞けてよかった。(こういうときは東京っていいよなーと思う。)
SQL脳からBigtable脳へのセッションが終わってからひがさん達と色々話をしてたみたいですが、自分は怖くていけなかったですので、次は混ざりたいですねw