RegionalRubyKaigi レポート (80) 平成 Ruby 会議 01

はじめに

令和元年の暮れに、平成 Ruby 会議 01 が開催されました。本記事はその開催レポートです。

2トラックのため全てのセッションは観れなかったのですが、執筆者が観に行くことのできたセッションについては感想も載せています。 また、セッションやイベントの感想については、執筆者個人の視点からのレポートとなっておりますので、あらかじめご了承いただければ幸いです。

平成.rb ってなに?

平成.rb とは、平成生まれの Ruby エンジニアで集まり、ステップアップしていきたいという思いで作ったコミュニティです。 普段の勉強会では LT 会とモブプロ会を交互に行っています。

※ 名前から色々と誤解されることもありますが、上の世代との壁は作らず、むしろ積極的な交流を推奨するコミュニティです。

詳しいコンセプトなどを知りたい方は平成.rb の方針をご覧ください。

開催概要

テーマ

令和元年の暮れに、平成生まれだけでなく、各世代で交流できるカンファレンスを開催する

開催日

2019-12-14(土)12:50 - 19:30

会場

株式会社ドリコム

キーノートや LT 以外は、会場を分けて 2トラックでやらせてもらいました。

主催

平成.rb

参加者

およそ 150名

公式サイト

https://heiseirb.github.io/kaigi01/

公式タグ

#heiseirubykaigi

ツイートまとめ

平成 Ruby 会議 01 ツイート総集編 - Togetter

[Opening talk] 平成.rbってなに?

平成 Ruby 会議オープニング資料

実行委員長の @tashiro_rb がオープニングトークをしました。

会場では平成世代にグッとくるプレイリストが流れていました。

[Keynote] What is expected?

キーノートは @yui-knk さんの、Ruby の構文解析についてのお話でした。

しょっぱなからとても高レベルな内容で、事前にRuby のしくみを読んだことがあるとより楽しめそうでした。

また、キーノートの順番については以下のような思惑があり決まったそうです。

@yui-knk さんの keynote が top なのは、頭が未だ疲れ切っていない朝のうちにコアな話を入れておこうという策でした。@yui-knk さんに話したら笑ってくれました。

参照:平成 Ruby 会議 01 をおえて|tashiro|note

[Track A]

Ruby 2.7 ISeq バイナリ表現の改善について +α

Cookpad インターン生 @NagayamaRyoga さんの発表です。

Rails アプリケーションの起動を高速化するために行った取り組みが興味深かったです。 ISeq のシリアライズは C で実装されているため、C でどのように実装していったのかを図解付きで詳しく説明されていました。

あなたのその gem、Windows でも動きますか?

トラック A の司会進行でもある @unasuke さんの発表です。

Middleman 本体に PR を出した際に、Windows での挙動を確認されたことから、Windows でも Gem が動くようにする取り組みについてのお話です。 「みなさんが最初に触った OS は?」というアンケートで、Windows が多かったのが印象的でした。なつかしいですね。

ActiveSupport::Concern で開くメタプログラミングの扉

新規プロジェクトのリードエンジニアになるために

平成.rb でおなじみ、メドピアの @hotatekaoru さんの発表です。

「なんでリファクタリング好きなんだろう?」という問いから始まり、メタ的な思考から実際に行ってみた内容をみることができ、納得感がある発表だなと思いました。 新規プロジェクト立ち上げの際に大いに参考になりそうな rails template が気になりました。

hotatekaoru/rails_template

Proc のススメ


このセッションの次の時間に、モブプロを行いました(後述)


逃げちゃダメだ!既存プロダクトに RSpec を導入していく戦い

本レポートを書いた @ryamakuchi の発表です。

テストカバレッジが 5% の既存プロダクトに立ち向かうという内容のお話です。 後日談ですが、このあとカバレッジが 20% を超えました(転職する前に 20% を超えて、本当に良かったです)

Ruby 力を上げるためのコードリーディング

階層的クラスタリングを Ruby で表現する

@ayumitamai97 さんの「階層的クラスタ分析を Ruby で実装してみる」という、個性的でおもしろそうな発表です。

階層的クラスタリングの概要から始まり、平成の邦楽ヒット曲の歌詞を使って分析を行うという、平成 Ruby 会議らしいとてもエモい内容でした。 サンプルコードはこちらの GitHub に置いてあります。

ayumitamai97/hierarchical-analysis-ward-method: 2019/12/14 平成Ruby会議セッションで使用したコード(前処理+ウォード法)

Play with Ruby

真の REST

[Track B]

Textbringer でつくる Textbringer

※ 当日のプレゼンテーションは Textbringer を使って行われました

SimpleDelegator 活用のご提案

Ruby on Jeeeeeeeeets!! ✨🚀✨

Jets に詳しい管理栄養士の @AquaLamp さんによる発表です。

セッション時のスライドのアニメーションが死ぬほどキレイで、しかもパワポで作ったと聞いてびっくりしました。 Jets が Rails に似ていること、なおかつサーバーレスに異世界転生!クラウド無双… という具合にパワーワードが頭から離れない、良いセッションでした。

Async / Await functions in Ruby

既存 RailsApplication の高速化

平成.rb オーガナイザーである @cobafan さんの発表です。

既存の Rails アプリケーションを高速化するために、CI などで適切なコードの書き方になっているかをチェックできるような Gem を作っている、という内容でした。 セッション後の質問タイムで実装で困っていることの解決法を募ったところ、@pocke さん達が解決法のアイディアを出していて、つよい… となりました。

Ruby で JVM を実装してみる

@daikimiura さんの発表です。モブプロの裏番組でしたが、タイトルの通りおもしろそうな発表でたくさん人が集まっていました。

Go や Rust や PHP で JVM を実装している人たちにインスパイアされ、Ruby でも実装できるはず!と、思い作ってみた、という内容です。 クラスファイルを読み取り、書いてある命令を実行する箇所の解説が、JVM の仕様を少し知れた良い機会になりました。

daikimiura/merah: merah is a JVM implementation by Ruby


トラック A でモブプロをやっている間、トラック B は休憩所に。

お父さんに連れられて、小学校 2年生の小さいお子さん(最年少!)も参加していました。


Good to know yaml

Rust で gem を作ろう

やわらか増税

ActiveRecord の pluck メソッドがおかしな挙動をしたので調べてみた

平成.rb オーガナイザーでトラック B の司会進行 @mtkasima さんの発表です。

途中でおかしな挙動をしている pluck の実装を追うために、ActiveRecord の中身を追うライブコーディングが始まったのが観ていて楽しかったです。 そして最後に、pluck_for_kasima というメソッドを爆誕させていたのが、とても彼らしいエンタメ性あふれる発表でした。

Regression Test for RuboCop

RuboCop コアチームメンバーである @pocke さんの発表です。

RuboCop はこわれやすい。なぜ Regression test が必要か、そして Regression test の仕組みについてから説明していただきました。 実際に Regression test をしてみて RuboCop やプラグインのバグを見つけよう、というところがワクワクするような内容でした。

[Track A] モブプログラミング

平成.rb の勉強会では、普段 LT 会とモブプロ会を交互に行っています。

普段の勉強会の様子を体験してもらえるようなコンテンツを用意しました。

  • A コース(Enumerable 再実装コース)
  • B コース(OSS チャレンジコース)

それぞれ楽しくモブプロに熱中していただけたようで良かったです!普段の勉強会にもぜひいらしてください 🙌

スポンサー LT

今回、各スポンサー様には多大なご協力をいただきました。皆さま本当にありがとうございます。

株式会社ドリコム - 会場スポンサー

ストアーズ・ドット・ジェーピー株式会社 - クリエイティブスポンサー

株式会社タイミー - スタッフスポンサー

楽天株式会社 - コーヒースポンサー

スマートキャンプ株式会社 - ドリンクスポンサー

株式会社オプト - フードスポンサー

メドピア株式会社 - ドリンクスポンサー

株式会社 SmartHR - フードスポンサー

株式会社マチマチ - フードスポンサー

飛び込み LT

当日飛び込み LT を募集したところ、なんと 3人も応募がありました!ありがとうございます 🙏

どの発表も飛び込み LT とは思えないほどのクオリティで、かなり盛り上がりました。

OSS で結果を出す方法

Ruby と Lisp の切っても切れない関係

TECH::EXPERT で学んだこと

[Keynote] Breaking Change

お待ちかね最後のキーノート、@koic さんの発表です!

始まる前、会場の雰囲気がアツくなってきたのが分かりました。内容も、安定の @koic さんらしい発表でした。

全体を通して、OSS や破壊的変更について改めて再認識するような内容だと感じました。 「不便だと思ったら提案すれば良い」など、これが正しいふるまいだよね、と思えたり、そこに対する解決方法がエンジニアらしいな、と、とても学ぶことが多かったです。 あと RuboCop を使って破壊的変更に対して分かりやすく警告を出そう、という取り組みが、なかなか RuboCop ハックしていてすごかったです。

そして、最後の「あなたがコミュニティ」には、会場にいたみんなが 2020年に向けてやっていこう!と感じたのではないでしょうか。RubyKaigi 2020 も楽しみです!

懇親会

ハンバーガーや寿司がデプロイされ、みんなで楽しく懇親会をしている様子です。

実は、懇親会ではこっそりぼっちパトロールをしていたのですが、なんとぼっちはひとりもいませんでした。こういう懇親会を継続していきたいです。

みんなそれぞれ好きに集まって会社の話をしたり、メタプログラミング反省会をしたりと、いつもの楽しい懇親会でした。 帰り際には「蛍の光」を BGM で流して、無事、〆のラーメンを食べに解散しました。

まとめ

平成 Ruby 会議 01 は、運営メンバー・スポンサーの皆さま、そして、参加者の皆さまのおかげで、勢いのあるすばらしいイベントとなりました!圧倒的感謝です。

全体を見ていただくと分かるとおり、とてもレベルの高い内容が盛りだくさんとなっています。

今回の平成 Ruby 会議の裏テーマは、「つくる側とつかう側の両方を知る」ことだと感じました。

つくる側がどんな気持ちで実装しているのか、つかう側はどんなことを考えながらプログラミングしているのか、両方の視点から色々なセッションをみることができたと思います。

今回の Keynote やセッション、LT をみて、

「OSS コミットへの機運が高まった!」

「普段なかなか潜れない、深いところまで知ることができた!」

という方が多かったのではないでしょうか?

この刺激を大事にして、2020年もみんなでやっていきしたいと思います!

あわせて読みたい

運営スタッフもイベントについて詳しく紹介しています。ぜひご覧ください。

また、参加者の方々にもブログレポートを書いていただきました。すべては紹介しきれないのですが、いくつかピックアップしましたのでぜひこちらもご覧ください。

著者について

rry(@ryamakuchi): 2020年 1月〜 STORES.jp で Rails エンジニアをやります(ちょうど転職したてです)

平成 Ruby 会議の運営にジョインしたのは 10月頃からで、これまで運営陣のパワフルな活動に支えられてきました。みんないつもありがとう!今年もよろしくお願いします。