RubyKaigi 2023の2日目にオンラインで参加しました。
見た発表について少しずつ、思ったことを書きました。
How resolve Gem dependencies in your code? …Hiroshi SHIBATA
- bundlerがどんなものか、とてもわかりやすかったです。
- Ruby GemsとBundlerの差を縮めたり、速くしたり…
- とても便利に使わせてもらっています :pray:
メモ
- bundlerの話
- モダンなパッケージマネージャには、バージョンロッキングがある。
- これのおかげで、SBOM言われても怖くないですね…。
- これ、概要を知るのにめっちゃいいですね…。
- RubyGemsとBundlerに若干差がある…。
- あんまり問題にならないのかな…?
- 統合したいんですね、やっぱり。
- 遅い
- ファイルの中身を見ている
- 無限ループに落ちやすい
- 依存関係だとなりやすそう…。
- とある条件でビルドできない
- 条件が複雑
- 毎年こうやって発表するのって、結構大事かも…。
Implementing "++" operator, stepping into parse.y …Misaki Shioi
++
の実装過程がめちゃくちゃおもしろかったです。- 題材も
++
と身近に感じるものでしたし。 - 最後にキレイにオチまでついて、完璧でした…。
Fix SQL N+1 queries with RuboCop …Go Sueyoshi
- ISUCONで使う道具を事前に時間をかけて準備しておくって、本当にスゴいと思いました。
- github.com …せめてこれくらい、うちでもいれるかなぁ。
メモ
- ISUCONだったら、rubocopのN+1を検出、自動修正はかなり時間短縮になりますね…。
- rubocop-isucon
- GitHub - sue445/rubocop-isucon: RuboCop plugin for ruby reference implementation of ISUCON
- synvertも
- Module#prepend (Ruby 3.2 リファレンスマニュアル)
- rubocopでactive recordのincludesを実装……。マヂですか……。
The Resurrection of the Fast Parallel Test Runner …Koichi ITO
- 確かにローカルではCPUコアが潤沢だから、使い切りたい気持ちもあります。
- うちの会社のもパラレルで動くように調整したくなってきました。
メモ
- 1日86400秒 しかないw
- 遅い方から直してく。
- 金を手に入れれば、並列テストができる。
- minitestは並列が可能…うらやましい…。
- rails7もminitestのパラレル機能を使ってる。
- rspec
- parallel_test
- test_queue
- 対応しているテストフレームワークがえげつない…。
- テスト同士が独立できるようにしないとダメ。
- 遅いテストは設計の見直しの機会かも…?
- 責務が多すぎるとか。
- コミット権を手にいれたw
- CIも壊れてた…。
- 発表の中で利用者を聞いて、なかったのでサポート外に…。
- 一時的にメンテナンスするけど、テストフレームワーク自体で並列化してほしい。
- もっといえば、それぞれテストフレームワーク作るのもアリかも?
Multiverse Ruby …Chris Salzberg
- 確かにモジュールの名前、混雑しますよね…。
- GitHub - shioyama/im: Isolated Module Autoloader for Rubyを使いたくなりました。
メモ
- shioyama ← Salz(塩)berg(山)
- Rubyでメソッドを共有するにはアーキテクチャを共有することに。
- 名前が永遠なので、どんどん混み合っていってしまう…。
- それでマルチバースなのか!
- 匿名モジュール
- Module.newして作る
- 匿名モジュールって…Concernのテストを書くときに使ってるかも。
- Ruby3.2
- loadはコレ??
- Kernel.#load (Ruby 3.2 リファレンスマニュアル)
- GitHub - shioyama/im: Isolated Module Autoloader for Ruby
- これ、いいですね…!
- マルチバースになれそう。
Eliminating ReDoS with Ruby 3.2 …Takashi Yoneuchi
- 正規表現に関して、あまりパフォーマンスを考えたことはありませんでした。
- 今回の発表で、少し勘所がわかったので、今後は気をつけようと思います。
Optimizing YJIT’s Performance, from Inception to Production …Maxime Chevalier-Boisvert
- うーん…むずかしかったです……。
- その難しいことをきっちり取り組んでくれていると思うと、感謝の気持ちでいっぱいです。
- せめて使いたい!と思いつつ、Elastic Beanstalkが3.0までしか公式イメージがなくて、いつもがっかり…。
- Dockerにすべきかもしれません。
おまけ
今日はアルクマでした。
#RubyFriendsがうらやましいかったので描きました…。
食べチョクさんがまたツイートで長野の名産品が当たるキャンペーン用2日目。海がないのにサーモンという不思議。
STORESさんのキャンペーンの2日目。今日はりんごジュースだったので、それで!