来たる2024/6/16にJJUG CCC 2024 Springが開催されます!
この記事ではセッション一覧から内容を想像して、予習していきます。 当日聞くセッションの参考になれば幸いです。
※セッションの説明から考えた個人の想像になります。実際の内容とは異なる場合があります。
タイムテーブルはこちら
https://sessionize.com/api/v2/mqw0vro3/view/GridSmartsessionize.com
- Javaエコシステムの最新動向 14:00 - 14:45 #Beginner
- Spring BootとRLS ではじめるマルチテナントアーキテクチャ 14:00 - 14:45 #Intermediate
- Adopting ZGC in HBase for LINE Messaging 14:00 - 14:45 #Intermediate
- テストコードが根付くチームを立ち上げるために考えたいこと 14:00 - 14:45 #Beginner
- FFMでJITコンパイラを作ってみた 15:15 - 16:00 #Advanced
- ソートできるUUID v7をJavaで使うときの話 15:15 - 15:35 #Beginner
- Javaプロファイラの信頼性とバイアスへの付合い方 15:15 - 16:00 #Intermediate
- Spring Boot vs MicroProfile - クラウドネイティブにおけるフレームワークの比較と選択 15:15 - 16:00 #Intermediate
- Contributing to the Java Community 15:40 - 16:00 #Beginner
- あとがき
Javaエコシステムの最新動向 14:00 - 14:45 #Beginner
Javaを巡るさまざまなエコシステムの利用状況を俯瞰してみるセッションです。
大きなシステムになると「デファクトスタンダードであるか」というのは重要な技術選定のファクターになりえます。プロダクト目線では人員や内部的な知見、または外部的な情報に困ることが少なくなり、エンジニア目線では「潰しが効く技術」となります。
一方で国内のみに絞った情報はなかなか手に入らず、本当にこれで良いのか疑心暗鬼になることもあります。
本セッションはJDKバージョンからJDKディストリビューションなど、他社の情報を知る良い機会になると思います。
また、アプリケーション監視サービスであるNew Relic
のJavaモニタリング機能など、運用に関わるエンジニアに役立つ情報も教えてくれるようです。
区分上は初心者向けのセッションですが、アーキテクチャ関係を管轄している人のほうが役立つことが多いかもしれません。
Spring BootとRLS ではじめるマルチテナントアーキテクチャ 14:00 - 14:45 #Intermediate
RLS(行レベルセキュリティ)を使ったマルチテナントアーキテクチャについてのセッションです。
RLS
はOracle Database
やPostgreSQL`で利用できる機能です。一つのDB(スキーマ)で複数のテナントをより安全に管理する仕組みです。具体的にはロール単位で行の権限を管理します。
詳細は次のそーだいさんの資料をみていただければと思います。
マルチテナントを扱う可能性がある人はぜひ聞いておきたい内容かと思います。 構築ノウハウや運用Tipsなどかなり実戦的な話が聞けるようです。
Adopting ZGC in HBase for LINE Messaging 14:00 - 14:45 #Intermediate
ZGC(ガーベジコレクタの戦略)の仕組み、特性についてのセッションです。
JavaにはGCという不要になったメモリを「いい感じ」に開放する仕組みがあります。中でもJava15でProductiontとなったZGCは巨大なメモリに対応しつつ、低遅延であることが特徴です。
Java21では更に性能を上げたGenerational ZGC
が使えるようになり、進化が目覚ましい領域です。
一方、一般のエンジニアには少しむずかしいと感じることも多いと思います。
本セッションでは、そんなZGCを使うことで性能を改善した経験をもとにZGCの仕組みや注意点、実際のパフォーマンスへの影響を共有してくれます。
高負荷がかかるようなアプリケーションで突破口を模索しているエンジニアにピッタリな上級者向けのセッションだと思います。
テストコードが根付くチームを立ち上げるために考えたいこと 14:00 - 14:45 #Beginner
テストコード文化、あるいはチームビルディングに関わるセッションになるのかなと思います。
テストコードは書いたほうが良いと言われながらもなかなか整備しきれないことも多いです。 このセッションではチームにテストコードを書く文化を根付かせるためのメンタリティを紹介してくれるみたいです。
実際に根付かせた経験から話してくれるので、チームに持ち帰って展開できるTipsもたくさん手に入りそうです。
チームにテストコードを根付かせたい人はもちろん、もう少し抽象化して、チームに新たな文化を作りたい人に対しても参考になるセッションになるのではないかと思います。
FFMでJITコンパイラを作ってみた 15:15 - 16:00 #Advanced
FFM(Foreign Function & Memory API)を使い、ネイティブレイヤの活用を模索するセッションです。
Java 22で正式機能となったFFMはJVM外部のコードとメモリとの相互運用APIです。Cの標準ライブラリをJavaから呼べたりします(今までもJNIというものを使って呼べましたが型の扱いなどが難しかったです)。
この「Javaの世界」と「ネイティブの世界」を連携強化を進めているJavaの開発プロジェクトが「Project Panama」で、FFMはこの一環となります。他に「Valhalla(プリミティブ型をいい感じに扱えるようにする)」「Amber(言語機能の強化、モダン化)」「Room(軽量スレッド(Virtual Threads)の実現)」が4大プロジェクトとして挙げられています。
このFFMを使ってJITコンパイラを作成し得た知見やVMの実装などを共有するそうです。
Javaで低レイヤーよりのことをするとこのへんは避けて通れない機能であるため、興味のある人も多いのではないかと思います。
ソートできるUUID v7をJavaで使うときの話 15:15 - 15:35 #Beginner
タイトル通りですが、UUID v7についてのセッションです。
UUID v7は5月にRFC標準化された「ソートできるUUID」です。(RFC 9562)
今までのUUID(UUID v4)は順番制がなくソートしにくい、結果としてRDBのINDEXが機能し辛いという問題がありました。解決するためにULIDというものを使って回避したりしていました。
Javaでは java.util.UUID
がありますが、まだv7には対応していないはずで、自作する以外だとUUID CreatorやJava Uuid Generator (JUG)を使うことが多いのかなと思います。
UUID v7とは何かの説明を含め、ライブラリを使うのかはわかりませんが、UUID v7を使う上での注意点を話してくれるみたいです。
シーケンシャルな主キーを避けたい場面の選択肢として有用なため、今すぐ使うことはなくても概要を知っておきたい内容のセッションだと思います。
Javaプロファイラの信頼性とバイアスへの付合い方 15:15 - 16:00 #Intermediate
Javaの性能分析ツール(プロファイラ)に関するセッションです。
JFR(Java Flight Recorder)をはじめとして、Javaには内蔵、外部含めさまざまな性能分析ツールがあります。ツールの特性(あるいは限界)の関係でプロファイラごとに分析結果が変わってしまうのですが、なぜ変わるのかと、差分についてどのように考えれば良いのかを話すそうです。
性能分析を行っているエンジニアはもちろんのこと、JVMの各作用がアプリケーションに与える影響についても少し知ることができるのかなと思います(それこそGCのセーフポイントなど)。
Spring Boot vs MicroProfile - クラウドネイティブにおけるフレームワークの比較と選択 15:15 - 16:00 #Intermediate
中小規模のWebプロジェクトのライブラリ選定についてのセッションになります。
「Jakarta EE + MicroProfile」と「Spring Boot」のRESTfulなAPIサーバーを比較して、双方の違いと長所短所をお話してくれます。
それぞれのフレームワークのDI(Dependency Injection、依存性の注入)とAOP(アスペクト指向プログラミング、共通機能の差し込み)方法についても説明してくれるみたいなので、どちらかしか知らない場合でも、大まかな特徴がつかめるものとなるはずです。
Contributing to the Java Community 15:40 - 16:00 #Beginner
「世界の」Javaコミュニティについてのセッションです。
JJUGは「日本Javaユーザーグループ」のことであり、当然世界各国にJavaのコミュニティが存在します。 日本からだとなかなか知ることができない、世界のJavaコミュニティの現状や、それらのコミュニティに飛び込む方法について教えてくれるそうです。
コミュニティの参加はカンファレンスだけではなく、コード、ドキュメントの作成、コンテンツの翻訳など多岐に渡ります。 登壇者本人がJavaコミュニティに貢献して得たものについてもお話があるそうです。
Javaのコミュニティにどんどん参加して、Javaを取り巻く環境を知りたい人は聞くといろいろな発見がありそうです。
あとがき
次のブログで16時~最後まで書き切ります!