msfukuiの日記

おおまさのみみはそらのみみ。

JJUG CCC 2023 Fall に行ってみました

Java 関連にはこれまであまり縁がなかったのですが、今後 Kotlin + SpringBoot という構成のシステムに携わる可能性がありそうで、雰囲気を知りたくて、参加させていただきました。

ccc2023fall.java-users.jp

ほぼ初参加だったのですが、現地開催のみ、ということで、とてもとても賑わっていました。先日の PHP カンファレンス 2023 もそうだったのですが、本格的にカンファレンスが戻ってきた、という感じで、とてもわくわくできて楽しかったです。

以下、参加したセッションについての簡単な感想です。*1*2

https://sessionize.com/api/v2/2gdy2o95/view/GridSmart

Exceptionハンドリングの基本と新しい手法について (河野裕隆さん)

speakerdeck.com

Java の例外の分類と基本的な使い方をコンパクトに説明いただいた後での、パターンマッチと sealed によるすっきりした見通しのよいコードがとても印象的でした。

これまであまり深く考えたことがなかったので、例外処理について深掘りして、自身の知識をアップデートしたくなりました。

ブランチ運用とデプロイフローを見直してリリースを楽にする (ユカイさん)

speakerdeck.com

担当されているプロダクトのブランチ運用とデプロイフローの課題とその改善内容を、わかりやすくまとめていただいていました。

たくさんある課題と改善の中で、改善の際に「失われたもの」を一つ一つ上げられているところがとても印象的でした。
フィーチャーフラグの実装により、切り戻しが格段に早く、楽になる、というコメントが、とても納得感があって良かったです。
DB migration を伴うリリースはどう自動化しているのか、フィーチャーフラグの実装により分岐が増えてコードの見通しが悪くならないか? という点は、ぜひ意見お聞きしてみたいと思いました。

レガシーなWebサービスから世界標準への挑戦 (Rina Hashimoto さん)

GMOペイメントゲートウェイでの OpenAPI 実装の提供について。「王道」という感じでした。

この規模の歴史もあるシステムだと、いろいろあって大変で、でもその中でもきちんと今のWeb標準に則った対応をされていて、この「普通に開発する」の大変さをあまり感じさせないところがとても良かったです。
途中の説明にあった「決済系なので GET は使わない」は頷いている人が多かった印象ですが、RESTful に染まっている私にはちょっとピンと来なかったです。あと「リダイレクトとコールバックだけは cookie が消えるので GET で実装」は、もう少し詳しくお聞きしてみたいと思いました。(ドメインの異なるサイト間での情報の受け渡しになるから、、ということだと納得ですがそんな単純な話ではなさそうに感じました。)

JDK 21 へようこそ (dbuck さん)

この 9 月に出た Java21 について、いくつか代表的な新しい機能についての解説。

タイトルや概要を認識していたものはいくつかありましたが、詳しい内容は全然把握できていなかったので、とても嬉しいセッションでした。内容もわかりやすくてとても良かったです。なにより解説が日本語なことがとても助かりました。。すごい。

このあたりで持って行った PC のバッテリー容量がみるみる減って切れてしまい、なんで? ってなりました。寒かったからかな。。

あと一番前の机のある席が結構空いていて、座っている人があまりいなかったのがもったいない感じでした。遠慮せずに特等席でお聞きできてとても良かったです。

持続可能なデータアーキテクチャを実現したリアーキテクティング (Katsuyoshi Urano さん)

www.docswell.com

指数関数的に増大するデータをバックエンドに持つシステムを、リアーキテクチャにより改善した話。

DynamoDB の制限の話がとても具体的な痛みで良かったのですが、どなたかも書かれていましたが、ここは JAWS-UG かと思ってしまいました。面白かったです。タイムアップになってしまったのですが、アプリケーションのリアーキテクチャの話もお聞きしたかったです。資料が後ほど公開されるみたいなので、拝見してみたいと思います。

この辺りで会議室の寒さに耐えられずに一旦外に出ました。

動くコードを書こう (kis さん)

speakerdeck.com

「きしだのはてな」で有名なきしださんのセッション。とてもこなれている感じで考えさせられる楽しいセッションでした。
内容は、先日休刊した Web + DB Press で書かれていた記事から、ということだったのですが、未読なのですが内容には既視感があり、過去にきしださんが書かれていた以下の記事を思い出しながらお聞きしていました。

nowokay.hatenablog.com

この件は昔からずっと気になっていて、先日以下でこの記事の内容をダメコードですが簡単に実装してみたりしていました。

github.com

自身のプログラムを書くことののわかりにくさのポイントとか、人に教えるときの考え方とか、AIとの棲み分けとか、コードを書く話でありながら、コードを書くこと以外で考えることが多い話題だと思いました。身近でお聞きできてとても良かったです。

アンカンファレンス (谷本さん、他)

アンカンファレンスのテーマ募集のホワイトボードがあったので、Java に詳しくない身から「Java 言語の使いどころと他の言語とのすみ分け」のチケットを貼ってみたところ、取り上げていただいていろいろな観点からみなさんのお話を聞くことができました。メンバーの持っているスキルによるところが大きいということでしたが、他にも、型付き言語であることの利点、問題があった場合の原因追及ができるツールの豊富さ、10年選手としての後方互換性の高さ、書ける・運用できる人の多さ(特にベテラン勢)など、主にエンタープライズ領域で第一線を張っている言語ならではの特徴を、著名な方々から実感を持って聞くことができて、とても参考になりました。

PHPRuby などで作られたシステムを、生き残って大きくなるにつれて他の言語で作り直す/一部機能を分離する、という話はよく聞きますが、知識としてその言語やエコシステム、人材の特徴などは知っていても、実感を伴わないままで選択はしたくないな、と改めて思いました。

あと、アンカンファレンスの内容については、書けない話が多いことがよくわかりました。ほぼ会話を聞いているだけでしたが、楽しかったです!

ラムダ式をHowではなくWhyで理解しよう! (青木 澄怜さん)

speakerdeck.com

ラムダ式を理由から理解しよう、というお話。

傘のメタファーでのWhyの大事さの説明など、納得感あってとても良かったです。初心者の方に説明する際に使ってみたいと思いました。
何より一年目で登壇してお話しされているその勇気に敬意を評したいです。登壇の経緯を質問された際の、受け取った恩返しとチャレンジの話は、とてもグッときました。それを聞いた会場の、おおっ、という感じもとても良かったです。みんないい人。

スポンサーブース

Oracle さんのノベルティが欲しいなって思ったのですが、アンケートに「会社名」を書く欄があって、現在主夫なので断念しました。勇気を出して聞いてみれば良かったです。😄

GMO さんの Java クイズは、プログラムはともかく、Effective Java を読んでいないので回答を断念しました。やっぱり部外者には難しい。。

まとめ

JJUG とても良いなって思いました。今回は多くのものをいただいた形なので、次回参加するときまでに何か還元できることにチャレンジしたいと思いました。

登壇者のみなさま、スタッフのみなさま、スポンサーの企業さま、本当にお疲れ様でした & ありがとうございました。

*1:セッション一覧にはセッションごとのパーマネントリンクが設定されていないみたいで、API実装がかっこよさそうなのに、直接のリンク貼れないのがちょっと残念。。

*2:各セッションの資料が公開されたら、できるだけ拾って追記したいと思います。