最後に参加したのが2018だか、2019だった気がする。
イベントページ
JJUG CCC 2025 Fall(現地開催のみ) https://jjug.doorkeeper.jp/events/190868 #jjug @JJUGより
タグは #jjug_ccc や、さらに部屋番をつけた #jjug_ccc_i などが流れていた。
メモ
午前は調子が悪かったため自宅で休んでました、午後のセッションから聞きました。
ブースは各社いろいろな話を聞きつつ、Java 25で結構これまで当たり前だと思ってたことが変わっていったり( IO.println とか)、調べるときも最新のコードやそのバージョンに合ったコードを意識が必要だと感じました。
https://qiita.com/nowokay/items/7e05b4c42ded043a298a
軽く探してみて、上記がまとまっていて参考になるなと思いました。
- 内製化組織の歩みとこれからの課題。-技術アーキテクチャと組織アーキテクチャ-
- https://speakerdeck.com/deffence1776/nei-zhi-hua-zu-zhi-nobu-mitokorekaranoke-ti-ji-shu-akitekutiyatozu-zhi-akitekutiya
- 経営もかなり協力があって、組織の内製化が進み、改善した例
- 発表の参考になってそうなもの
- かなりCI/CD も常識になっている
- 独自プロトコルで通信って当時はあるあるだったのかな?と気になった
- アプリ、インフラのレイヤーの垣根が薄れつつあり、両方に対してコミットして改善していく人が必要
- 顧客への価値提供の最大化の意識や、内製化による思考の変化が影響してそう
- モダンなアーキテクチャ、開発プラディクスはコスト削減に役立つ
- 人海戦術などが発生しないから
- Javaの仮想スレッドというものがあるらしい
- ChatGPTとかで調べていたらJVM自身でスレッドを立てる機能となっており、従来のものより作成コストが低いらしい
- CPUネック、メモリネック、I/Oネックなどこれまでのスレッド機能と合わせて使い分けが必要
- yagisan-reports のような帳票サービスなども利用して開発する
- 内製しているものもあるが、場所とニーズによっては SaaS を組み合わせるという方法も検討する
- レガシーで硬直したテーブル設計から変更容易で柔軟なテーブル設計にする
- テーブル設計についてはアプリケーションほどプラクティスが充実していない説
- アンチパターンなどは提唱されるが、自分事として考えたときに抽象度が高すぎる
- 予備カラムに始まり、キャンペーンカラムとか、ショットガンインデックスとか
- 開発フロー上の都合もある。テーブル追加はかなり慎重で手続きが必要なケースなど
- 未来に対する対策を常に考える
- 特に発表内ではデータ量への意識、が繰り返し話されていたように思う
- 時間軸への意識が必要、大きくなった時にどうパーティションするか
- ALTERしない戦略
- ALTERすること自体がカラムの意味を変えてしまう、つまりドメインとして扱うものが変わる可能性が高い
- 新しく CREATE TABLE + INNRE JOIN(OUTER JOIN) などで既存データに手を加えず、ダウンタイムなしで対応するというやり方
- 先にテーブルやデータ追加 → ダブルライトなどでうまく同期 → カラムの切り替え、でうまくやる
- UPDATEせずに、DELETE & INSERT でやる方法
- メモが漏れているが、これもテーブルを作ってから、だったような記憶
- UPDATE は updated_at の更新が漏れがち問題がある
- 2つのテーブルを1つのテーブルにするために、いったん別のテーブルへダブルライトしておいて、そのあと ALTER などでリネームし、不要テーブルを消すやり方
- 不要テーブルの名前に対して prefix をつける (
_など)をつけて管理する- これは割とわかりやすいと思った
- 不要テーブルの名前に対して prefix をつける (
- MySQL, PostgreSQL 両方ついて1スキーマに対して億レベルのテーブルが作れる、それを考えるとカラム追加よりもテーブル追加で何とかしたほうが良いケースも多そう
- どういうサービスか? によって世の中のやり方も参考にしつつも、戦略を自分自身で考える必要がある
- テーブル設計についてはアプリケーションほどプラクティスが充実していない説
- Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
- https://speakerdeck.com/tabatad/javakomiyuniteinobu-kifang-can-jia-karagong-xian-made-subetejiao-emasu
- 前後半でこれはそのうちの後半の話
- 前半はコミュニティの話など
- 後半はコミュニティに参加しての話
- 海外のカンファレンスに参加すると国内外に知り合いができる
- 海外カンファレンスに行きたがるアピールが人に応援されるコツなのかも?
- 普段から海外カンファレンスの動画を見てまとめたり、などなど
- 英語ができないというより話しかける勇気
- 話したい人が一人になった瞬間を狙ってつたない英語でも話しかけに行く
- ヨーロッパ圏でも英語ができない人はいるので、そういった人々とのコミュニケーションも慣れている
- 話したいことはメモしておく
- いきなりOSSに貢献するのは難しいが、ステップを追っていくとそのうちできるかも?
- https://speakerdeck.com/tabatad/javakomiyuniteinobu-kifang-can-jia-karagong-xian-made-subetejiao-emasu
感想
Java 25 の変更はかなり機能的な追加も多く、後方互換性も維持しつつも便利だ!と思えるものが増えていて、昔Javaを使っていたユーザーとしては気になりました。 仕事で Java ないし JVM 系の言語を使うことは今ないのですが、特にがっつりと型をつけつつやりたいというときは Scala とかは頭に浮かぶので、時間があるときにちょっと触ってまずは遊んでみたいなと思いました。
あとは Spring Boot でしょうか? 今回はトークを聞かなかったのですが、かなり強いポジションを占めてそうです。 AIとか使いながらなんか学習できるといいのかな…。
今はメインでJavaを使っているユーザーではないので、ほかの Java 以外に後半的に使える知識のセッションについてはまた別途資料を読んでみて、学んでいこうと思いました。 数年ぶりに参加してみて、かなり Java 以外の開発に関するセッションなども増えてきているので、今後も気になるものがあれば参加しに行きたいです。 また Java を使っているサービスは全体的にサービスサイズが大きく、EKS や k8s の活用の話も結構聞こえてきました。 そういったインフラに挑戦してみたい場合は JVM で動いているサービスで大規模インフラみたいなサービスに挑戦してみるのも面白いのかなともいました。