はじめに
こんにちは! @mterada1228 です。本記事は Kaigi on Rails 2024 の参加レポートです。
本記事ではこれからアーカイブやスライドを見よう!という方向けに、どういった読者がどのセッションを見ると良さそうか、まとめ記事的に書いていこうと思っています。
1日目のセッションについての紹介記事は↓になりますので、よかったらこちらも覗いてみてください!
作って理解する RDBMSのしくみ
こういった方におすすめ!
RDBMS が SQL を受け取って結果を返すまでの流れと、Index(特に B-Tree)について、そこで採用されているデータ構造と検索アルゴリズムを詳しく知ることができます。RDBMS に明るくない私でも、なぜインデックスがあると早くなるかがチョットワカル状態になった気がしております!
Web アプリケーションの開発において、データアクセスがボトルネックになることは非常に多いです。RDBMS の知見がパフォーマンスチューニングの強い武器になることは間違いありません。このセッションをきっかけに学びを深めていきたいと思いました!
Cache to Your Advantage: フラグメントキャッシュの基本と応用
こういった方におすすめ!
Rails 標準のフラグメントキャッシュの使い方から、キャッシュの更新戦略はどういったものか?を解説し、ラストには @tkawa さんが開発している rendering_caching の紹介があります。
OmniAuthから学ぶOAuth 2.0
こういった方におすすめ!
OmniAuth gem で実装されている認証・認可をもとにして、OAuth2.0の認証・認可のフローを解説するセッションです。普段おまじない的に実装している箇所が何を意味するのか?このセッションを見れば丸わかりです。
ライブラリはその内部の実装を意識せずに使えて非常に便利なものですが、何もわからないと何か不具合があったときに自分で対応することが全くできなくなってしまいます。認証・認可は多くの Web アプリケーションにとってミッションクリティカルな機能です。このセッションを通じてぜひ仕組みを押さえておきましょう!
入門『状態』
こういった方におすすめ!
世の中には「良いコード」とされるものは確かに存在していて、「良いコード」は読んで簡単に理解できますし、そこに修正を加えることも容易です。では「良いコード」はなぜ良しとされるのでしょうか?この疑問に対して「状態」という言葉を使って言語化してくれていると感じたのがこのセッションでした。
このセッションを見ることで、初学者の方はもちろんのこと、ある程度コードを書いてきた方にとっても無意識的に普段していることが言語化されて腹落ちする感覚を得られると思います!
Sidekiq vs Solid Queue
こういった方におすすめ!
現在バックグラウンドワーカーのデファクトスタンダードといえば Sidikiq と考える方が多いと思いますが、Rails 8 では SolidQueue が標準となることが決まり、気になっている方も多いかと思います。
このセッションでは Sidekiq と SolidQueue の比較から、それぞれのメリット、デメリット、さらにプロダクトの特性を考えたときにどちらが適しているのか、これらを willnet さんの視点から紹介してくれています。
Rails 8 で標準が変更される部分は検討しなければ…と思っている方は多いはずです。モヤモヤっとした部分がこのセッションを通じて解消されてくると思います。
The One Person Framework 実践編
こういった方におすすめ!
「The One Person Framework」とは DHH が公開した一記事で、Rails のフレームワークとしての立ち位置、目指すところを指し示したものと私は解釈しています。これは「一人の脳に収まる程度の情報量でアプリが作れるフレームワーク」と要約できるのですが、これがどういったものかを本セッションでは asonas さんのプロダクトを例に紹介してくれています。
現実のプロダクト開発は一人でやるものばかりではなく、チーム開発であることが多いと思います。「一人の脳に収まる」をチーム開発に拡張するとどうなるのか、本セッションではその点にも触れます。
なぜ我々は Rails で開発するのか?このセッションを通じて見えてくるものが必ずあるはずです!
Tuning GraphQL on Rails
こういった方におすすめ!
GraphQL を使ったサーバの構成は N+1 問題が発生しがちで、この対応に悩んでいる方は多いのではないかと思います。このセッションでは実際に minne さんが遭遇した課題に対して、どのように解決を図ったか?を紹介してくれています。加えてそういった状況にどのように気付けるか?モニタリング環境の構築に関するテクニックも学ぶことができます。
私は普段 GraphQL をあまり使いませんが、疎結合な構成をとると N+1 問題はどこでも発生しがちです。その解決のアプローチは似たようなものになるので、GraphQL を使っているかどうかに関わらず、多くの方にとって知見を得られるはずだと思います!
大事なデータを守りたい!ActiveRecord Encryptionと、より安全かつ検索可能な暗号化手法の実装例の紹介
こういった方におすすめ!
データベースからの情報漏洩を防ぐには、保存されているデータを暗号化するというのが非常に有効なアプローチになります。このセッションでは ActiveRecord Encryption を使った基本的な暗号化方法から、Rails を使ってレコード単位で暗号化するといった、よりテクニカルな方法まで紹介してくれています。
なかなかそのレベルのセキュリティが求められるアプリケーションに接する機会は少ないので、知らないことばかりで非常に学びの多かったセッションでした!
omakaseしないためのrubocop.yml のつくりかた
こういった方におすすめ!
rubocop.yml は人によって好みが分かれる部分もあり、チームでルールを策定するのが非常に難しいものだと思います。
このセッションではリンカーズさんが実際に rubocop.yml 作成をどのように進めてきたのか?を例に挙げて、時間をどう確保するのか?どういったプロセスが適しているのか?意思決定はどのように行なってきたのか?といったことを紹介してくれています。
ここで紹介されている意思決定のプロセスは、「キメの問題」を決め切るのに使える普遍的なテクニックだなあとも感じました。チームで働く多くの皆さんにとって必ず学びがあるはずです!
Identifying User Identity
こういった方におすすめ!
Web アプリケーションのほとんどにはログインなどの、会員(User)を管理する機能が実装されているのではないかと思います。User モデルはアプリケーションの様々な箇所で参照されるシステムの根幹を成すモデルであり、そのデータモデリングには失敗したくないところです。
このセッションではあまり語られることのない User モデルの設計のベストプラクティスを取り上げてくれています。User モデルはどのようなカラムを持つべきか?ユーザ登録やログインはどう実装すべきか?退会するときはデータをどう変更するか?これらが具体的な形で紹介されています。
うまいデータモデリングがされたアプリケーションがいかに開発生産性が高いか、このセッションを通じて深く納得できるはずです。初学者の方から、経験を重ねた方まで多くの方にとって必見のセッションだと思います!
WHOLENESS, REPAIRING, AND TO HAVE FUN – 全体性、修復、そして楽しむこと – (keynote)
こういった方におすすめ!
2日目ラストはえにしテック島田さんの keynote でした。18年間に渡る Rails でのアプリケーション開発の経験から、島田さんがアプリケーション開発者として大切だと感じていることを広く共有してくれるセッションになっています。
アプリケーションの開発者は設計をするときにどういった視点を持つべきなのか?そのために何を学べば良いのか、というところから始まり、将来の変更に対して強いアプリケーションの設計はどういったものなのか、といった普遍的で極めて重要なポイントをこのセッションから学ぶことができます。
これからアプリケーションの開発者を目指す方はもちろんのこと、現役の開発者にとっても必ず自分を成長させてくれる知見を得られるはずです。また最後に島田さんから発せられるメッセージはアプリケーション開発者なら誰しもが明日からも頑張ろう!という勇気をもらえると思います。
おわりに
Kaigi on Rails は懇親会や、ブース、2日目に参加した Leaner さんの Drink up でお話しできた方々をはじめとしてとても温かいコミニュティだったなあと感じています。
私自身は今回が初めての参加でしたが、最後まで楽しく過ごすことができました。来年東京駅で開催される Kaigi on Rails 2025 にもまた絶対参加するぞ!という気持ちです。(今度はプロポーザルにも挑戦してみたい…)
これで私の Kaigi on Rails 2024 の参加レポートは終わりになりますが、また来年皆さんとお会いできることを楽しみにしています!それではまた!
コメント