しまもん 

モンスター・ラボ島根開発拠点のブログ

RubyKaigi Takeout 2020 Day2 参加レポート

おく ・2020-09-05

昨日に引き続き、オンラインカンファレンスに業務として参加できるモンスター・ラボの制度 を利用して、RubyKaigi Takeout 2020 の Day2 に参加しましたのでレポートです。
土曜日開催の Day2 も業務参加なので代休取得できます。やったね!🙌

RubyKaigi 2019 の Closing Keynote で @jeremyevans さんも Fast! Fast! Fast! とおっしゃっていたので、スピード重視でポストしています😃⚡️

(Day1 のレポートは コチラ)

セッション

それでは早速、聴講した各セッションについてご紹介いたします。

Ruby Committers vs the World

昨日の最終セッションに引き続き、 Ruby Committers vs the World から Day2 がスタートしました。Matz は若干の遅刻でした。笑
Ruby3 の各機能についての報告がありつつ、型定義セクションでは sig の取り扱いについて議論が深まっていました。(gem に sig を入れる/入れない、など)
議論の中では、ユーザがプロダクトに何を求めているのか、ユーザが解決したい問題は何か、実際のユースケースは何か、どうバランスを取るべきか、を念頭に置いて話が進められていたのが印象的でした。そして Ruby コミッタの議論の速さ、深さ、楽しさは大変参考になりました。

あと、昨日のレポートでも少し触れましたが、リアルタイムでチャットでコミッタ同士のやりとりが見れたり、コミッタが質問に答えてくれたりしているのがとてもよかったです。チャットログが今回の RubyKaigi Takeout の一番の財産ではないでしょうか・・・!

Magic is organizing chaos: Shugo Maeda

Ruby コミッタの @shugo さんによる Chaos (Monkey Patch) の Balance と Control に関するセッションです。
私も Monkey Patch を使って既存Class を拡張する Gem を作ってみたことがあります。そういう使い方ができるのは Ruby のおもしろいところだと思いますが、影響範囲が大きいので、Refinements で影響範囲をコントロールできるのは大事です。危険なことはせず、適切に使っていきたいと思います!

ref: スライド
※ 島根も鳥取もいいところです!

msgraph: Microsoft Graph API Client with Ruby: ODA Hirohito

Microsoft Graph の API Client を Ruby で書いた話でした。
RubyKaigi 2019 で Web API Client 開発のベストプラクティスについて発表 された @sue445 さんのメソッドを参照・実践 (using Sue445::Method) して開発されていて、そういう流れが生まれているのは素晴らしいことだと思います。

Don't @ me! Instance Variable Performance in Ruby: Aaron Patterson

Ruby コミッタ兼 Ruby on Rails コミッタの @tenderlove さんのセッションです。
Ruby2.7 で GC.compact が導入され、消費メモリを削減できるようになりました。そういったRuby Core のメモリ削減の取り組みのロジックについての解説でした。

"難しいことをやりたくないからもっと簡単な問題を最初に解決しましょう"
"もっとメモリを使うともっとメモリを減らせる(アラインメント大事)"

という発言が最も印象に残りました。

なおセッションは日本語で行われていましたが、別チャンネルでの英語翻訳もご本人によるものでした。笑

Dependency Resolution with Standard Libraries: Hiroshi SHIBATA

Ruby コミッタの @hsbt さんによる RubyGems と Bundler に関するセッションでした。
RubyGems、Bundler は Ruby / Ruby on Rails で開発をしているとほぼ必須と言えるほどお世話になっているものなので、2日間の RubyKaigi Takeout の中でも最も身近な感じられるセッションでした。

Bundler と RubyGems はこれまで別のリポジトリで管理されていたものの、依存関係があるため開発に悪影響が出ていたそうです。(両方に影響するコミットがそれぞれのPullRequestに別れる、一方のPRのマージをするのに他方のPRを待たなければならない、など)
そのため、Bundler を RubyGems リポジトリに統合したそうですが、RubyGems だけで約9000コミット、Bundler だけで約12000コミットあったところをコミット履歴を残したままマージされたそうで、それだけでもかなり手間のかかる作業。。。感謝しきりです!

The Complex Nightmare of the Asian Cultural Area: ITOYANAGI Sakura

Ruby コミッタで RDoc のメンテナをされている @aycabta さんのセッションです。
あらすじだけお伝えすると、

🔥→🖥→🔥→📹🚫→💤

という感じで・・・なんというか凄かったです。

セッションが終わった後もしばらくパチパチという音が頭から離れませんでした。
ぜひ動画を見ていただきたいです。

Matz Keynote: Yukihiro "Matz" Matsumot

最後のセッションは Ruby の父、Matz のキーノートで、Ruby3 とその後についてでした。
Ruby3 は予定通り、今年のクリスマスにリリースされそうとのこと!
もうだいぶ落ち着いているのですね、と思ったら、こんなチャット (↓↓) もあるようなので笑、まだまだ進化し続けるようです! Ruby is NOT dead!
chat1 chat2 (引用: YouTube)

Closing

Cheif Organizer の @amatsuda さんと RubyKaigi Organizers によるクロージングでした。
オーガナイザーの皆さん、今年は本編の延期からの中止、からの Takeout 開催と先の見えない中の苦労は推し量りきれないですが、RubyKaigi らしいテクニカルさがありつつ、オンラインの良さも活かしたイベントの開催、本当にありがとうございました!

そして!来年のRubyKaigi は in 三重 ! 日程は July 8-10, 2021 ! 楽しみにしています!

終わりに

"Good night, guys. Have a good dream." 🔥🌖

| 採用情報

城下町・松江で一旗揚げたいRailsエンジニア絶賛募集中!

Blue