Omotesando.rb #42でLTしてきた

omotesandorb.connpass.com

2019/01/10にOmotesando.rbに行ってきました。そしてLTをしてきました。

会場は株式会社ビジネスバンクグループさんでした。

発表の経緯

テーマが「Ruby 2.6」ということだったので、発表できることがなさそうだったのですが、久々に参加したかったのと、最近「発表できないなら参加しない」ぐらいの強い気持ちで参加する勉強会を絞っているのもあり(もちろん厳守はしていない)、せっかくだからRuby 2.6についてなにか話そうと思いました。

とはいえ、まだリリースされてから日が浅いですし、私はRubyのtrunkを追いかけているわけでもないので何を話そうか迷いました。さらにいうなら、Rubyコミッターの笹田さんと遠藤さんが書かれたこの記事があるので、この人月の書けられた記事(本人談)でカバーされていないものはなにか考えました。

ところで、アプリケーションプログラマとして知らなくてはいけないことの一つが例外です。Ruby 2.6ではバックトレースでcauseが表示されるように改善されており、ここは多くのRubyプログラマ(特にRailsプログラマ)が恩恵を受ける可能性があります。さらに言えば、例外の連鎖はイメージが比較的しづらいと思われました。ここは発表のチャンスではと思い、内容をExceptionとすることにしました。

発表の内容

というわけで、私のLTは例外についてでした。資料などは作らず、ターミナルを映しただけでした。

工夫したこととして、初学者の方がいらしたのでそもそもcauseとはなんなのかについて説明したりしました。一言で言うと、例外の原因となった例外が例外オブジェクトのメソッドで取れるというものです。Rubyの例外システムはよくできてるなあと思います。

あとは本題のバックトレースについて、Rubyのバージョンを変えて実験したりしました。同じ行がバックトレースに重複して表示されるという点について、上記のブログ記事にも少しだけ言及しました。

他の方の発表

  • @Kirika_K2さんはRuby 2.6でしか動作しないgemについて発表されていました。かなり興味深い結果で、少数の作者が自身のgemを最新版だけでサポートしていることなどが判明しました。あとはASTはやはり人気でした。スライドはこちら
  • うなすけさんはDockerhubにプッシュされてるRubyがどのようにプッシュされているのかについて発表されていました。Jenkinsで自動化されているようで、私は普段Dockerを使いませんが、こういうところにもコミュニティの力が働いているのだなあと思いました。
  • @koicさんはいろいろと発表されていました(内容が多岐に渡るのでまとめるのが難しい)。何度かRailsDMに言及していただいてありがたかったです(Jeremyにメール送ったのは私です(^^))。資料なしであそこまで話せるのはさすがとしか…
  • MatzはQ&AでRuby 3.0へのスケジュール感やConcurrencyが2種類あってという話、そしてブロック変数を省略したいという話をされました。

Matz?

そうなんです、今回のOmotesando.rbにはRubyのパパことMatzが来ていました。懇親会まで残っておられて、他の参加者の方といろいろお話していました。

そう、つまり今回の会は「Rubyの作者本人の前でRubyの新機能について話す」という会だったわけですね。今思うとハードル高いですね。

懇親会

懇親会ではテストコードがないのにテストが遅いという不思議な話をしたり、やっぱりテストが遅いという話をしたり(さっきとは別の人と)、詰まっているときは風呂や散歩でぱっとひらめくことがあるという話をしたり、楽しい時間を過ごしました。

なお、この懇親会ではピザとアルコールが株式会社ビジネスバンクグループ様より提供されました。会場提供も含めまして、ビジネスバンクグループ様、ありがとうございました!