普段SpringDataを使ってMongoDBでホゲホゲしているのですが、
そのコアディベロッパーのOliverGierke(@olivergierke)さんが来日ということで、
日曜の夕方でしたが行ってきました→[ATND]Spring Dataの神髄を語る
ちなみに、Oliverさんはドイツで働いている方ですが、
ほぼ丸一日しか東京に滞在しない&次の日インドに行って
講演という感じで、非常に強行軍の中、ありがとうございました。
今回の勉強会は、同時通訳付きということで、ミドルウエアの名前を訳そうと
してしまったりとかありましたが、もし、あまりコレ系の技術について
明るくない方だったのであれば、凄いクオリティだったなと思いました。
■ メモ
・RDBMS&ORマッパー
ツリー構造なデータを保存しようとしたらあんまりフィットしないとか。
・MongoDBとかNeo4jの話。
コードで見ると非常に使い方は明快だけど、2つのプロダクトでAPIが結構違う。
統一したインターフェース欲しくね?っていう。
JPAってのがあるけども、ObjectRelationalなMappingにガッツリ。
JPAの説明の最初にもそう書いてある。
MongoDBのある地点から2キロ半とかってのをJPAで扱う?
・SpringDataはどういうアプローチ?
各プロダクトによって一貫性のある感じ。
- KVS: Riak, Redis
- Document: MongoDB, CouchDB,
- その他: Hadoop, neo4j
- もちろんRDMBSも。
Springは多数のDeveloperが馴染みがある。
JDBCやJMSのテンプレートはみんな使ってるよね、と。
機能はだいぶ違うわけだけど、テンプレート使えばわかるはず。
ということで、それ用のアノテーションで〜というアプローチ。
MongoDBだったらDocumentアノテーション。
Neo4JだったらNodeEntityってアノテーション。GraphIdとかRelatedToとか。
もちろんNativeなAPIを叩く口も。execute(ほげほげ、コールバック)的な。
例外とかもちゃんと扱えてナイスな感じで。
・Repository
@Repositoryとかって感じで突っ込んでやって、
↓こんな感じで自分とこのパッケージを指定してやると、
<jpa:repositories base-package=”com.acme.repositories” />
Springがコンポーネントをスキャンしてくれて、
STSがコード補完とか、そんなプロパティ無いとかしてくれる。
・QueryDsl
これならMongoDBだろうがLuceneだろうがなんでもいける。
柔軟にクエリを発行出来る。条件を追加したいとかも。
あんまりちゃんと理解出来なかったけど、コレもRepository同様アツいっぽい。
・REST exporter
リソースをREST形式で。curlとかWebブラウザとかからアクセス出来る。
今風っぽい感じがしますね。
で、まぁ、総じて言うと、↓のSpringData本買って読んでね!って感じですかねw
■ QA
・Cassandraのサポートは?
→現時点ではプランは無い。需要があれば。オープンソースなのでやりたければ(ry
・ページネーション用コンポーネントのインターフェースについて
→(質問の意図とはちょっとあれだけど)DDD本に沿って実装したよ、と。
こういうコード書く人たちはちゃんと本読んで勉強してるんだなって。
—
Springは創始者のロッドジョンソンがいなくなっちゃったり、
↓この辺とかで、VMwareから抜けて、EMS傘下の別会社に〜って事で
イロイロと物議を醸しているところですが、これからも頑張って欲しいです。
http://gigaom.com/cloud/remember-that-vmware-spin-off-its-baaa-aack/
http://www.infoq.com/jp/news/2012/12/vmware-spins-out-spring
また、この勉強会には↓の著者の方たちもいらっしゃってて、2名の方がプレゼントされてました!
技術評論社
売り上げランキング: 7118
コメント