よもやま話β版

よもやま話を書きます。内容はぺらぺら。自由に書く。

Kaigi on Rails 2023 感想メモ

kaigionrails.org

Kaigi on Rails 2023 参加してきました! ありがとうございました! 2020年の開始以降、ご時世柄ずっとオンライン開催だった会ですが、満を持してのオフラインでしたね。大変楽しくセッションを拝聴させていただきました。

RoomAの様子

今回はRoomA・Bがあり、人間は分裂できないのでどちらか片方しか聴講できないという問題が発生していたのですが、聞けなかった分は後日オンライン配信のアーカイブが公開されるようなので、ぜひ拝見したいな〜と思っております。

CFP通過の倍率が今回約3倍だったとのことで「来場者の4人に1人はCFP出してるかもね」という会話があったりもしました。自分は今年出せていなかったのですが、スピーカーの皆さんの熱量を浴びて「発表っていいな〜」という状態になっているので、来年は採択の有無はさておき「CFP出したぞ!」と言えるようにしたいです。

通知アプリ

今回は以下のような機能のあるブラウザアプリが配布されており、とても便利に活用させてもらいました。

  • 運営からのアナウンス(Wi-Fi情報書いてあるの大変助かる〜)
  • 気になっているセッションのブックマーク、からのリマインドPush通知
  • QRコード読み取りで「知り合った人」を増やす

これ自体もRailsで作成されているところがドッグフーディングな感じがして最高ですね。特に「知り合った人」は話をするキッカケになったりしてとても助かりました。タグもつけられたりして面白かったです 👍

以下、つらつらと自分用のセッションメモです。

セッションメモ(Day1)

  • スポンサーLT1(mybestさん): レビュー記事をよく拝見するけどバックエンドはRailsなの実は知らなかった…!
  • スポンサーLT2(Techouseさん): かなりガッツリ、スポンサーLTとは思えないレベルのSidekiq & AWS Fargate のお話を聞けて面白かった。
  • スポンサーLT3(gifteeさん): giftee Port リリースおめでとうございます!企画からリリースまでの流れがすごく丁寧で素敵。
  • 基調講演「準備中」: @zzak さんがこれまでどのようにRubyRailsと関わってきたのかを、CI関係のTIPSを濃いめに語ってくださった。物事を開始されるときに凄まじい量・質の情報収集をされているご様子が印象的だった。「知らなければ改善できない」という言葉は金言だなと感じた。
  • Rails アプリの 5,000 件の N+1 問題と戦っている話」: 1件のN+1を解決するために、人間は予想以上に色んなところを無意識に見てるんだなということに改めて気づいた。向き合いにくい時にも、目の前のものをサッと気軽に拾えるようにしてくれるというのが素敵。『目の前にごみが落ちたら拾うじゃないですか』確かに。
  • Async Gem で始める ruby 非同期プログラミング」: Async、Fiber、FiberScheduler のあたりの基礎知識があまりなかったので、検索しつつ拝見。大事そうな説明が時間の都合でスキップされていたご様子だったので、改めて資料をじっくり読みたい。
  • Exceptional Rails」: 正常系/準正常系/異常系のエラーの取り扱い方法についての丁寧な解説。Rails wayに沿ってうまく乗りこなしたい。初学者の方でもこのあたり悩まれるケース多いと思うので、説明の時の参考として紹介したい。
  • 初めてのパフォーマンス改善〜君たちはどう計測す(はか)るか〜」: 徹底して計測に基づいて一歩一歩改善していく過程が素晴らしい。また、PullRequestに "コードにしなかったこと" も合わせて全てまとめるという点もかなり重要。自分はちょっと徹底できていないところがあるので見習っていかねば。
  • Simplicity on Rails - RDB, REST and Ruby」: RESTful と DB の違いについて初学者の方に質問された時にうまく言語化できなくて詰まる場合があるが今後はこの発表見てね、とお伝えするのが良いかも。ログイン/ログアウトを sessions#new, #create, #destroy とするのがcoolというのは言われて気付いたが確かに素晴らしい。
  • Turbolinksアレルギー患者に捧げるTurbo & Stimulusでの時短実装術」: 自分もTurbolinksに振り落とされてやや苦手意識はあったが、怖くないよ〜〜〜とのことで上手くHotwireと付き合っていきたいなという気持ちになった。ココだけ使いたい、というレベル感でVueやReactを入れるのはやっぱりちょっとツラいので…。
  • 定数参照のトラップとそれを回避するために行う2つのこと」: 定数が心配なときは先頭 :: で回避しがちだったので、改めてどういう仕組みかのおさらいとさせてもらった。自分で定義するときは役割明確にと思い重複を避けるが、gemで利用されている定数をうっかり参照してしまう、はありそうなのでもし似たような問題を踏んだらこの発表を思い出して回避!
  • Active Record クエリクイズ」: Rubyコミッターでもあるpockeさんからのクイズということで、自分もかなり身構えて裏読みを試みましたが、シンプルに負荷高そうな方が正解な4問だった。ActiveRecordがデザインしてくれているカタチに素直に乗っかって使っていきたい。to_sql はいいぞ。

セッションメモ(Day2)

  • 事業の試行錯誤を支える、コードを捨てやすくしてシステムをシンプルに保つ設計と工夫」: ほぼ似てるからいいか、でテーブルを共通化して機能を捨てづらくすると後々ツラい。やはり機能を持ったままにするとメンテコストもあるので、素早く捨てられる状態を維持するのは大切。閲覧側にifを書きたくなったらテーブルごと分ける機運の兆し、というのは覚えておきたい。
  • Fat Modelを解消するためのCQRSアーキテクチャ」: CQRSアーキテクチャは未体験なので大変勉強になった。具体の実装としてUseCase/Query/Commandをうまく責務を分けて使うのはややコツが必要そうに感じた。でもうまくやればテストも分かれるしスッキリするな。Userモデル周りとかFatになりがちなのでそこだけ適用するとかアリかな?
  • E2E testing on Rails 2023」: ずっとCapybaraさんにお世話になってぬくぬくしていたので、Playwrightがそんなにシェアを伸ばしていたのは知らなかった。グラフで具体的に見ると衝撃。かなり速くなる様子なので、どこかのタイミングで触る機会を模索したい…。さっと入れたら動くかな?
  • 自分の道具を自作してつくる喜びを体感しよう、Railsで。〜 4年続いたPodcastを実例に〜」ゆるふわPodcastのいちリスナーとして興味深かったし、聴講者へ「自作サービスって良いなぁ」という気持ちを植えつける、侵蝕性の高いエモ発表だった。趣味と実益を兼ねたサーバを自由に運用…いいなぁ…なんか自分もやりたいなぁ。なんかすっごく眩しかったです。
  • ペアプロしようぜ 〜 3人で登壇!? 楽しくて速いペアプロ/モブプロ開発 〜」お揃いTシャツの3人、アクの強いAI挿絵、気合の入ったマイクパフォーマンスと見所が特盛。インパクトだけでなく、ペアプロの重要性をちゃんとデータで示してデモをきっちりやり遂げるのが流石。デモ中の何気ないやりとりの中に沢山のペアプロのコツが溶け込んでいて、百聞は一見に如かずの通り、大変参考になった。
  • Railsアプリにパスワードレス認証を導入した知見」: パスワードレス認証は、自分がいちインターネット民として生活しているなかで時々出会いますが、そういえば調べたことなかったのでwebauthn(gem)があると言うこと自体を知れたのが収穫。mac+firefoxで問題があるなどは自分で試して後で泣くより事前に知っておくと大変助かるので、有益情報だった。
  • コードカバレッジ計測ツールを導入したらテストを書くのが楽しくなった話」: テストコードを書く、という行動の促しのために、可視化(SimpleCov導入)だけではダメで、「ついでに書こう」という啓蒙でカバレッジ率が上がったとのこと。物事を進捗させるには導入するだけではなくアプローチの工夫もセットで必要なんだな〜ということがよくわかるエピソード。あと恥ずかしながら C0 などの概念を知らなかったので今後使っていきたい。
  • スポンサーLT4(pixivさん): Railsでお持ちの関連サービスについて、igaigaさん主治医のプロダクト健康診断を受けているとのこと。最新で偉い!!!
  • スポンサーLT5(スタメンさん): mainブランチに追従しているとのこと。こまめにやればそれは確かに日常ではあるが、言うは易し行うは難し…すごい。
  • スポンサーLT6(スマートバンクさん): B/43 は自分も活用していて大変お世話になってます! 規制準拠に応じてRails・Goの環境で切り分けられているとのこと。
  • 基調講演「A Decade of Rails Bug Fixes」: @byroot さんによるRailsのバグ解決に関するエピソード。なぜバグが発生したのかを徹底的に深掘り調査されていく過程にとても感銘を受けた。また、最終的にmergeを目指すにあたって、他者への丁寧な説明の大切だという点も盛り込まれていた。「コミュニケーションは大事。ナイスで愛想がいい。正しいよりも重要。」

Kaigi Effect

良い発表を浴びると色々やってみたいことが増えますね! 自分の元気度と相談しながらですが、色々とトライしていきたいです。

  • 来年スタッフ業やってみたい旨をお伝えする(済)
  • conference-app の機能で気になってる点があるのでPullRequest出してみようかな(考え中)
  • ブログ再始動 ※隔週くらい?
  • 来年のCFP提出を目指す