Rubyセミナー 東京に登壇した

Rubyセミナー 東京に『コミッター直伝 RuboCop実践ガイド』というタイトルで登壇しました。当日のスライドは以下です。

自分の登壇について

某月某日、世界の Shugo Maeda さんから Ruby セミナー登壇へのお誘いのメッセージをいただいて、登壇の運びになりました。その際に頂いたテーマは以下です。

どんな形だとテーマに添えられるかを考えた結果、コミッター視点に加えて、これまで仕事やコミュニティ、オンライン、in-person などで直接間接問わず見聞きしてきたフィードバックに加えて、自分なりの RuboCop への理解などを加えた、ユーザー向けの「考え方」をざっくりとまとめて話した形でまとめてみました。Shugo さんからのオファーに応えられる形になっていたら良いなあというところです。

加えて、何度か勤務先で行っている Rails/OSS パッチ会で、MatzCop の構想を松田さんらと話したことがあった話題について、今回まつもとさんの前で話したところ「膨大な Cop のルールを取捨選択してもらうのはさすがに自分のハートが持たない」のを実感できたし、では MatzCop が The Default としてどの程度で成立するかはわからない (実現しなければそれはそう) 。何年も前から考えたことはある KoicCop 的なものも単純に「自分の好みで作ると例えばシングルクォートがデフォルトだけど?」なので結局のところ、Ruby で gofmt のような The Default は難しいんじゃないかなあと再確認できる機会にもなりました。

あと旬かもしれないあたりでは、Rails 7.2 における RuboCop まわりの情報をざっくりまとめておいたつもりです。

セミナー全体

基調講演のまつもとさんのより良い Ruby にしていくという話の中では、特に Name Space が次の Ruby の目玉としてフォーカスされていたのが印象的なひとつでした。Name Spece の開発を進められているモリスさんに超期待している的なムードもあって、私も楽しみにしています。そのほか今話題のパーサー開発競争について質問したところ、現状だと Ruby のリリース時期までに Prism に致命的な問題がなければそのままデフォルトパーサーとなりそうとの感触。そのあたりの判断は Kevin Newton の方でされるのかな (?) な感じであるものの、実際のところそのあたりも今後どうなっていくのかなというところ。そのあたりも含めて、Ruby ユーザーとしては開発版の Ruby 3.4 をリアルワールドアプリケーションなどに適用して問題がないか見てみて、問題があれば bugs.ruby-lang.org にフィードバックするといったあたりが各人で進められてくと良さそう。今回も受けた「OSS はどう始めたら良いか?」という質問について、個人的なおすすめは最新の開発版の Ruby やライブラリをお仕事のアプリケーションで動かしてみて、問題があればフィードバックするというコースなので、そういった形でも開発版が (Shopify や GitHub 社以外でも) いろいろなアプリケーションで試されていくと良いなあと思っています。

パーサーの話に戻って (?) 、Ruby 3.4 以降で今回のまつもとさんの構想話にあったアノテーションや、かつて一瞬 Ruby の開発版に入った obj.:method_name 構文の改訂版などが新規構文として追加される際、既存構文とコンフリクトがないかのリスクへの回答としては「parse.y で1回試す」というのあたり「あれ?」となりつつ、12月の松江でパーサーモンスターの kaneko さんとまつもとさんと話す機会があるのかなと、今後の動向も気になる感じです (リリース手前!?) 。

正徳さんこと神速さんはユーザー視点での型の話をされました。その中で特に良いなあと思ったのは、Ruby での型との現状でのリアルワールドアプリケーションでの付き合い方としては、型チェッカーとして使うのがヘヴィであるならば、メソッド補完やコードジャンプに割り切って使うというのが、実践的な話だなあと思いました (とはいえ個人的には、特にアプリケーションレイヤーで Ruby での型は書きたくない) 。このあたり RuboCop も型チェッカー (本編では Steep がベース) のいずれも、導入時のルールや型違反の検知数が導入への障壁なのは共通点としてありそう。

神速さんからはそのあたりを解決すべく、RBS::Inline の型を埋め込んでいく RBS::Trace という自作 Gem の紹介もされていましたが、その実装が TracePoint で取れない情報を、Prism で解析して判断するというあたり、ジョーカーさんやモリスさんみたいな発想っぽくてほっこりしました。

github.com

約5年ぶりの東京での登壇の機会にもなり、フィードバックをもらえたりと楽しい時間を過ごすことができました。スタッフのみなさん、関係者、参加者のみなさん、ありがとうございました!

ちなみに自分の講演タイトルはギター教則DVDなんかにある「〇〇直伝 様式美ハードロックギターの掟」みたいな感じを意識したものでした。Rock Will Never Die.