Kaigi on Rails 2023 動画視聴 定数参照のトラップとそれを回避するために行う2つのこと / 初めてのパフォーマンス改善 / seeds.rbを書かずに開発環境データを整備する

先日、After Kaigi on Rails LT Night に参加した際に申し訳なく感じたのは、自分が他の方々を全然認知していないことだった。 ある方が、僕の登壇をご覧になった旨をお伝えくださった後で「実は自分も登壇していたんですけれど」というようなことを仰っていた。自分はその方がどなたかを分かっていなかったので、どうお答えすれば嘘にもならず失礼にもならないのかと考え、答えに窮してしまった。

今日は、増山さん経由で当日にお話しさせていただいた、Oguchi さんの動画を見てみる。おぐちさんかおおぐちさんか分からないけれど。

Ruby / Rails での定数の参照について、ということで、メタプログラミング Ruby の内容を思い出した。 ただ、その内容を言語化して説明できるほどには自分の中に落とし込めていないので、要復習だ。 また「Rails の config.autoload_paths に設定されたパスは自動読み込みの対象になる」ということ、そしてそれを担っているのが zeitwerk という gem であることは知らなかった。

次、Fu-ga さんの、パフォーマンス改善についての動画。 APM という語彙が自分の中になかった。Application Performance Management。Datadog とかか。

パフォーマンスの改善では、explain を使った 実行計画が必要になるんだな。自分が全く分かっていない分野なので、勉強したい。 また、SQLRuby の処理が混在しているとよろしくないのは知っていたが、そのことで、こんなに大きな違いが出るというのは驚いた。 どこが SQL でどこが Ruby なのか、気にするようにしたい。

次、gogutan さんの『seeds.rbを書かずに開発環境データを整備する』。 PR ごとの検証環境での初期データを seeds.rb で管理なさっているので、PR 作成ごとに seeds.rb に存在しないデータを作成する必要があり大変、とのこと。 これは、うちの環境では起こらない問題だな。 うちの環境が恵まれているように思う。 あれ、題材にトークできるのでは?

あるモデルについて、CSV ファイルから seed 化している箇所を発見なさったとのこと。 CSV って聞いても、Comma Separated Values な内容を連想できていなかったので、この用語に慣れたい。