1日目(2022年9月8日)
印象に残ったセッション(1日目AM)
- Ruby meets WebAssembly1日目午前の最初のセッションはRuby meets WebAssemblyというセッションでした。
Ruby3.2 からWebAssembly (WASM)をサポートするということで、
どういったケースで使用するのか、どのように実現されているのかといった話を聞くことができました。
後半のレイヤーの低い話にはまだまだついていけない部分があったので、
これからもっと精進する必要がありそうだと感じました。
聞いていてRubyの将来がワクワクするセッションでした!
セッション前の会場の様子
お昼御飯お昼は、お弁当をいただきました。
掛け紙にRubyKaigiロゴが記載されているお弁当がとても新鮮でしたので、パシャリ!
三重県の名産、松阪牛もとても美味しかったです!
印象に残ったセッション(1日目PM) - Making *MaNy* threads on RubyRubyで大量のスレッドを扱う事ができるようにしようぜ!といったプロジェクトの話です。
GolangやErlangなどのように M:N Threads を実現していく試みが行われているようです。
Rubyのスレッドにおける過去の仕様から未来の構造まで知ることができました。
実際に実現したら、Rubyでマシンのリソースを最大限利用できる未来がくるのかも?
リリースされるのが待ち遠しくなっている今日この頃です!
夜ご飯
セッションが終了した後は、参加者の方々と一緒に夜ご飯を食べました!
海鮮がとても美味しかったです!
2日目(2022年9月9日)
印象に残ったセッション(2日目AM)- Make RuboCop super fast普段業務で使用するRuboCop。
RuboCopコマンドが大幅に改善されることやなぜ改善できたのかという話を聞くことができました。
特に印象的だったのは、RuboCop 1.31 から導入されたServer Optionです。
RuboCopをデーモナイズすることで1からプロセスを起動して処理を実行するのではなく、
プロセスを常駐させることで、これまでの850倍の速度改善が行われたという内容が印象的でした。
これはすぐに業務でも生かされるなぁと感じました!
使用する機会があれば、実際に試してみようと思います。
お昼御飯
2日目は、カレーをいただきました。
私にとってのカレー弁当史上、一番美味しかった!
RubyKaigi2022は、お昼御飯のバラエティがとても豊かで毎日のお昼ご飯が楽しみでした(笑)
印象に残ったセッション(2日目PM) - Packet analysis with mruby on Wireshark - dRuby as example業務やプライベートでお世話になっているWireshark。
未対応のプロトコルのパケットをキャプチャしたことがなかったため
ディセクターという概念を私は知らなかったのですが、
未対応のプロトコルのキャプチャをしたい場合は、ディセクターというものを自作する必要があるそうです。
dRubyのパケットをキャプチャするためのディセクターを自作しやすくするため
Wireshark拡張を作成したという内容でした。
普段業務では、Ruby on Rails としてのRubyを書く事が多いため
mRubyやdRubyについては触ったことがなかったのですが
公開されているスライドを参考にしながら
ハンズオン感覚でやってみたいなぁと感じました。
Rubyの実行速度は向上しているにも関わらず、
Rubyアプリケーションの速度はあまり変化がないという現状から
Rubyが本当に改善されているのか疑問視されていることに向けたセッションでした。
このセッションでは、Rubyの速度が本当に改善されていることを、
Rubyのランタイムを多く使用しているFluentdの動作速度によって確認しました。
同時にRuby自体の速度がRubyアプリケーションの速度に対して影響が小さいのは、
DBとの接続など別の要因が多いためだという説明もされていました。
結果的に実際Rubyの速度が大幅に改善されていることは証明されましたが、
他の言語(PythonやPerlなど)と比較すると遅く、改善が求められているという言及もありました。
わたしたちのようなRubyアプリケーションを作成するエンジニアの
裏の努力を垣間見ることができる良い機会だと感じました。
晩ご飯
この日は、様々な会社の若手の方々とご飯を食べる会があったので、
参加者の方々とご飯を食べに行きました!
三重県の日本酒はとても美味しかったです……!
3日目(2022年9月10日)
印象に残ったセッション(3日目AM)- error_highlight: user-friendly error diagnosticsこれまでのエラーハイライトの問題点を挙げつつ、
Ruby3.2 からどうのようにしてエラーハイライトが改善されたかについてや
改善する上で難しかった内容について触れられていました。
Ruby3.2 では、ArgumentErrorやTypeErrorの例外発生時に
どこで例外が発生したのか下線が出るようになっています。
また、Ruby on Railsのエラーページにも対応してくれるようになります。
改善する上で、Exception#message の実装の変更を行う事を検討していたそうですが
影響範囲や非互換問題が存在するため
Exception#detailed_message というメソッドが新たに用意されたといった内容でした。
デバックがより楽になるこのメソッドも、
Ruby3.2 の目玉機能の1つではないでしょうか。
お昼御飯3日目のお昼ご飯!
ようやく確保できた、松阪牛のサーロインステーキ丼。
とても美味しかった、、
印象に残ったセッション(3日目PM) - The Better RuboCop World to enjoy Rubyより良いRuboCopの設定におけるTipsが述べられたセッションでした。
ジュニアエンジニアは先輩の作成したRuboCopがいつでも正義だと信じ、
アプリケーションの状況に合わないRuboCopのルールに従って粗悪なコードを記述してしまいがちです。
それに対する解決法の一例として、確実に強制されるべきルールと
参考程度のルールのふたつのRuboCopを作成するという方法が挙げられました。
わたし自身、特例の場合、コメントアウトを使用して特定のコードのみルールを適用しないという方法を取ってきましたので、
上記の方法を適用してみたいと考えています!
感想
藤澤
今回、初めてRubyKaigiに参加しました。
コロナ前にも他のカンファレンスに参加したことがありましたが、
ここ2年はコロナによってオンライン参加のみでした。
そういったこともあって、今回のカンファレンスは、
コロナ前に参加していたオフラインカンファレンス以上の興奮と直接交流することの楽しさを実感しました。
このカンファレンスで受けたたくさんの刺激を
業務やプライベートの学習に生かしていきたいと考えています。
Rubyistの皆さん!次は長野の松本でお会いしましょう!!
山路(直)
私にとって、初のRubyKaigiに現地で参加できたことが何より嬉しいことでした。
現地に行くことによって、会場の空気感を感じることができ
また、セッション後の他社のエンジニアの方との関わりの中で、多くの刺激を受けることができました。
ありがとうございました。