STORES Product Blog

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

JJUG CCC 2024 Spring に参加しました!

こんにちは! STORES 決済 のバックエンドエンジニアをしているしまだ(mii)です。

6月16日に開催されたJJUG CCC 2024 Springに STORES のメンバーで参加してきました!
前回の2023 Fallに引き続きスポンサーブースを出展したほか、今回は STORES から2名が登壇しました。

このブログでは STORES が取り組んだことや、参加したメンバーの感想、印象に残ったセッションを紹介します。

ccc2024spring.java-users.jp

登壇セッション・登壇者コメント

PCI DSSの観点から見たセキュアなJavaアプリケーション / nannany

スライド: https://speakerdeck.com/nannany/pci-dssnoguan-dian-karajian-ta-sekiyuanajavaapurikesiyonkai-fa

  • PCI DSSからアプリケーション開発に役立つアドバイスを抽出し、現場での感覚を交えて発表しました
  • 発表に至るまでの経緯は別途ブログに記述しました

product.st.inc

ビルドツールとはなにか?からはじめるGradle超入門 / ヨヨイ(id:nhayato

スライド: https://speakerdeck.com/nhayato/jjug-ccc-2024-spring

  • Javaで使われるビルドツールであるGradleについて、「現代のビルドツールとは何者であるか」「どのような役割が期待されているか」というところから発表しました
  • もし明日から未経験の状態で突然Gradleが使われている現場に入っても、「ここで聞いていたから混乱しなかった!」と思われるような発表を目指しました
  • 泣く泣く削った話題も多いため、もっといろいろ話したかったですねー

スポンサーブース

スポンサーブースでは STORES 決済 のシステムやチームに関するクイズを出題しており、回答いただいた方にオリジナルグッズの当たるくじを引いていただきました。

STORES 決済 クイズ

出題したクイズと正解は下記の通りです。ブースで回答いただいたみなさま、ありがとうございました!

STORES 決済 で使われているJavaの一番古いバージョンはいくつでしょうか
  • Java 11
  • Java 17
  • Java 21(正解)
  • Java 22

STORES 決済(旧Coiney)が2013年リリースのサービスということもあり、Java 11を選ぶ方が多かったです。STORES 決済 では最新LTSに追従する方針で、昨年10月〜今年2月頃にかけてJava 21にバージョンアップしました。

2023年の1年間で STORES 決済 で行われた本番デプロイの回数は何回でしょうか
  • 10回
  • 50回
  • 100回
  • 200回(正解)

サービスが複数のモジュールに分かれており週2回(火、木曜日)リリースをしているので、2023年の本番デプロイは200回程度でした。

STORES 決済 は申し込んでから何日で使えるようになるでしょうか
  • 3営業日(正解)
  • 1週間
  • 2週間
  • 1ヶ月

キャッシュレス決済のサービスを利用するには審査や決済端末の配送が必要ですが、STORES 決済 では最短3営業日で利用開始できます。

STORES 決済 のバックエンドエンジニアは何人でしょうか
  • 3人
  • 5人
  • 8人(正解)
  • 12人

STORES 決済 はバックエンドエンジニア8人で開発しています。Javaエンジニア募集中です!

スポンサーLT

セッションの休憩時間にマネージャーの内立(@b1a9idps)がスポンサーLTをしました。

印象に残ったセッション・出来事

nannany

FFMでJITコンパイラを作ってみた
  • FFMというJVM外のメモリを操作するAPIを使って、JITコンパイラを作る試みをしているという話でした
  • 実務との直接的な関わりはないものの、Javaの世界からバイトコードの世界に踏み込んでいくのが面白かったです。低レイヤーを扱う技術者へのリスペクトが高まりました
出来事
  • 前職の同僚の方々、その日初めて会った方々と技術的なお話をすることができて、楽しい時間を過ごすことができました

ヨヨイ(id:nhayato

Spring for GraphQL の実践
  • Spring Framework で GraphQLを利用するための仕組みであるSpring for GraphQLの適用事例の紹介
  • 内容自体はしっかり書かれているので、ここで話すことはなく、スライドを読んでいただくとして......。(各観点についてコードを提示して説明されているので、使われ方はかなり理解しやすいと思います)
  • 懇親会でお話したときに、「日本での適用事例を検索しても、なかなか事例が出てこなかったところに課題意識を持っていて」というお話をされていたので、「尊い......」となりました

shoso

アンカンファレンス(AI)

ChatGPTやGitHub Copilotをはじめとする様々な生成AIサービスが台頭する中で、それらをどう開発に役立てていくかという議論を参加者の方々とさせていただき大変刺激的でした。

面白かった具体的トピック

  • 仕様書・設計書・コードの自動生成はある程度はできる。音声入力でもできるようになってきている。
  • 一方で、コードに関しては、歴史のあるコードベースの中でコーディングルール等を踏まえつつ適切なコード生成をさせるにはコンテキストを入力する等の工夫が必要
  • GitHub Copilot Chatなどでコードの解説を依頼できるようになり、「このコードは何をしているか」といったコメントはそこまで価値を持たなくなっていくかもしれない

uskey

ソートできるUUID v7をJavaで使うときの話
  • UUIDの歴史と最新情報、特にUUID v7をJavaで利用する上でのハマリポイントなどの紹介
  • STORES決済システム内で各所で利用しているUUIDですが、それをPKとして利用するかどうかも検討することも出てきたのでソート可能なUUIDには興味を持っていました
  • DBの種類によってはこれまでのUUID v4をPKにするとパフォーマンスが出ないなどの課題があった
  • 内容・構成もさることながら、発表自体も巧みで、00年代当時学生だったインターネット界隈ファンとしては「本物のヨシオリさんだ…」と感動してしまった

しまだ

知名度は高くないけど便利なJavaライブラリ集
  • 普段コードを書く上でよく使うBuilderの自動生成やバリデーションが便利になるようなライブラリが紹介されていて使ってみたくなりました
  • 挙げられていたClassic Builderの問題点など、実際Builderだと不便でコンストラクタを実装するようなことが多かったので勉強になりました
  • さらっと「自分が作ったライブラリで〜」が出てきて面白かったです

Beer Bashを開催します

7月10日(水)19:00〜21:00 に STORES Beer Bash for Java Engineer を開催します!
STORES からの登壇者2名も参加予定で、JJUG CCCの感想や STORES について気軽にお話しする会なので、ご都合のつくJavaエンジニアの方はぜひお申し込みください。

coubic.com

さいごに

当日はセッションも交流会も大勢の参加者の方で盛り上がっていて、オフラインのカンファレンスの楽しさを感じることができました。
カンファレンスの運営、登壇された方々および参加者のみなさま、ありがとうございました!