nobo's blog

プログラミング、日常、etc...

Kaigi on Rails2024に参加してきました

Noboです。愛知県瀬戸市で親方に弟子入りしてプログラマーをしています。

RubyKaigiには2回参加したことはあったのですが、Kaigi on Rails自体には初参加だったのでワクワクでした。

 

会場。立派すぎて入るのに緊張しました。

 

個人的に印象的だった講演

印象的だった発表の感想を書きました。
Ruby, Rails経験が浅いこともあり、異なった解釈があるかと思いますがご了承ください。

Capybara+生成AIでどこまで本当に自然言語のテストを書けるか?

speakerdeck.com

既存のテストではテストシナリオをそのまま実行してしまい、UIが変わった時にテストを変更しないといけなくなり大変という問題がある。

このようなE2Eテストの問題を解消するためには、画面を見て人間っぽくテストしてくれるのが良さそう。という発想から、生成AIに画面を渡してテストしてもらうということを思いついた。
テストシナリオを自然言語にしてやったが、細かい座標が必要で、そこをDOMツリーを渡すことでフォームを入力できた。


フォーム画面のテストをデモで見ることができ、ある程度形になっていることが分かったので、E2Eテストの未来を垣間見ることができました。
テスト速度が遅い、正確なテストができているのか不明。という問題はありますが、そこはいずれ解消できるのはないかと思っています。そうするとRailsバージョンアップ後の画面テストなど、大きな改修があった際にもテストを自然言語で書くことで動作を担保できる時代がきそうだなぁ。と感じてワクワクしました。

 

Cache to Your Advantage: フラグメントキャッシュの基本と応用

drive.google.com

Railsの本体に組み込まれているフラグメントキャッシュについての概要と使い方を説明後、キャッシュ事故を起こさないような対策方法を説明。
フラグメントキャッシュのような一部をキャッシュするのではなく、ページ全てをキャッシュすることができればもっと早くなる発想から、rendering_caching gemを開発している。

 

講演後、登壇者のtkawaさんとお話をして詳細を聞くことができ、より講演内容の理解を深められました。

自分でgemを作ったりできる人は最初から実装の筋道がわかり、それを実装しているのかと思っていたのですが、それは違っており、やりたいことを実現するために試行錯誤していることを肌で感じることができました。

表現が難しいですが、自分も日々「こうできたら良いな」というものを解消するためにgemを作るという選択肢が出てきました。

 

Hotwire光の道とStimulus

 

speakerdeck.com


大原則「制御をサーバに集める」のはなぜか?という疑問を解消するために、HotwireとReactの担当範囲を説明後、実際のStimulusコントローラーの実装について解説していました。

HotwireとReactの違いが分かりやすいスライドでした。
基本的には画面変更をRailsが行い、アプリ独自のイベントハンドリングをStimulusに任せることが理にかなっていることが分かり、それぞれの担当領域が分かったことで、Stimulusを使うタイミングがより明確になったような気がします。

その後、同僚の方お話しさせていただく中で、Stimulusコントローラーの設計は基本汎用的にする方針は分かるが、特定の画面用にStimulusコントローラーを作りたくなるケースも結構あり、その割合が増えれば処理が重複してしまうこともあるので、ケースバイケースだなぁという話を聞けました。そこは実際に経験すると、自分何の考えがモテそうだと思いました。

 

Identifying User Identity

speakerdeck.com

ユーザーのモデリングに関して、もっと細かく分けることでユーザーをの状態を管理することができ、入会→有効化→個人情報の入力→退会というように、ユーザーがアプリケーションに登録するまでのハードルを下げるためには、Deviseが提供しているような設計では難しいことが分かりました。

スライドの最後にあるユーザーの状態をscopeで呼び出せるのは結構かっこいいなぁと感じました。

 

まとめ

Kaigi on Railsは普段業務で使うことの延長線にある講演が多く、理解度が深まりました。「わかる!なるほどなー!」と思いながら講演を聞いていました。


オープニングでRails Way=哲学という話から入り、日々の業務での活用例、失敗例、新たにレールを引こうとしている人、実装の深掘りをしている人...など様々な人が様々なトピックに向き合っているということが分かりました。

また、その内容について同僚や講演している人から直接話を聞き、理解を深められることが現地のイベントに参加する醍醐味だと改めて感じました。

 

Kaigi on Rails2024に参加できて本当に良かったです。

登壇者の皆様、運営者の皆様、スポンサーの皆様方本当にありがとうございました。すごく楽しめました!!

 

また、Kaigi on Railsに参加させてくださった会社の皆様方、本当にありがとうございました。