🥳

JSConf JP 2024に初スポンサー&初参加してきました

2024/11/25に公開

2024年11月23日に行われた JSConf 2024 に初参加してきたレポートです!

現地の空気感や印象に残ったセッション、所属会社がスポンサーした感想など自分が感じたことを書いています。よかったら読んでみてください!

自己紹介

TimeTreeでフロントエンドエンジニアとして働いている @fujikky です。

JavaScriptなどのフロントエンド関連の技術は前職のヤフー時代から触れ合っていましたが、2012〜2015年ぐらいは主にiOS開発を行っていて、2016年ごろから再びフロントエンド開発に戻ってきました。2024年からはスタッフエンジニアとしてフロントエンドの技術相談・採用などをやっています。

JSConf JPとは

https://jsconf.jp/2024/

2019年から行われている Japan Node.js Associationが主催する日本最大のJavaScriptカンファレンスです。JSConf JP 2024は5回目の開催で、39名のスピーカーのセッションが行われました。

JSConfの存在は以前から認知しておりました。しかし毎年人気すぎて気付いた頃にはチケットが売り切れてしまうため、今まで参加したことはありませんでした。当日Xに流れてくるスライドを見て、いつか行きたいという思いを募らせていたものです。フロントエンド界隈の著名人の方々もスピーカーとして参加されるので今年も非常に楽しみでした。

さらに今回はTimeTreeもスポンサーになることができたので、フロントエンドコミュニティを少しでもサポートできたのが嬉しかったです。配信画面にTimeTreeのロゴが映っていたときはテンションが上がりました。

配信待機画面

https://timetreeapp.com/intl/ja/newsroom/2024-11-13/jsconf-jp-2024-sponsored

TimeTreeとフロントエンド

TimeTreeはアプリの会社と思われているかもしれませんが、実は随所にフロントエンドの技術が使われています。例えばWeb版のTimeTree、TimeTreeの紹介サイトやコーポレートサイト、また一部の機能はTimeTreeアプリ内のWebViewで実装されています。

フロントエンドメンバーの人数もiOSやAndroidのメンバー数とほぼ変わらず、今も積極的に採用をしています。
https://open.talentio.com/r/1/c/timetree/pages/16546

会場へ

今回TimeTreeはスポンサー企業になりましたが、そもそもエンジニアカンファレンスのスポンサー経験があまり無いため、今回はブース出展をしておりませんでした。たまたま当日参加できるメンバーも自分1人だけだったので、会社の代表になった気持ちでTimeTreeのTシャツを着て向かいました。

会場は九段下駅からすぐの九段坂上KSビルです。リクルートのオフィスだそうですが、まるで大学のキャンパスような開かれた雰囲気で素敵な建物でした。


セッション

弊社で採用している React や Storybook の技術に関するセッションを中心に参加しました。

参加したセッションはどれも大変興味深い内容でした。すぐに業務に取り入れられる知見も多かったです。いくつかセッションの感想を載せておきます。

LT: UI 開発における ヘッドレス UI ライブラリの重要性とデザインシステムへの取り入れ方

適切なアクセシビリティ確保するのは非常に難しいので、それを解決するために React Aria などのヘッドレスUIライブラリを導入するのはいいぞ、という内容です。うちのプロダクトも贔屓目にみてもアクセシビリティが十分に確保されているとは言えない状況なので、初回から大変参考になるセッションでした。

LT: JavaScriptを支えるエコシステム(漫才)

フロントエンドエンジニアなら幾度も記事を目にしたことのあるuhyoさんとあざらしさんの漫才セッションでした。ミルクボーイ風の漫才で、「パッケージマネージャ」「バンドラ」「ランタイム」「エッジコンピューティング」の内容で話が展開されます。あるある!わかる!!!というものから、知らなかった〜〜!と唸るようなネタまで盛り込まれており、会場は大爆笑でした。スピーカーノートに漫才のネタも書かれているので、合わせて読むことをお勧めします。

https://docs.google.com/presentation/d/1cwNcGQ6-GNi8xf_E3XBRWgGIxksoeGiEtAZ6wDkeoXs/preview#slide=id.p

LT: Storybook との上手な向き合い方を考える

弊社でもStorybookを使っていますが、プロジェクト開始時に「とりあえずStorybook入れよう」となる背景も、その後「メンテされずに放置されるStorybook」となる状況もあるあるでとても共感しました。Storybookを使う目的を明確にするということにも激しく同意したので、改めてStorybookの存在意義をチーム内で再定義してみようと思います。

幸せの形はどれも似ているが、不幸なプロジェクトはそれぞれの形がある

フロントエンド界隈で有名なmizchiさんの発表です。生mizchiさんを見るのも初めてでした。パフォーマンスバジェット(予算)という考え方を用いて「作ったプロジェクトは機能追加のたびにパフォーマンスが劣化する」という前提でどうやってバジェットを維持し続けていくか、という内容でした。「推測するな、計測せよ」の前提の元、Chrome DevTool でのパフォーマンス問題の特定方法の紹介もあり、非常に参考になりました。弊社でもパフォーマンス起因のSEOスコアが問題提起されており、原因を探ろうとしてはいましたが、今までまともな計測は行っていなかったのでこれを機に試してみようと思いました。

https://gist.github.com/mizchi/e89421ce017fdb6597a9aa08083001bf

JavaScriptのモジュール解決の相互運用性

インポートパスの解決方法について分かりやすく整理されていました。普段 import 構文を書いていて何も疑問に思っていませんでしたが、Native ESM が使われていることは現状はほぼなく、フレームワーク毎にESMサポートを適宜変換しているという話です。Fake ESM や Sloppy ESM は便宜的に付けられた用語のようですが、とても理解しやすかったです。

Modular Monolith Monorepo

モノレポ開発のメリットと、治安を維持するための設計・ルール決めについてのセッションでした。特に Design Docs による意思決定プロセスが非常にしっかりしており、学ぶところが多かったです。弊社でもバックエンドチームが Design Docs を採用していますが、その重要性をより身近に認識できました。

懇親会へ

すべてのセッションが終わった後は懇親会でした。今回は1人で参加だったので、コミュ力不足もあり、あまり他の方とお話ができませんでしたが、何名かの方と実りのある話をさせてもらうことができました。TimeTreeのTシャツを着ていったおかげで利用者様から話しかけてくれることもあり嬉しかったです。

まとめ

フロントエンド界隈では日本最大級ということもあり、参加したセッション全て非常に参考になるものばかりでした。実は今回「Next.jsでPages Router + SSGからApp Router + SSRに切り替えた話」的な内容でCfPを提出していたのですが、採択されていませんでした。今思えば、皆様のセッションと比べて到底張り合えるものではなかったと思っています。来年も挑戦しようと思います。

残念ながら直接お話しすることはできませんでしたが、フロントエンド界隈の著名な方々も拝見することができたのは個人的にとてもテンションが上がったポイントでもあります。

来年の JSConf もぜひ参加したいですし、チャンスがあればまたスポンサー、スピーカー、ボランティアスタッフなど、コミュニティに貢献できることは挑戦していきたいと思いました。ブース出展もやってみたいですね。

最後に、土曜日に朝から夜まで家を空けることになったのですが、子供達の面倒をずっと見ていてくれた妻にも深く感謝しております。

TimeTree Tech Blog

Discussion