Doma 勉強会に行ってきました!!
http://eventdots.jp/event/592052
あと、LTしてきました(KotlinがDoma2でサポートされると聞いて)
※まぁ、ボクのポジション的にKotlinの発表しとくかー、と
- togetter
【7/9(土)】Doma勉強会 in 東京 - togetter
発表資料
gakuzzzzさん
とあるDoma2の使い方nakamura_toさん
Domaの開発で大切にしている10のことsuke_masa さん
Doma2とMVC1.0でJava EE Webアプリを作ろう!ぼく(yy_yank)
Doma2 with Kotlin
Domaの紹介
まずはbackpaper0さんより、Doma2の全般的な紹介の発表がありました。
これまで、色々backpaper0さんの発表を見させていただいたりしてきましたが、
一番緊張していましたw
Doma作者のnakamura_toさんがいるから、
まぁそうですよね。
Java Day Tokyoの発表より緊張してます、
とかなかなか言えないセリフだなぁとか思いました。
補足として、
NetBeansではあんまり使えない、と資料中にあるのですが、
現状は使えるようです。
勉強会に参加して試してくださった方がいたので、リンク貼っておきます。
https://github.com/yangping0211/doma2-netbeans-maven
絶対に必要なもの、無くても良いけどあると便利なものなどは参考になりますねー。
全般的に網羅的にまとまってて、とても参考になりました!!
ドメインクラスの話
つづいてもbackpaper0さんからドメインクラスについての話。
こちらはどちらかというと実践的なお話でした。
というか、Doma2関係なく、勉強になる話でした。
前方一致を表現するPartOfクラス、とても良いアイデアだなぁと思いました。
ただ、Javaの命名としては一般的ではないのかなとか思いました。
Javaでよくあるような名詞のクラスではなくて名詞 + 前置詞の形なのですよね。
ある意味、クラスで関数を表現するとこういうかたちになるのかなぁと、Javaの表現を広げるような感じがしました。
とあるDoma2の使い方
gakuzzzzさんのお話。なるほどここはStreamの勉強会だったのか。
再利用性よりもSQLの完全性、
はホントに思い当たるところが色々あってそのとおりだなぁと思いましたし、
全てをCollect検索にするというのもなるほどなぁと思いました。
ぼくはですね、この1ページに書いてあることを
業務で、たくさんのクラスでもっと冗長に書いてしまってるので、
なんて簡潔に書けてしまっているんだと、なんだか驚きました。
Daoでこれだけのことが出来るのって相当すごいぞ。
前提として注意しておきたいのは、RDBMSでのチューニング、
SQLをきちんと設計したうえで、Javaの世界ではCollect検索するという部分。
さすがにJVM上で100万件のレコードを処理するのは現実的でないし、
ソート処理に関してはSQLでやったほうが良いだろうとお話されていました。
ぼく個人の経験としては、
Streamで大量データをフィルターしたりコレクトしたりで問題になるのはN+1問題とかでした。
パフォーマンスの問題が出たのはむしろRDBMS側のindexが正しくはれていないとか、
サブクエリの集合がでかいから遅いとかそういう問題でした。
Domaの開発で大切にしている10のこと
作者のnakamura_toさんの発表。
本当にいい話でした。
使っていてしっくりくるのはこういったポリシーがあるからだなと、改めて思いました。
普段、Spring Boot + Doma2の組み合わせでWebアプリを作っているのですが、
使っていることで感じていたことがスライドに詰まっていました。
Domaは良いぞ。
Doma2とMVC1.0でJava EE Webアプリを作ろう!
ここからLT。suke__masaさんの発表でした。
Doma2のLTと言いつつ、ゴリゴリのJava EEって感じでw
まぁPayara Microとかも使ってましたが。
LTのためにささっとWebアプリを作っちゃうところはさすがだなーと思いました。Payara Microちょこっと触ってみたいなー。
Doma2 with Kotlin
ぼくの発表。
まぁ、Kotlin使うとこんな感じだけど、別にJavaとDoma2でも全然事足りるよ。という話でした。
Kotlin好きの人が、例えば、Kotlin + Spring Bootしてて、ORMなにがいいかなぁという目線ならDoma2は全然選択肢としてありだなぁと思いました。
kapt周りはDagger2とかRealmとかそんなんより全然はまらないですね。
Q & A
最後に発表者と参加者で質疑が行われました。
質疑、、、なにがあったっけなぁ。
- doma-spring-boot-starterのバージョンアップの予定は?
nakamura_to - makingさん任せなので、私としては管理していません
backpaper0 - おそらくプルリクなりmakingさんにコンタクト取るなりすればすぐに対応してくれるはず。
<doma.version>x.y.z<doma.version>でオーバライドできますよ。一応。
— Toshiaki Maki (@making) 2016年7月9日
doma-spring-boot自体に入れる機能がなかなかないからバージョン付けがイマイチで追従していなかった。リクエストがあれば https://t.co/WXZAhNaMrl
Doma2は海外展開するのですか?
nakamura_to - 単純にリソースが無いので、予定はないです。IntelliJ IDEAでannotation processingのチェックて出来ますよね?
gakuzzzz - IDEの設定でできます
これだった気がする #doma_tokyo pic.twitter.com/AIcbyxqY60
— さらちむ (@syobochim) 2016年7月9日
あと、backpaper0さんへのドメインクラスについて質問があった気がしますが、忘れました!!
みんなもっと質問すればいいのに!
懇親会
10人位で近くで晩ご飯を一緒に食べました。パエリア食べました。
chiroitoさんにアツアツアヒージョでリアクション芸させられそうになりました。危なかった。
- backpaper0さんもgakuzzzzさんも作者の予想を遥かに超える使い方をしていた
- Stream APIはpararelをやるために作られた
- Collector<Foo, ?, R>は型引数の不要な露出があって設計上良くない
- FP in Scalaは考え方の勉強になる
- Seasar Foundationあたりの話
- Kotlinをサポートしたのは直感的に流行りそうだったから
- Kotlinサーバーサイドて使われて欲しい、現状Androidが主戦場。なんか某社はサーバーサイドで使ってるらしい
- Kotlin JSはまだ発展途上ですよ
とか色々な話をして楽しかったです!!
0 件のコメント:
コメントを投稿