【潜入レポート】社内勉強会(バーニャ)に潜入してきた


この記事は『カオナビ Advent Calendar 2023(シリーズ2)の 23日目』です。

https://qiita.com/advent-calendar/2023/kaonavi


## はじめに
ついにアドカレも5本目の投稿となりました。
どうもVPoEのKeeeenです。

今回はカオナビのフロントエンジニア向け社内勉強会である『**バーニャ**』に参加してきたので、レポート形式で紹介できたらと思っています。
ちなみに私は元々サーバーエンジニアなのでフロント領域には明るくないのですが、担当しているプロジェクトのエンジニアが発表するということで改めて知っておきたかったこともあったのが参加しました。

## バーニャの紹介
まずは勉強会『バーニャ』の紹介です。
バーニャはカオナビ内で開かれているフロントエンジニアに特化した勉強会の通称です。
オンライン実施で、30分の間に発表者が代わる代わる話をしていきます。共有される画面にはCTOが開発したツールでSlackに投稿されたコメントが流れます。さながら某動画投稿サイト風という感じで、オンラインにとてもフィットしたスタイルで実施されています。

※ちなみにこの勉強会に限らず社内の勉強会は基本的に業務時間内で定期的に行われています。

## 今回の勉強会とレポート方法について
ではさっそく今回潜入した12/22(金)の会について紹介していきます。
今回の発表者は４名で、発表内容は下記の通りです。

:::note info
■ポーリングの話
■積み本の話
■SubGridの話
■jotaiの話
:::

これら4セッションを
『前提』
『内容』
『感想』
の3要素でまとめてレポートしていきます。

## ■ポーリングの話
### 前提
カオナビは人事情報を扱うサービスで、CSVなどを用いて大量のデータをアップロードするシーンがよくあります。大量データなのでバリデーションやインデキシングにそれなりの時間がかかるので、UI側でその進捗を表現するためにポーリングを用いることがあります。

### 内容
ざっくり概要を書くとこんな感じです。

:::note info
■古のコードで認知不可が高い
■React Queryでシンプルに対応しようとした
■現実装と乖離するところがあってちょっと拡張性が足りなかった
■汎用的なラッパー使ったよ
:::

### 感想
『ソラでは書けない(認知負荷が高い)のでリファクタしたい』という思いから、どうにかできないかアプローチしているところにエンジニアのコード改善に対する姿勢が垣間見えました。
特に個人的に良いと思ったのは

**１．このラッパーが汎用的にかつ簡単に使えるように書かれていたこと**
**２．リスナーが勉強会の中で共通ライブラリにいつ置くのか聞いていたこと**

の２点です。
SaaSというサービスの特性上、技術負債は致命的なものになります。それ故エンジニアは作りきりのものを提供している環境よりもかなり技術負債や認知負荷を意識しながら開発をしています。今回の話はまさにその課題解決を象徴するもので、１つずつ着実にかつ負債が残らないように改善しようとしているところがとても印象的でした。

またオンラインで開発業務をしているとどうしても情報が過多になり、重要な情報が流れてしまいがちです。この点ではみなさんも情報伝達にかなり苦労しているのではないでしょうか。
この会ではリスナー側が積極的に質問をしやすい雰囲気があり、皆がちゃんと自分ごととしてしっかり聞くということが自然とできていました。オンラインで一番むずかしいと思われる『正しい情報の伝達』がしっかりできていることを確認できました。

## ■積み本の話
### 前提
カオナビ社では広く世に自身の知見をアウトプットすることが、**自身のキャリアとスキルアップになる**と考えています。そのため外部での登壇の練習の場として社内勉強会を活用してもらいたいと考えております。

### 内容
ざっくり概要を書くとこんな感じです。

:::note info
■購入はしたもののまだ読了していない本の紹介
■全く読んでないフロントエンジニアリング関連の本の紹介
:::

### 感想
まず何より良いと思ったのが新卒のメンバーが普通に勉強会で発表していたことです。そしてセッションコンセプトもすごくセンスがあるなと感心させられました。

というのもこのセッションを聞くまでは先入観で**なんとなく読んだものを紹介した方がいい**と思ってしまっていたのですが、意外にも『これは絶対読むべき！』『これは自分も読みたい！』というように、フィードバックのみならず周りの興味を喚起したり、当人にとっても効率的に情報を収集できる場として成立していました。勉強会をいろんな意味でうまく活用できており、自分の中にはないメソッドだったのでいい意味でとても驚きました。

## ■SubGridの話
### 前提
これまでのCSS Gridだと中のコンテンツの制御が大変だったり、そもそもこれまでは全ブラウザで対応していなかったので独自で対応しなければいけませんでした。それが2023年9月から全ブラウザ対応になったという背景からの話です。

### 内容
:::note info
■実際のSubGridの使い方やその有用性に紹介
■ちょっと癖があるところもあるけどいいよ
:::

### 感想
2023年9月から全ブラウザ対応になってすぐのこの発表は、移り変わりの早いフロント業界にちゃんとついていけている証拠だと思いました。プロダクトが肥大化していくのはしょうがないところもありますが、対応の幅を増やせるように、最善の選択をできるように情報を常にキャッチアップしていくことは同じエンジニアとしてとても尊敬できる姿勢だと思いました。

## ■jotaiの話
### 前提
あるプロジェクトで導入した状態管理の話。

### 内容
:::note info
■Redux / Recoil / jotaiの比較
■今回のプロジェクトでjotaiが最適な理由
■実装されたコードを魅せながらの説明
:::

### 感想
今あるものを正しいと思わず、最適なものを選定できていることにとても感心しました。この手の話でよくある失敗談は『流行ってるしとりあえず触ってみたいから使ってみたらめっちゃ失敗した』というものですが、しっかりフラットに主要な状態管理ツールを比較して選定しているところがとても素晴らしいと思いました。聞いている方も**確かにjotaiが一番フィットしているね**と思えるくらいにきっちり説明がなされており、私がエンジニアカルチャーとして大事だと思っている、『やりたいかやりたくないかではなくフラットに論理的に考える』を非常に体現できていると思いました。

## まとめ
いかがでしたでしょうか？
今回勉強会に参加して思ったの理想的な勉強会だなーということです。VPである私が書いてしまうと何かヤラセ感、盛ってる感が出てしまうのですが、本当にフラットに見てすごくよい勉強会でした。

カオナビ社ではバーニャ以外にも言語や職種に合わせた勉強会が多数開催されています。スペシャリストとして情報をキャッチアップする場、成長できる場があったり、組織としても個々の成長の重要性を重んじているんだということをこの記事を通して少しでも感じていただけたなら幸いです。

また、この記事をみて勉強会も含めカオナビ社に興味を持っていただけた方はエンジニア採用も行っているので奮ってご応募ください。

https://corp.kaonavi.jp/recruit/recruitment/