来たる2024/6/16にJJUG CCC 2024 Springが開催されます!
この記事ではセッション一覧から内容を想像して、予習していきます。 当日聞くセッションの参考になれば幸いです。
※セッションの説明から考えた個人の想像になります。実際の内容とは異なる場合があります。
タイムテーブルはこちら
https://sessionize.com/api/v2/mqw0vro3/view/GridSmartsessionize.com
- 次世代RDB劔"Tsurugi"にアクセスするJavaライブラリー・ツール 11:00 - 11:45 #Intermediate
- フレームワークを10年以上開発する中で培ってきた単体テストのプラクティス 11:00 - 11:45 #Intermediate
- FIFOキューで実現するSpring Bootの非同期処理とその性能評価方法 11:00 - 11:45 #Intermediate
- Spring for GraphQL の実践 11:00 - 11:45 #Intermediate
- Kubernetes でも Java アプリで TLS 接続を終端したい 12:00 - 12:45 #Intermediate
- PCI DSSの観点から見たセキュアなJavaアプリケーション 13:00 - 13:20 #Beginner
- 自動アップグレードを夢見て、Amazon Q Developer使ってみた 13:00 - 13:20 #Beginner
- JJUGキーノート: Java First. Java Always. 13:00 - 13:45 #Beginner
- Webアプリケーションセキュリティの基礎とSpring Bootでの実装 13:00 - 13:45 #Beginner
- 条件分岐の多さと紛らわしい命名、先にリファクタリングするなら? - Java ソースコードをみんなで読んで比べた結果 13:25 - 13:45 #Intermediate
- ビルドツールとはなにか?からはじめるGradle超入門 13:25 - 13:45 #Beginner
- あとがき
次世代RDB劔"Tsurugi"にアクセスするJavaライブラリー・ツール 11:00 - 11:45 #Intermediate
Tsurugi
というRDBMSの紹介がメインとなるセッションのようです。
Tsurugi
の特徴として、メニーコア・大容量メモリーで性能を最大限発揮できるアーキテクチャとなっているようです。
今回のセッションではTsurugi
本体の説明に加えてTsurugi
にアクセスするためのライブラリやツールの紹介があり、実戦でTsurugi
を使うためのノウハウの詰まったセッションになりそうです。
SQL実行ライブラリ名がIceaxe
(ピッケル)ということで、劔(岳)を攻略するのにふさわしい命名なのもちょっとおもしろいです。
フレームワークを10年以上開発する中で培ってきた単体テストのプラクティス 11:00 - 11:45 #Intermediate
中級者向けの単体テストのセッションです。
登壇者が社内向けのフレームワークを開発する中で培った単体テストのプラクティスを紹介してくれるようです。 注釈として、理想(ベストプラクティス)から離れたものもあると記載があり、開発者の生の声が聞けるセッションになるのではないかと期待できます。
「データベースの初期化、アサート、暗号化・復号化」、「基本的にスタブは使用しない」という記載からJavaの単体テストでよく行われる、Repository層をモック化してテストを行う手法ではなく、Ruby on Rails等で行われるDBまで一貫したテストを行う方法論みたいです。
アプリケーション開発チームにすぐに持ち帰れるセッションで、多くの開発者におすすめできそうです。
FIFOキューで実現するSpring Bootの非同期処理とその性能評価方法 11:00 - 11:45 #Intermediate
キューによる非同期処理の知見共有のセッションです。
アプリケーションで非同期実行する際に、「こういうことをしてね」という情報をストレージに入れ、処理する側がそれを読み取り、あとから実行できるようにする仕組みの解説です。
FIFOとはFirst In First Outのことで、「先入れ先出し」を表し、「こういうことしてね」と入れた順にキューが処理されます。標準キューはおそらく順序が保持されていないキューのことかと思います。
実運用で出た性能上の課題をキューの方式変更とコンシューマのスペックアップタイミング変更で解決したとのことで、泥臭い話も聞けるかもしれません。
キューの性質の差で性能にどれだけ差がでるのか、私は知見がないので、ぜひ聞いてみたいセッションです。
Spring for GraphQL の実践 11:00 - 11:45 #Intermediate
SpringでGraphQLを利用するセッションです。
GraphQLはクライアントが欲しいデータを指定して、サービスはその内容のみを返却するというAPI方式です。REST APIがサービス側主体でデータの取捨選択をするのに対して、GraphQLはクライアント側主体だと言えます。
このセッションでは、実際に開発しているプロダクトの構成を例に取りながら、「Schema validation」や「Error レスポンス管理」といった、一歩先の、実開発で悩みがちなことまで解説してくれるようです。
アプリケーションでGraphQLを使っている、使ってみようとしている人は非常に参考になる内容かと思います。
Kubernetes でも Java アプリで TLS 接続を終端したい 12:00 - 12:45 #Intermediate
KubernetesのJavaアプリケーションにおいて TLS 通信を終端するためセッションです。
JavaにはKeyStoreというアプリケーションの暗号化の鍵と証明書を格納するためのクラスがあり、コンテナ上でKeyStoreクラスに鍵/証明書をどのように連携するのが良いかという話になるみたいです。
私自身のk8sへの知見がうすすぎて課題感がつかめていません、すみません......。
PCI DSSの観点から見たセキュアなJavaアプリケーション 13:00 - 13:20 #Beginner
国際的なセキュリティ確保基準であるPCI DSSをベースにしたセキュアプログラミングのセッションになるかと思います。
PCI DSSはクレジットカード業界のセキュリティ基準であり、クレジットカード情報等を保持するためには、この基準に準拠する必要があります。
昨今の情報流出への意識の向上やサイバー攻撃の潮流を見ると、セキュリティ的に強固であることはアプリケーションの必須要件となっています。アプリケーションで扱う情報次第ですが、示唆されているようにPCI DSSのセキュリティ基準は一般アプリケーションでも有用なように思えます。
情報流出対策で必要な勘所や考え方を知れるセッションであることを期待します。
自動アップグレードを夢見て、Amazon Q Developer使ってみた 13:00 - 13:20 #Beginner
「Amazon Q Developer」を試してみた結果を共有するセッションです。
サービスとしてはGitHub Copilotと同じようなものですが、「Java8のコードをJava17に変換できる」ことを謳っています。
Java8からの変換はJava9のProject Jigsawの壁が高くコストがかかることが多いです。実際Java8で凍結してるプロジェクトも多いのではないでしょうか?Project Jigsawはアプリケーションがパッケージ単位でそのモジュールを参照するかどうか定義する仕組みです。
登壇者自らいくつかのコードをもとにアップグレードを試したようなので、このセッションをブレイクスルーに多くのプロジェクトのアップグレードが自動で行われることを願います。
今現在、アップグレードできていないプロジェクトがある場合、聞いておいて損はしないセッションではないかと思います。
JJUGキーノート: Java First. Java Always. 13:00 - 13:45 #Beginner
オラクルの方のセッションです。
アプリケーションを取り巻く環境が変化し続けている中で、Javaがどのように進化していくのかを話してくれるみたいです。
その中でJavaに対するオラクルのアプローチやコミュニティとの関係性にも触れるようなので、Javaの未来が気になる人は、ぜひ聞いてみてください。
Webアプリケーションセキュリティの基礎とSpring Bootでの実装 13:00 - 13:45 #Beginner
Spring Bootを用いたセキュアプログラミングの基礎セッションです。
例として挙げられているものは「SQLインジェクション対策、CSRF対策、XSS対策、セッションID固定化対策」などとなっています。アプリケーションをセキュアに保つために各開発者が必ず守らなければならないことが解説されるようです。
難しいセキュアな実装はテックリードが行うかもしれませんが、今回例示されている範囲はどれも一般的な開発者が見ておかないといけないものばかりです。
Webアプリケーション開発を始めたばかりな人には特に有益なセッションになると思います。
条件分岐の多さと紛らわしい命名、先にリファクタリングするなら? - Java ソースコードをみんなで読んで比べた結果 13:25 - 13:45 #Intermediate
読みやすいコードをいかに達成するかというセッションです。
「構造的なわかりにくさ」と「命名的なわかりにくさ」に問題を分けて、優先的に解決すべき課題を事前研究結果を交えて発表されるそうです。
感覚値で語られることが多かったリファクタリングの優先順位について、統計データをもとに話されるということで、良いコードを書きたいすべてのエンジニアにオススメのセッションです。
ビルドツールとはなにか?からはじめるGradle超入門 13:25 - 13:45 #Beginner
Javaで使われているGradleというビルドツールの解説です。
初学者向けのセッションでビルドツールとは何か、何を解決してくれるのかというところから話してくれるみたいです。
IDE上でJavaの標準ライブラリだけを使って自己学習していると全く触れない部分なので、ビルドツールは多くの初学者がわりと混乱するポイントだと思います(記法もJavaではないですし)。
Webアプリケーション開発をこれからやってみようという方はぜひ聞いてみてください。
あとがき
これで半分くらいですかね? もうちょっと頑張ります。