7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kaigi on Rails参加レポ

Posted at

はじめに

2025年9月26日〜9月27日に開かれていたKaigi on Rails2025に参加してきました!
エンジニアになってから始めてこういった現地イベントに参加させていただいたので、せっかくなので記事を書かせていただきたいと思います!

day1

そのpreloadは必要?──見過ごされたpreloadが技術的負債として爆発した日

概要としては

  • ある日突然500番台のエラーが急増し、サーバーが次々と落ち始めた
  • 特定のAPIを呼び出す際にOOMが発生し、プロセスが落ちていた
  • 各サーバーには1GBのメモリが割り当てられていたが、不要なpreloadが単独で400MB超のメモリを消費
    • 過去の仕様では必要だったpreloadが設計方針の変更などにより、不要なデータを大量に読み込んで取得していた
  • 複数のリクエストが同時実行されることで、サーバー全体がメモリ不足に陥った

といったお話でした。
私の知識ではとりあえず関連情報を取得する際にはpreloadをするといった考えがあったので、こういった問題があるのかと勉強になりました。

Railsによる人工的「設計」入門

初心者は何か開発をする時に実装をベースに考えてしまいがち
しかし、そうすると重要な課題があらい出せない状態で始まり本当に解決したい課題や重要な課題があらい出せず、手戻りが発生してしまう。そのため、設計というものは何か?どういった考え方をすればいいのか?といった内容でした。
私自身、業務で実装から考えており、確かにエンドユーザー目線で考えられず手戻りが発生することが多々あったので、こういった設計の考え方(設計を知っている人と知らない人の考え方の違い)がわかりました。

day2

ActiveRecord使いが知るべき世界

ORM:プログラム上のオブジェクトとRDBのレコード変換を簡略化するライブラリ
各言語のORMの挙動についてまとめてくださっていました。
業務では主にJavaとRubyを使用していて、よく考えると確かにRubyで書きやすいよな〜と思いました。今まで意識していなかったので、こういった比較とか新しいORMがでたら試してみたいと思います。

Sidekiq その前に:Webアプリケーションにおける非同期ジョブ設計原則

非同期ジョブはCPUやメモリリソースをすぐに解放でき、他のジョブが待たされにくいといった利点がありつつも、同期処理と比較して設計が複雑になったりデメリットもある。
一件につき1ジョブの設計を基本としたり、数秒以内で終わる処理を目指し、リトライ可能な設計にする。
私も業務で非同期処理を作成したのですが、数秒以内で終わる処理ではなかったのでそういった観点でも今度非同期処理を作成する際には、意識したいと思います。

全体の感想

始めて参加したイベントなのですが、Railsを使用している最前線の企業様たちのお話を濃い密度で聞くことができ、とても良い経験になりました。登壇者の方ともお話ができたので、こういった現地での体験というのも今後意識して行きたいです。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?