はじめに
はじめまして!2023年4月にラクスル事業本部にサーバーサイドエンジニアとして新卒入社した杉山です。 とはいっても、去年の7月から内定者インターンとしてラクスルでの開発に関わっていて、インターン時と同じチームへの配属ということもあり、現在は新商品追加のための開発や運用の仕事をしています。
この記事では、新卒入社後に参加した RubyKaigi 2023 + アフターイベントについて、その感想を書きたいと思います。
RubyKaigi 2023
RubyKaigi にはこれまでも参加したいと思っていたのですが、大学の授業や、コロナ禍の影響により、なかなか参加することができませんでした。 今年の RubyKaigi は長野県松本市で開催され、長野県は私の出身地でもあるので、ぜひ参加したいと思っていました。そう思っていたところ、 RubyKaigi の参加について会社からチケット代などの支援があるということで、これは行くしかないと思い、参加することにしました。
おもしろかったセッション
RuboCop's baddest cop
RuboCop の Cop のうち、丸括弧の省略を指摘する Cop についての話でした。 Ruby ではメソッドを呼び出す際に、丸括弧を省略することができます。
# 丸括弧を省略しない場合 puts('Hello, world!') # 丸括弧を省略した場合 puts 'Hello, world!'
それを指摘し、修正するCopがあるのですが、そのCopの問題についての発表でした。
RuboCopの自動修正で丸括弧を機械的に取り除くと、Rubyのシンタックスの曖昧さにより、意図しない動作になることがあります。 以下は発表とは直接関係ないですが、Rubyのシンタックスの曖昧さについての例です。
def hello(arg) "Hello, world! from #{arg}" end # 丸括弧を省略しない場合 puts([hello('array')].join(', ')) # => Hello, world!, Hello, world! from array # 丸括弧を省略した場合 puts ([hello 'array'].join(', ')) # => SyntaxError
このようなエッジケースに対しての Cop の修正についての発表でした。
この Ruby のシンタックスの曖昧さ(それが Ruby の良さでもあると思いますが)については、パーサに関係する他のセッションにも関連していて、とても興味深かったです。
Ultra-fast test-driven development
LT での rspec-daemon についての発表でした。
RSpec を実行するサーバーをあらかじめ起動させておき、テストを実行する際に、そのサーバーにテストを実行させることで、テストの実行時間を短縮するというものでした。短い LT の時間のなかでデモもあり、とても興味を惹かれました。
私は RubyMine を使って RSpec をファイル単位で実行することが多いですが、1ファイルのテストの完了までにちょっとした休憩ができるほどの時間がかかっているので、この仕組みが実用的になるといいなと思いました。
The Resurrection of the Fast Parallel Test Runner
test-queue という、テストを並列実行するためのツールについての発表でした。 Ruby で並列テストを実現する仕組みはいくつかありますが、発表者の koic さんによると、test-queue の設計が最も優れているとのことでした。しかし、メンテナンスが長年されていないため、 koic さんがメンテナンスを引き継ぐことにしたそうです。
ラクスルでは Rails アプリケーションのテストには RSpec を採用し、 CI は CircleCI を使っています。 CircleCI の機能で並列にテストを実行をしていますが、 test-queue を使うことで、より高速にテストを実行できるようになるかもしれないと思いました。
Rubyコミュニティのつながり
RubyKaigi に参加していると、過去にインターンでお世話になった企業の方や、直接お世話になった方とお会いすることができました。また、1日目の Official Party でもいろいろな方とお話しすることができました。
ラクスルユーザーさんとの交流
スポンサーブースを出展している企業の中に、ラクスルのユーザーさんがいらっしゃいました。ラクスルのユーザーさんと直接お話しする機会はあまりないので、とても貴重な機会でした。
ラクスルのエンジニアとして
スポンサーブースやノベルティのブースを見ていると、ラクスルで取り扱っている商品で実現できそうなものがあったり、ラクスルでつくれるようになるといいなと思うものがあったりして、 Ruby 以外にも刺激を受けました。
RubyKaigi 2023 アフターイベント
RubyKaigi 2023 の後に、RubyKaigi 2023 についてのアフターイベントがいくつか開催されました。私は以下のアフターイベントに参加しました。
ふりかえりRubyKaigi 2023
STORES さん主催のオンラインのアフターイベントでした。 RubyKaigi 2023 のプログラムを見ながら、発表について STORES さんのエンジニアの方々がコメントしたり、発表者の方との質疑応答をしたりしていました。
オンラインでのイベント参加はあまり経験がなかったのですが、こうした形式もありだなぁと思いました。
RubyKaigi2023 スポンサー振り返り会!エンジニアが語る運営秘話
ラクスル本社からも近い、ウォンテッドリーさんのオフィスで開催されたアフターイベントでした。RubyKaigi 2023 にスポンサーをした Timee 、 Qiita 、 Wantedly のエンジニアの方々が、社内でのスポンサー準備の話や当日の社内の様子などを発表していました。
個人的に、ラクスルでも Ruby コミュニティに貢献できるような活動をしていきたいと思っているので、とても参考になりました。
RubyKaigi 2023 でお会いした方に再会できたり、技術情報発信の取り組みについて詳しいお話を聞くことができたり、とても有意義な時間を過ごすことができました。
手を動かして振り返る RubyKaigi 2023
クックパッドさん主催のアフターイベントでした。RubyKaigi のあとに私は手を動かせてはいないのですが参加しました。 RBSを追加するPRを出すのは、はじめての contribution によいなと思いました。 懇親会でRubyメソッドかるたをして盛り上がったり、クックパッドの新卒エンジニアの方とお話しすることができました。
おわりに
RubyKaigi 2023 + アフターイベントに参加して、 Ruby コミュニティのつながりを感じることができました。また、 Ruby の最新情報を知ることができ、普段の仕事に活かしていきたいと思います。
また、 RubyKaigi 2023 での発表の多くが英語で行われていて、自分の英語力ではあまり聞き取れず発表が理解できないことがありました。自分の RubyKaigi 2023 での英会話は、ほとんど売り切れの自販機の前で売り切れ表示の飲み物を買おうとしている海外からの参加者の方に、「it is sold out, not available」と話しかけただけでした。 さすがにちゃんと発表も聞きたいし、コミュニケーションもしたいので英語の勉強へのモチベーションが高まりました。ラクスルにはベトナム、インドにも拠点があり全社的なミーティングで日本語・英語の通訳の方がはいっています。発表スライドは英語のみの場合もあるので、英語の必要性は感じていましたが、 RubyKaigi 2023 に参加して、より強く感じました。まずは、ラクスル社内で英語で質問や発表ができるようになることを目標に、英語の勉強をしていきたいと思います。