夏の JSUG の発表に引き続き、JJUG CCC でも発表させていただきました。JJUG は普段もよく参加させてもらっていましたが、登壇は初だったので緊張しまくりでした。が、滞り無く終わってホッとしています。
資料はこちらです。
www.slideshare.net
心境など
裏番組がどれも有名な方のセッションだったし、発表していなかったら自分も他の方のセッションを見に行きたかったくらいなので、正直見に来てくださる方は居るのかな…と不安になったりもしたのですが、逆に考えると、それでも私のセッションを見に来てくれるということは、何かしらタイトル通り運用保守で課題を抱えてらっしゃる方が多いのでは、と自分の中で勝手に思って、何か1つでも現場に持ち帰ってもらえるように心がけよう、と思っていました。
その後、感想などを見ると好意的な意見が多く、頑張って良かったなーと感じます。当日聴講していただいた方々には、改めてお礼を申し上げます。ありがとうございました。
一番伝えたかったこと
当初、テーマを何にするか悩みましたが、自分が運用保守周りで苦労してることもあって、世の中全体を見ても新規で作られたものよりも、息の長い、そして色んな人の意図が複雑に絡み合って構成されているものの方が圧倒的に数が多いですし、それに関わっている人の数もきっと多いだろう、だからこそそこで工夫したことは共有する価値もあるかなぁと思い、今回のテーマにしました。
話の内容そのものは、今の時勢においては正直当たり前の話でもあります。Rails や Play Framework などには仕組みとして DB マイグレーションは内包されていますし、その仕組みに乗っかればそのまま実現できますし、そうやって普通に回せているプロジェクトもたくさんあるでしょう。なので、「え、それくらいもう当たり前だし、今さら取り立てて言うことか?」という見方もあるだろうと思います。
それでも、自分の身の回りを見てもそうですし、まだまだその「普通」がちゃんとできていない現場やプロジェクトもたくさんあるはずです。私個人の思いとしては、そんな「普通」ができていない現場を1つでも減らせたら、少しでも楽になる人が出てくれればいいな、そういう思いでお話させていただきました。
今回お話した方法そのままじゃなくても、開発プロセスについて見直すキッカケになったとしたら、私としてもこれ以上嬉しいことはありません。
jOOQ について
正直、日本での知名度はお世辞にも高いとはいえないですが、海外では結構使われている印象です。*1現在利用している私自身の感覚としても非常に運用時に「ありがたい」なぁと感じる DB ライブラリです。セッション中にも触れましたが、決して生産性を高める類のものではありません。他のライブラリと比べると、どちらかというと面倒と思うことの方が多いかもしれないです。ある程度自動生成できるとはいえ、クエリは自分で書く必要があるし、DB アクセスのコードなんてある程度パターンが決まっているので退屈だなぁと思うことは自分でも多々あります。
それでも、運用フェーズに入ってきて確実に「助かったなぁ」とか「良かった」と感じることがあるのもまた事実です。リファクタリングをしてる時などは特にそう思います。GitHub の README や公式サイトの作者の方の考え方などを読んでも、その辺りを重視してるんだなぁと感じますし、マニュアルドキュメントの充実っぷりは素晴らしいので、ぜひ使ってみてその実感をしてほしいなぁと思っています。@irof さんのコメントが嬉しかったので、引用させてくださいw
「jOOQ使って楽かというとそんなことないです!どちらかというとめんどくさいです!」素晴らしい。 #ccc_ab1
— いろふ (@irof) 2015, 11月 28
とはいえ、情報源、特に日本語の情報がまだまだ少ないので、微力ながら自分も発信していきたいなぁと思っています。さしあたって、ドキュメントの翻訳を少しずつしていますので、ある程度形になってきたら公開したいと思っています。(実態は追い込みという名の強制メソッドw)
他参加したセッション
基調講演1 : Java は守りに入らない、これが今の Java だ
@cero_t さんのすべり芸を拝見しに Java One に参加された感想を基にした今後の Java の展望と、セッションの紹介は繋がりがわかりやすくて良かったです。でも後の方に経るに連れてだんだん雑になってきてたのは気のせいでしょうかw
てらださんへの無茶振り含めて楽しい基調講演でした。
基調講演2 : Java EE 8 – Work in Progress
Java EE 8 のおさらいのようなセッション。仕事ではめっきり Java EE とは関わりが無くなっているのですが、やはり標準として取り込まれる技術要素がなんなのかを抑えておくのに有用なセッションで、自分の中での要素の整理ができました。
Reactive Webアプリケーション – そしてSpring 5へ
さすがの @making さんのセッションでした。バズワードと自分でもおっしゃられていましたが、それらを自分の知識として体系立てて整理して、あれだけの情報量をなおかつわかりやすく伝えられるのはすごいなーと毎回思います。
そして個人的には Netty や Undertow も Spring のランタイムとして将来的に動く予定ということを聞いて、Spring の抽象化の凄まじさと、フレームワークという概念を越えてプラットフォームになっていってるんだなぁということを感じました。と同時にそれに乗っかるとすごく楽だし生産性高くできるけど、それに乗っかるともはやエンジニアとしては大したことしなくてもいろいろ実現できてしまうことに、なんだか複雑な気持ちにもなりましたw そういう意味では AWS なんかも同じかもしれないですが。
ソラコムでのJava/AWS活用 – SIM管理やAWS Lambda Javaなど
話題のソラコムさんのビジネスモデルとその裏側で Java の技術がどう使われてるかがとてもわかりやすく説明されていて、その凄さを改めて感じました。スライドがわかりやすくて素晴らしかったです。SpringFox での API ドキュメント生成ノウハウと javax.smartcardio
知らなかったです。そして Eclipse から認識されないとか完全にやられましたw
Javaエンジニアに知ってほしい PostgreSQLアンチパターン
@soudai1025 さんの PostgreSQL 話。実体験や経験から来るであろうエピソードを淀みなくお話されていて、納得感のある話が聞けて良かったです。個人的には直近で SQL アンチパターンとデータベース実践入門を読んでいたこともあって、話の内容はまさにそこに書いてあったことをなぞらえるような感じで復習の意味でも知識の再定着が進んでよかったなぁと思いました。マテビューって略すの初めて聞いたので新鮮だったw なんとなくマテ茶っぽい字面だなぁと。
Garbage First Garbage Collector (G1 GC)
安定の @sugarlife さんのGC話。図がわかりやすく、また説明が丁寧なので理解が進みました。G1GC = たこ焼き器。
懇親会
@eiryu さんとか @kazuhito_m さんとか Twitter でお見かけする方とお話できて楽しかったデス!
まとめ
個人的にもこういう大きなカンファレンスで登壇という貴重な経験をさせてもらい、また、運営の方々にも御礼申し上げます。本当にありがとうございました!