RubyKaigi2019 2日目レポート

RubyKaigi2019(2日目) に参加してきました!

4/18(木)〜4/20(土)に開催されているRubyKaigi2019 2日目のレポートです。 1日目に引き続き、rjgeがお送りします。

1日目のレポートは下記からご覧いただけます。 https://tech.88oct.co.jp/entry/2019/04/19/011058

 

セッション

私が拝見したセッションのレポートです!

2日目は英語のセッションが多めだったのですが、かなり自分の英語力の低さを痛感したので、来年のRubyKaigiまでに少しでも鍛えたいと思いました…。

発表言語関係なく、もしニュアンスや意味を取り違えている箇所等あればご指摘いただけますと幸いです🙇‍♂️

 

Keynote : All bugfixes are incompatibilities

10:00 - 11:10 / Main Hall (3F) @ rubykaigiA

2日目のKeynoteは、CRubyコミッターでRuby安定版のメンテナーである@nagachikaさんでした。
@nagachikaさんはみんな大好きruby trunk changesのブログオーナーでもあります!

まず、昨日もRuby 3 Progress Report内でアナウンスがあった、RubyGems.orgのマルチファクター認証実施のお願いがありました。
RubyGems.orgのマルチファクター認証の設定方法は下記のページで説明されています(大事なことなので弊ブログでも何度も記載させていただきます!)
Setting up multi-factor authentication

メインのお話は、@nagachikaさんが担当されているRuby安定版のメンテナー作業についてでした。
@nagachikaさんが担当されているのはRuby 2.6(安定版最新バージョン)です。
通常はリリース後にtrunkからstableへメンテナーの引き継ぎが行われるのですが、v2.6に関しては事前に令和対応が予定されていたため、v2.6.3のリリース後にメンテナーの変更が行われたとのことでした。(@nagachikaさんはv2.5からv2.6へ)

Rubyの開発はすべてtrunk(gitにおけるmaster branch)に対して行われます。
安定版メンテナーは、trunkに入った変更を監視し、それを安定版に取り込む作業(Backport)を行われています。
基本的にはRedmineでクローズされたチケットや修正を見て、取り込むべきかどうかの判断を行うとのことでした。

How can I become a Ruby stable maintainer?

・ 広いRubyの知識 : 局所的な深い知識よりもRuby全体の広い知識が必要

・ある程度の持続性 : 次のstableが出るまで(1年後まで)は最低でもメンテナーを続けられること

・メンテナンスポリシーを理解していること

Ruby's maintenance policy

bug-fixはBackportを行うが、原則、new featureやspecはBackportしないそうです。
ただ、specや完全に新規の実装は判断しやすいものの、bug-fixとnew featureを厳密に区別するのは難しいということでした。
その点については、IO.readやFile.readでコマンド実行できる問題を例にして説明がありました。
その後、@nagachikaさんが実際にやってしまった失敗談(The Lessons Leaned from failed)に続き、最後に「Be-Practical!」で締められました。

How RSpec works

11:20 - 12:00 / Main Hall (3F) @ rubykaigiA

RSpecリードメンテナーである@samphippenさんの発表です。
内容はタイトルの通り、RSpecがどのように動いているか実装を踏まえつつ解説されるというものでした。
RSpecは複数のgemで構成された**NOT**-Monolithicなgemであることを前提に、RSpecを構成するgemごとに解説が行われていきました。
ちなみに、初日のMatz Keynoteから、
`Matz Hates Tests`
`So RSpec is cancelled`
`Thanks`
(会場笑&拍手) というパフォーマンスもありました。

スライドはこちらで公開されています!

https://speakerdeck.com/samphippen/how-rspec-works

intimate Chat with Matz and mruby developers about mruby

13:30 - 14:10 / Main Hall (3F) @ rubykaigiA

@Hir0_ICさん、Matzさん、@yuri_at_earthさんによるmruby座談会です。
偶然(?)にも4/19はmrubyのお誕生日でした!🎂🎉
(※initial committed on Apr 19, 2012

mrubyについてざっくばらんな話題を3名で話されていくという形式で、事前に募集した質問等にも答えられていました。
mrubyは組み込み用に開発された言語のため、Rubyとは異なり、速度をあげることよりもメモリ量を抑えるほうが優先という話が印象的でした。

Actionable Code Coverage

14:20 - 15:00 / Multi-purpose Hall (2F) @ rubykaigiB

@grosserさんの発表です。
Coverageにおける課題や既存の3種類のCode Coverage(Line Coverage/Branch Coverage/Oneshot Coverage)に触れた上で、@grosserさんが開発されているSingleCovについて解説されました。

発表内容は下記で公開されています!
https://github.com/grosser/ruby-coverage-talk

Coverageが100%であること≠良いテストであることや、「Covered != tested」である点などのテストを書く際のジレンマについてもお話があり、とても興味深かったです。

The fastest way to bootstrap Ruby on Rails

15:40 - 16:20 / International Conference Room (5F) @ rubykaigiD

@udzuraさんの発表です。 発表自体は英語だったのですが、事前に日本語スクリプトが用意されていました。大変ありがたいです🙏
https://gist.github.com/udzura/9d21c4eaecf1c118268ea48c7974b62a
発表内容としてはCRIU(クリュー)を利用することでRoRの立ち上がりを最速(!)にするというものでした。 ここのところDocker環境の初期起動速度について悩んでいたので、CRUI最高では?と浮き足立っています。

日本語スクリプト内からもリンクされていますが、スライドは下記です!

https://speakerdeck.com/udzura/the-fastest-way-to-bootstrap-ruby-on-rails

What is Domain Specific Language?

16:30 - 17:10 / International Conference Room (5F) @ rubykaigiD

@tanaka_akrさんの発表です。
rakeは何故DSLと呼ばれているか?という疑問から始まり、DSLの定義やExternal DSL/Internal DSL等についてのトークでした。
また、上記に関連して、Dirty Techniques(≒黒魔術)とWritability/Readbilityについても最後に触れられており、二つの最大公約を選ぶことの大切さを話された際には力強く頷いてしまいました。
何事にもちょうどいいラインってありますよね!

Lightning Talks

17:20 - 18:30 / Main Hall (3F) @ rubykaigiA  

複数の方による5分間LTです。
5分間×12名に対して全体の時間が70分なので、進行はかなりスピーディでした。
こちらは厳密に5分の制限時間が設けられており、時間切れになるとドラが鳴らされて強制終了となります。
そのため、かなりの方がやや早口で話されるのでついていくこちらも必死です。
令和やDifferentiationに関する話題が複数のLTで出ていたのが印象的でした。

DrinkUp🍺

RubyKaigi 2日目にあたる4/19は磯ぎよし天神店さんで、DrinkUpを開催しました! DrinkUpでは特別な企画等はなかったのですが、美味しい魚と日本酒のおかげでかなり盛り上がっていただけたようでした。
ご参加いただいた皆さん、また、磯ぎよし天神店さんありがとうございました!

弊社代表の稲田から乾杯の挨拶をさせていただきました。

f:id:oct88:20190420103843j:plain 一品目はなんと踊り食い!

f:id:oct88:20190420103533j:plain

f:id:oct88:20190420103608j:plain

f:id:oct88:20190420103639j:plain

f:id:oct88:20190420103708j:plain

 締めの挨拶はモバイル開発責任者の山下から

f:id:oct88:20190420104013j:plain

ということで、RubyKaigi 2日目の速報でした。明日はいよいよ最終日です!
明日は弊社がKeynote前のスポンサートークにて登壇させていただきます。
5-11(5階D会場付近)にてブースも出しているので、よければ空き時間等に遊びにきてください!

積極採用中

弊社では、業務拡大中でソフトウェアエンジニアを積極採用しております。みなさまのご応募お待ちしております!!エンジニア採用サイトに募集職種や、会社の雰囲気の分かるインタビュー記事があります。是非ご覧ください。

engineer.88oct.co.jp