RubyKaigi2019に参加してきました!
4/18(木)〜4/20(土)に福岡で開催されたRubyKaigi2019 3日目レポートです。 最終日も引き続き、rjgeがお送りします。 1日目・2日目のレポートはそれぞれ下記からご覧いただけます。 1日目レポート 2日目レポート
セッション
ということで、拝見したセッションのレポートです! もしニュアンスや意味を取り違えている箇所等あればご指摘いただけますと幸いです🙇♂️
Ruby Committers vs the World
10:00 - 11:10 / Main Hall (3F) @ rubykaigiA
最終日の幕開けは恒例のRubyコミッターのみなさんによる質疑応答と公開開発会議です。 質疑応答もですが、開発会議を直接見られる貴重な機会です!
RubyGems.orgからのお願い
最終日もRubyGems.orgのマルチファクター認証実施またはパスワード変更(強固なものに!)のお願いがありました。 大事なことは何度でも!ということで、認証の設定方法は下記のページで説明されています。 Setting up multi-factor authentication
質疑応答
事前に寄せられた質問の中から3つが取り上げられ、コミッターの方々がざっくばらんに回答または討論するという形式です。 取り上げられた質問は下記の3つです。(質問内容は要約しています)
・ 最近のRubyは非互換の変更に対して慎重な姿勢を取っているが、その方針についてはどう思っているか?(もっと攻めてもよいのでは?)
・ Ruby/C以外で最近使っている言語は?
・ 担当メンテナがいると嬉しい分野やライブラリは?
3つ目の質問では、JsonライブラリやDateライブラリが取り上げられたのですが、そこから現在行なっているDateをTimeに統合していく作業についてかなり話が盛り上がりました。 特に、Ruby2.6で追加された`Time.parse(123)`(※`Date.parse(123)`のTime版)にまつわる議論ではDateの闇がバンバン伝わってきましたね! 個人的には`Time.parse(123)`をレビューで見かけたら差し戻したくなりそうな気がします笑
公開開発会議
主にMatzさんからの2つの提案について議論が交わされました。
・ 提案1. Rangeを括弧で囲まずに利用できるようにしたい
・ 提案2. Numberd parameters
今回の内容では、その機能を入れるか入れないかよりも、入れるとして記号をどうするかというのがどちらも議論の中心となっていました。
白熱する議論の様子
Cleaning up a huge ruby application
11:20 - 12:00 / International Conference Room (5F) @ rubykaigiD
@riseshiaさんの発表です。 クックパッドさんにてワンタイムカバレッジを本番導入し、7万行以上(!)の不要コードを削除したという内容でした。
https://speakerdeck.com/riseshia/cleaning-up-a-huge-ruby-application
何故消すかや実行に移すことの難しさについては同意しかなかったです。 目に見えた即効性のある改善ではなく、遅効性の毒を取り除くための作業というのはどこでも難しいものなんですね…。 ワンショットカバレッジ、かなり良さげという印象でしたが、今回の発表を聞いてよりその思いを強めました。 弊社もガンガン改善進めていきたい💪
Best practices in web API client development
13:30 - 14:10 / International Conference Room (5F) @ rubykaigiD
@sue445さんの発表です。 多くのAPI clientを作成されてきた経験から得られたベストプラクティスについてでした。
https://speakerdeck.com/sue445/best-practices-in-web-api-client-development-number-rubykaigi
API clientの責務とすべきではない事項は標語にして貼っておきたくなるレベルでした。 Good patternsについても知見の塊で、こういったお話を聴くことができるRubyKaigi最高ですね!
The future of the Bundled Bundler with RubyGems
14:20 - 15:40 / Main Hall (3F) @ rubykaigiA
@hsbtさんの発表です。 BundlerをRuby本体に含めるための活動についてのお話でした。
https://www.slideshare.net/hsbt/the-future-of-bundled-bundler
動機についての、最初に入れるGemがBundlerである率の高さについて聴きながら、確かに自分も最初に入れたのはBundlerだなと納得していました。 Bundlerが最初から入っているのはものすごく便利ですが、そのために実施された内容が思っていた以上に大変そうでただただ感謝でした。 今後、Gelとどのように肩を並べていくのかもかなり気になりますね!
Timezone API
15:40 - 16:20 / International Conference Room (5F) @ rubykaigiD
@n0kadaさんの発表です。
Ruby 2.6からTimeがタイムゾーンをサポートするようになったことに関連した内容でした。 Timeがタイムゾーンをサポートしていない点については割と日々悩まれてきたので、Date含め、その辺りがいい感じになっていくのはすごく嬉しいですね!
ちなみに、発表の締め括りは "Timezone support has landed in Ruby 2.6!" ということでしたが、質疑応答でコミッターの方々の討論が始まって面白かったです。
今日一日で名前つけるの難しい問題に片手分くらいは遭遇したので、名前をつけることの難しさを痛感しました。
The send-pop optimisation
16:30 - 17:10 / Main Hall (3F) @ rubykaigiA
@shyouheiさんの発表です。 Rubyでは"send-pop"(メソッドをオブジェクトに送信しその戻り値を破棄する)という処理は頻繁に発生するので、その処理を最適化することによってRubyの実行を速くするアプローチについてでした。
https://speakerdeck.com/shyouhei/the-send-pop-optimisation
Keynote : Optimization Techniques Used by the Benchmark Winners
17:20 - 18:30 / Main Hall (3F) @ rubykaigiA
最終日のKeynoteは@jeremyevans0さんでした。 @jeremyevans0さんはSequelのリードデベロッパーなのですが、今回の発表はSequelとRodaで行なっている最適化や独自のパフォーマンス向上のアプローチに関するものでした。
コード例を挙げて解説を行われたのですが、パフォーマンス向上への情熱がヒシヒシと伝わってくる内容でした。 悔やまれるのは私の英語力が低く、所々聞き落としてしまったことです…。
スポンサートーク
弊社エンジニアの彌冨より、Keynote前にスポンサートークを行わせていただきました! お伝えしたい内容が盛りだくさんで少々駆け足気味のトークとなっておりましたが、発表内容について気になった方は是非お気軽にお問い合わせください。
業界のお話や弊社についてなど、カジュアルミーティングやランチミーティングでざっくばらんにお話ししましょう!
Closing & Next
次回のRubyKaigiはMatsumoto ! 2020/4/09(木)〜2020/4/11(土)に長野県松本市で開催とのことです🎉 2020年、楽しみですね!
また、素晴らしい時間を支えてくださったスタッフの皆さんには心から感謝しております。本当にありがとうございます!
ということで、RubyKaigi 最終日のレポートでした。 セッションもブースも盛りだくさんの大変充実した3日間でしたね! 私はセッション参加がメインであまりブースのほうは入っていなかったのですが、かなり盛況だったようで、お立ち寄りくださった皆さんありがとうございました。
ノベルティやステッカー等、使っていただけると嬉しいです! また、他社さんのノベルティやスタンプ等、お役立ちグッズやセンスの光るものが多く、弊社ももっと攻めていこう!という話になりました。
そういった意味でも今から来年が楽しみです。
積極採用中
弊社では、業務拡大中でソフトウェアエンジニアを積極採用しております。みなさまのご応募お待ちしております!!エンジニア採用サイトに募集職種や、会社の雰囲気の分かるインタビュー記事があります。是非ご覧ください。