幸せのDBFluteフェス2016終わり

終わったー

10歳になってのDBFluteフェス。
つまり、10周年記念!

// DBFluteフェス2016 | Connpass
http://connpass.com/event/43457/

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

まずは、会場を提供してくれました、
ビズリーチ さんに感謝。

いつもいつもありがとうございます。

☆★☆★☆★☆★☆★

...

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

そして、SolrFlute, KvsFlute
をコントリビュートしてくれました
U-NEXT さんに感謝。

(詳しくは後で出てきます)

☆★☆★☆★☆★☆★

...

☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

そして、バーガーとコーラ代を寄付してくれました、
N2SM さん(Fess, sugayaさん) に感謝。

jflute自費イベントなので、とってもとっても助かります。

☆★☆★☆★☆★☆★

昨年に引き続き、1000円取る方式、いきなり懇談会方式、やってみました!

ただ、どうしても日曜日開催になってしまい、参加したくてもできなかったという声も多く聞こえて来たのでごめんなさい。

それでも40人近くの方にご来場頂きました。ありがとうございます!

...

※このブログ、日付が27日になっていますが、11月30日に書き終わりました...。

いきなり懇談会

中目黒レインボーバードランデヴー (Rainbow Bird Rendezvous) のごはん!

今年も「とっても美味しい」と評判でした。レインボーのみなさんありがとうございます!

今回はいきなりひとりひとり自己紹介!なので最初からそれなりに会話も弾みました。でも時間なくなっちゃって、Small Session はスキップm(_ _)m。(まあ交流が進んだということで結果オーライ...)

今回も、常連の方だけでなく、初めての方もたくさんいらしてくださいました。このほどよいバランスが、DBFluteユーザーの特徴かもしれませんね。

それにしても、色々なところでDBFlute 使われてるんだなぁと、しみじみ。話を聞くと、けっこうびっくりするようなことばかりで...

"DBFluteを使ってくれている" ということは、必ず試練を乗り越えて来たという証拠です。

「なにそれ聞いたことない、使って大丈夫なの?」

その試練を乗り越えて現場で使ってくれている、本当に感謝ですね。

一時限目A: "ESFlute"

ESFluteによるElasticsearchでのO/Rマッパーを用いた開発 | Slideshae

Big Artist の sugaya さんのセッション、この一年でさらにパワーアップしたESFluteがやってまいりました。

Elasticsearchのスキーマから、BehaviorやConditionBeanを自動生成!タイプセーフなElasticsearch検索ライフを。

興味のある方は、スライドと共に、Exampleをぜひご覧ください(^^。

lastaflute-example-waterfront | Github

一時限目A: "LastaJob"

LastaFlute の Job Scheduler "LastaJob" のお披露目。

すでに、オープンソース全文検索サーバー Fess にて、がっつり利用されています。

レアセッションになる予定が、思ったよりも興味ある方が多くてビックリ!

開発当初は、もうただ時間が来たら動くだけ、そのくらいでおしまいの予定でしたが、あれよあれよと実装が進み、わりといっちょまえの Job Scheduler まで成長。機能や使い方を紹介しつつそのストーリー語りました。

まあ、ちゃんと Job Scheduler となったら、最低限これくらいの機能は必要なんだなぁと。

o 時間が来たら動く
o DBFlute/LastaFluteとの連携
o DBFluteっぽい例外ハンドリング
o 二重起動防止 (待ちの挙動を選択できる)
o Jobの追加や時間変更、削除
o Jobへのパラメーター追加

LastaJobの存在意義は、単なる Job Scheduler というだけでなく、やはり DBFlute/LastaFluteとのスムーズな連携です。本来、バッチで色々とこさえてあげないといけない連携部分、これらがデフォルトで入っているのですごく楽です。(その代わり別のフレームワークでは使えません)

詳しく知りたい方は、ぜひドキュメントを(^^
 => LastaJob | LastaFlute

二時限目A: "MailFlute"

MailFluteでメール送信を楽しもう! Slideshare

メールテンプレートのライブラリまで作っちゃいました。実際に、登壇者のawaawaさんは、MailFluteを使って実際のサービスでメールを飛ばしています。しかも、添付ファイルまで...

こちらも人気セッションとなりました。LastaJobといいMailFluteといい、みんな地味なの好きですね(^^。まあそりゃそうですね、DBFluteの集まりですから笑

詳しく知りたい方は、ぜひドキュメントを(^^
 => タイプセーフメール送信 (MailFlute) | LastaFlute

二時限目B: Effective ConditionBean

さて、しっかり DBFlute のわりと初歩的なセッション。でも、せっかくなので DBFlute の Java8 版のお話も。

基本的には、こちらのページのお話を丁寧にした感じ。
 => Effective ConditionBean | DBFlute

ちょうど質問が出た話で、検索(ConditionBean)をどこで実装するか?ポイントとなる考え方はこちらです。

メンテ不能の強者、引数リモコンパターン
http://d.hatena.ne.jp/jflute/20160905/argremocon

ルーズなDaoパターンなら見たくない
http://d.hatena.ne.jp/jflute/20160906/loosedao

ということで、ちゃんとしたDaoパターンにできないのであれば、ConditionBeanはそれぞれの画面に属するクラスで実装するのオススメです。そして、再利用は小さな部品単位で再利用、検索をまるごと再利用しない。

三時限目A: DBFlute-1.1.1 & SchemaPolicyCheck

1.1.1 の報告会みたいな感じ。

そもそも DBFlute の OptionalThing について、そして、orElseThrow() のジレンマを語りながら、1.1.1 で追加された orElseTranslatingThrow() について。

あと、CDef にも Optional の流れを。of(code), byName(name) で OptionalThing 型を戻す。地味な改善ですが大切な改善。

そしてそして!

昨年のDBFluteフェスでawaawaさんより、「SchemaPolicyCheckを1月1日までに!」と無茶ぶりされた、

SchemaPolicyCheck

この機能自体は詳しくは、今年の1月1日のリリース記事をご覧あれ
 => DBFlute-1.1.1 Released | jfluteの日記

SchemaPolicyCheckがあるとないとでは、DB設計を色々な人に任せる時の安心感が全然違います。一人で設計してるにしても、ケアレスミスを検知してくれるのはとても嬉しい。

でもまだ、シンプルなチェックしかできません。ということで、2017年1月1日のリリースにて、もうちょい立派な機能として改善してきます。

って、自分で言っちゃった。。。あーあ

おやつ懇談会

さて、おやつタイム!
ここで登場するのは...

ドリンクは galvanina の オーガニックコーラ!

そして、
お楽しみの...

世田谷オルオルカフェ の、サルサバーガー、そして、クレイジースパイスチキンバーガー!

参考までに、お店で出てくるサルサバーガーの写真がこちら(^^。おるおるのみなさん、ありがとうございます!

二回目の懇談会ということで、参加者同士で自然と会話が弾んでいて、とっても良いムードでしたね。

jfluteにとっては、これが本当に嬉しい。

LT大会だよ!

そんなムードのままLT大会へ。これも二つの会場で同時開催です。それが楽しいんですよね。あっちでもこっちでもなんかやってる感。

LT大会のA会場

Dbflute intro (deco chan) | Slideshare

"decoちゃん" より、新しい DBFlute Intro のおはんし。

DBFlute Intro がリニューアルされました。ようやく、Java8版(1.1.x)に対応したIntroが出ました。Introの中ではLastaFluteが使われてるんですよ。これ、また別途ブログ書きますね。

decoちゃん、ナイスLTでした。
ありがとう。

なんか、元旦リリースの宿題もらっちゃったね(^^

...

KVSFlute, SolrFlute (@nashcft) | Slideshare

nashcftさんより、KVSFlute, SolrFluteの話。

そう!U-NEXTさんより、KVSFlute, SolrFlute をコントリビュートして頂きました。大感謝感謝、ありがとうございます!次週のJJUGでも話されるようです。こちらも、単独のブログでまた書きます。

LT大会のB会場

僕がLasta flute選んだ理由 (@tresener_yu1ro) | Slideshare

yu1ro、無茶振りLTありがとうー。プライベートで作っているサービスで、LastaFluteを使ってくれているというお話。

...

ラズパイとLastaFlute (kajikuri kun) | Slideshare

かじくりくん、おもしろいLTありがとうー。車内のトイレの空室管理システムを、LastaFlute使って作ったというお話。jfluteの破片プログラマーの記事を読んで、一念奮起してくれたみたいです。素晴らしい行動力ですね(^^
 => 破片プログラマーの悲しみ | jfluteの日記

...

DBFluteを閉じ込めよう (@taktos9) | Slideshare

たきさん、飛び入りLTありがとうー。DBFluteを使う時の一つのアーキテクチャ論。一気に高度な話になって、空気が引き締まった感じです。この辺は今後も色々と議論していかないといけないところで、「システム全体の中でDBFluteをどう使うか?」DBFlute側も色々と提案していく必要があります。

写真がB会場じゃない!!!

なんか...B会場の "ラズパイとLastaFlute" のトイレ話で、めっちゃ盛り上がって時間がなくなっちゃったみたいで、"DBFluteを閉じ込めよう" が、次のパネルディスカッションの前座LTになりました笑。

なんかB会場はざっくばらんしすぎみたいなー笑。まあそれもまたよし。

...

LTは、若い人たちの発表の場とも言えます。どんどんしゃべって慣れていって欲しいですね。

パネルディスカッション「DBFluteネイティヴズ」

さて、恒例のパネルディスカッション、今回は、"DBFluteネイティヴ" たちが集まりました。

DBFluteネイティヴとは?

二年前のDBFluteフェスで、ConditionBeanネイティヴという言葉が生まれました。
 => 奇跡のDBFluteフェス2014終わり | jfluteの日記

まあ、最初から ConditionBean で実装している、という意味ですね。Javaソースコード上にSQLをベタベタと書いていた人たちからすると "おおぅ" と思うこと笑。(jfluteもそうです)

それがちょっと発展して、最初からDBFluteがある状態。なんか色々と聞きたくなるような話ってあるんじゃないかって。

ファシリテーターは、"もりぞーんはがー" くん。

興味深い質問をたくさんしてくれました。すごく前向きな話をたくさん聞けましたね。勉強の仕方、どういう感覚でDBFlute使っているのか?などなど...

まあ、jflute個人的にはこういうことですね。
 => 若い人がいきなり便利なものを...ぜひ使って! | jfluteの日記

パネルディスカッションは、DBFluteユーザーの色々な面を気づかせてくれる、非常に貴重な場です。また、やりたいですね。パネラーのみなさん、ありがとう!

...

ここでちょっとサプライズ。

ファシリテーターの "もりぞーんはがー" くんが、Software Design にて、文字コードの記事を執筆されたということで、サイン入りのものをじゃんけん大会!!!

新卒二年目で記事を執筆ってすごい!ファシリテーターやってくれてありがとう。

パネルディスカッションって、個人的に好きなので、もっともっとやっていきたいな(^^

最後のjfluteトーク

さて、最後...jfluteより

DBFluteが10周年を迎えることができた、DBFluteユーザーのみなさんへのお礼。

DBFluteフェスを6年連続で開催できた、キャストのみなさんへのお礼。会場を提供してくれたビズリーチさんへのお礼。

KVSFlute, SolrFluteを、コントリビュートしてくれたU-NEXTさんへのお礼。

DBFluteフェスに対して、金銭的な支援をしてくれたFess(sugayaさん)へのお礼。

そして、10年の振り返り:
 => DBFluteは10歳になりました | jfluteの日記

ここ最近のOSSの特徴: 企業ベース、コミュニティベース、個人ベース

この先どう続けていくか?よりも、まずはこれまでどう続けてきたか?

仕事力、現場力、そして行動力...10年の中で大きな三つの決断がありました。まあ、この辺は来てくれた方々にだけのお話で。

jfluteがDBFluteに対して、どうしてもできないこと。

作者ではなくユーザーとして貢献すること

これは、どうしたってjfluteにはできません。

もし、お願いしたいことがあるとしたら、これに尽きます。

【追記】
早速ユーザーの方がブログ書いてくれました。
ありがとうございます!!!助かります。

DBFluteフェス2016(#dbflute)に参加してきました | @chichi1091 の 雑記

...

さて、手を出しすぎました笑。

o DBFlute
o EMecha
o DBFlute Intro
o UTFlute
o Lasta Di
o LastaFlute
o LastaJob
o MailFlute
o TomcatBoot
o JettyBoot
o ERFlute
o ...

...

LastaFluteは、DBFluteユーザーが安心してJavaを使えるようにするためのもの。DBFluteを使いたいけど、それ以外の部分で何を使えばいいのか...ということでJavaから離れていく人。

エンジニアだったら、新しい技術にチャレンジするのは良い話ではありますが、何かサービスを作るとなれば、小さくても起業家です。そのサービスを実現するのに一番速い、一番実現可能性の高い、"自分にとっての最高の道具" を選びたいものです。

LastaFluteは、DBFluteユーザーの一つの選択肢として、重要な立ち位置にいると考えます。実際に、Lastaができる前は離れていった人が、Lastaの登場で、JavaDBFluteを遠慮なく使ってくれることが多くなりました。

...

また、LastaFluteは、LastaFluteを使っていないユーザーにも重要なフレームワークになります。

DBFluteと何か別のフレームワークを使うとき、必ず DBFlute との連携を実装する必要があります。これは、他のツールでも同じです。A と B を使う時、A と B を連携させなければなりません。連携させなくても使えるかもしれませんが、互いの良いところを打ち消してしまっている可能性もありあす。

DBFluteだと、AccessContext や CallbackContext などですね。

その連携の典型的な参考実装が LastaFlute と言えます。DBFluteを最高に効率よく使うためにどうすればいいのか?LastaFluteにはそのエッセンスがたくさん含まれています。別のフレームワークでも、ぜひ真似して欲しいのです。

LastaFluteを作ることで、こんなにDBFluteを効率よく使えるんだ!ってjflute自身もたくさんの発見があったものです。

...

最後ちょこっとだけ、jfluteのモチベーションというかパワーについて話しました。まあ結局、昨年のフェスのトークで話したようなこと、それをちょっとだけ話した感じですかね。
 => 笑顔のDBFluteフェス2015終わり

去年、何を話したかって忘れてたんですけど、あとでよーく考えたら、去年話したこととまあ同じっちゃ同じじゃんって(^^。

BGMは、Maihamaだらけ

BGM頑張りました!毎年恒例、DBFluteフェスの大きな特徴の一つ、BGM。

今年は、Maihama好きのデザイナーさんの協力のもと、10周年にふさわしい BGM 構成にしました。

Maihamaだらけ笑

ちゃんと、イベントの展開と曲調を合わせて構成した(つもり)なんですよぅ。jflute自身が、BGMからパワーをもらいました(^^。

一緒に考えてくれた asamin ありがとう。
当日DJやってくれた jumpei ありがとう。

キャストへの感謝

一人ではこのイベントは絶対にできません。手伝ってくれたキャストのみなさんには感謝感謝です。

...

キャスト自ら楽しんでもらえたでしょうか?

キャスト自ら成長してもらえたでしょうか?

そこがぼくが一番気にしてるところかもしれません。jfluteにそれができたんだろうか?わからないですけど、みんなとても大好きです。キャストがとても大事。

本当にありがとう。

幸せのフェス

jfluteは、DBFluteユーザー同士が交流している姿を見ると、一番幸せを感じます。

...

DBFluteフェス、
またできるといいですね。

途中でお帰りになられた方が写っていませんが...

...
...
...

ぜひまた、お会いしましょう。

...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...

ん?