JJUG CCC 2018 Springに遊びに行ったよ!

はじめまして。

ちょっと前までJava、最近はScalaとか書いてご飯を食べている名もなきプログラマです。

名前がないと不便なのでいろんなサービスをいろんな名前でやっていますが、最近はneyって名前でやってることが多いです。主にソシャゲとか。

 

IT系のイベントレポートとか、ちまちま書いていく予定です。

今回は2018年5月26日(土)に新宿で開催されたJJUG CCC 2018 Springに行ってきた話をします!

 

6/1追記:

公開資料の一覧が出たようです。ありがたや!

github.com

 

JJUG CCC とは?

www.java-users.jp

 

日本Javaユーザーグループが半年に1回開催しているコミュニティイベントです!

詳細はリンク先をご確認いただければと思いますが、Javaシステム開発にまつわるセッションがてんこ盛りです。しかも無料。

自分が勉強会の類に初めて行ったのもCCCでしたが、初回からめちゃくちゃ楽しませていただきました。社会人1年目とかでも入りやすいイベントだと勝手に思っています。

 

各セッションのレポート

今回自分が参加したセッションはこちら。敬称略です。

  • Javadocから考える・はじめる業務改善(柚木良介)
  • ざっくりわかった気になるモダンGC入門(tomoya yokota)
  • Scala製システムを3年間運用することで起きた様々なことへの対処(粕谷大輔)
  • Apache Kafkaとストリーム処理(Tomoyoshi Ogura)
  • マネーフォワードのアカウントアグリゲーションにおけるデータ管理基盤について(中川敦/佐竹力)
  • REST APIに疲れたあなたへ贈る GraphQL 入門(塚越啓介)
  • DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話(福嶋航)

では、各セッション時系列順に詳しく見ていきます!

 

Javadocから考える・はじめる業務改善

Eclipse Helpを使った、JavadocやOffice系ファイルの全文検索について。

EclipseのヘルプにはLuceneが組み込まれているので、FessやElasticsearchのような全文検索システムを別途導入しなくても、JavadocやOffice文書を全文検索できるよ!みたいな話だった……気がします……(曖昧)

最終的に全文検索機能付きのHTMLが出力されるんだったか、Eclipseから全文検索ができるようにHTML化しただけだったかちょっと認識が定かじゃないです。技術力不足で言いたいこと読みとれてる自信がないので、資料とか見つけたら確認したい。

 

ファイルを作成・更新した場合にHTMLを出力し直すような機能はなく、そこは今後の課題のようです。

個人的には、ストレージサービスとかと連携できると面白いなーと思いました。

 

ざっくりわかった気になるモダンGC入門

speakerdeck.com

 

すでに素晴らしいスライドがアップされているので内容についてはぜひ目を通していただきたいのですが、ざっくり超訳すると

  • ヒープいっぱい使うことが増えてきた。
  • 今までのGCだと、停止時間がヒープの大きさに比例したり、メモリの利用効率がどんどん悪化したりする。つらい。
  • 新しく「シュッとしてかっこいい」GCが出てきたのでそっちを使おう。
  • Linux 64bit環境ならZGC、それ以外ならShenandoah GCがいいんじゃないかな。
  • バックポートしてビルドすればすぐにでも使えるけど、停止時間が問題になっていなければProduction Readyを待ってもいいと思う。
  • Epsilon GCはなにもしないGC。本番環境で使っちゃダメだぞ!

という感じです。たぶん。

新しいGC、実装自体はほぼ完了しているそうです。9月リリース予定のJava 11に入ると嬉しいけど、もうちょっと後かなあ。わからん。

 

 Scala製システムを 3 4年間運用することで起きた様々なことへの対処

数え直したら4年あったそうです。

「サービスを長期運用していくとどういう問題が起こるのか、それにどう対処していったか」みたいな話でした。Scalaあんま関係ねえ。

興味深かった話としては、

  • フレームワークのバージョンアップ時にカナリアリリースが裏目に出た。暗号化方式の互換性が原因で、一度新しいバージョンでデータが作られてしまうと古いバージョンでは動かなくなる。ロールバックもできず、やり切るしかなくなった。
  • ioドメインでの名前解決ができなくなった。.comも取った。
  • コミュニティとの距離が近ければ有識者にコンタクトを取りやすい。新しい技術を使っているときは特にコミュニティの存在は大きい。
  • 機能廃止時にコンパイラのおかげで楽ができた。DBとの連携部分はテストで、それ以外はコンパイラがエラーを吐かなければまず大丈夫。

あたりでしょうか。

特にドメインを障害点だと考えたことって今までなかったなあと。

.jpとか.comとかでは聞かない話ですが、最近は.ioに限らずテスト用にマイナーなドメイン使うことも増えてきた(当社比)ので、意識していきたいところです。

 

べ、別にこのセッションで言われたからブログ開設したわけじゃないんだからねっ!

 

Apache Kafkaとストリーム処理

speakerdeck.com

スライドをご覧いただければわかると思いますが、4割くらいストリーム処理というかAkka Streamsの話です。

Akka Streams経由でKafkaにメッセージを送るまでのハウツーに近い内容で、業務で使いたくなったときには真っ先に振り返りたいスライドだと思います。

ただ、Twitterを眺めていると具体的な用途がイメージしづらいという声もちらほら……

 

超どうでもいいんですが、「あるぱっかかふか」っていう響きが好きです。かわいい。

 

 マネーフォワードのアカウントアグリゲーションにおけるデータ管理基盤について

ランチLTの宣伝がちょっと気になったので聴講。

家計簿アプリで有名なマネーフォーワードさんのセッションです。

データ管理基盤のアーキテクチャの話(AWSとかAzureのサービスのアイコンがずらっと並ぶアレとか)かと思いきや、開発環境や使っているライブラリの紹介などがメイン。なんというか、技術者向けの会社説明会みたいな雰囲気でした。

銀行の統合でサイトリニューアルするとスクレイピングを直さないといけない……みたいな話もありました。API公開はよ。

 

REST API に疲れたあなたへ贈る GraphQL 入門

www.slideshare.net

この間JSUGで聞いて気になってたGraphQLについてのセッションです。

スピーカーはなんとAWSの中の人。先月公開されたばかりのAWS AppSyncを使い、実際に手を動かしながらGraphQLでのリクエストをデモしていただきました。

補完機能付きの優秀なエディタを備え、Lambda経由で外部APIまで叩けるそうです。

Javaのイベントに来たはずなのに、ElectronあたりとAppSyncで何か作ってみたくなるセッションでした。

そしてさすがというべきか、プレゼンの安定感がすごかった!

 

DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話

www.slideshare.net

タイトルがしっかりと内容を表しているセッションでした。

モノリシックなアプリケーションをDDDとクリーンアーキテクチャで分析し、分割し、機能単位でDockerコンテナとして動作するように切り離した。結果、書く方もビジネスロジックに集中しやすく、レビューもしやすくてハッピー!

……と、サマリーだけならどこかで聞いたような話なのですが、とにかく話が面白い!

撮影自由と言いつつ、「上司にプレゼンしたときの資料」とか平気でガンガン出てくるし。

「変換の嵐で、Translatorがすごい量になった」

「規約以外はみんな好き勝手に書く。nullチェックの統一は諦めた」

など、血の通った経験談が聞けました。面白かった!

最後のセッションということでみんな疲れているはずなのに、完全に話に引き込まれていました!タイムラインも盛り上がっていましたね。

 

その他

ランチLTと懇親会にもお邪魔してきました。

酔っ払ってて懇親会LTの内容は既にあんまり覚えてないのですが、楽しかった思い出だけがうっすら残っています……

 

あとお寿司とビール最高でした。スポンサーの本気を感じます。

お寿司の値段ぜんぜん詳しくないですけど、下手しなくても寿司だけで懇親会費ペイするのでは……?

 

まとめ

最高でした。

ここ数ヶ月実務ではJavaを離れていて、SpringとかJavaEE(Jakarta EE)のセッションは外そうと思っていたのですが、それでもどれ聴くかは迷う迷う……

改めて懐の深いイベントだなあと思いました。秋も行きます!!