Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ISUCONで型をつける

 ISUCONで型をつける

合同開催 omotesando.rb #105 × Roppongi.rb #26 の登壇資料です。
https://omotesandorb.connpass.com/event/341106
https://roppongirb.connpass.com/event/341038

## 資料内のURL

ISUCON14 感想戦&お試し期間(〜1/17)
https://isucon.net/archives/58860420.html

ISUCON14の型付けの変更差分
https://github.com/euglena1215/isucon14-rbs/commit/27945034f06d92414a112fcf83c0efa018839e9c

Shintani Teppei

January 09, 2025
Tweet

More Decks by Shintani Teppei

Other Decks in Programming

Transcript

  1. 言い訳 • 準備してきたので外部ライブラリの型を書く必要はほとんどない ◦ mysql2, sinatra gem の型はほとんど自分が書いたはず • でもやっぱり型をつけようと思ったら1時間くらいはかかってしまう、

    競技時間8時間のうちの1時間は惜しい ◦ インフラも見てたので8時間のうち Ruby 書いてたのは3~4時間くらいだった ◦ コードを理解する時間も含まれてるので全てが無駄になるわけではないものの...
  2. 言い訳 • 準備してきたので外部ライブラリの型を書く必要はほとんどない ◦ mysql2, sinatra gem の型はほとんど自分が書いたはず • でもやっぱり型をつけようと思ったら1時間くらいはかかってしまう、

    競技時間8時間のうちの1時間は惜しい ◦ インフラも見てたので8時間のうち Ruby 書いてたのは3~4時間くらいだった ◦ コードを理解する時間も含まれてるので全てが無駄になるわけではないものの... 正直 ISUCON 競技中に型を手書きするのは厳しい 😢
  3. ありうる可能性 • TypeProf を使って推論できる部分はどんどん推論して自動生成し 手書きする範囲を極力小さくする ◦ rbs-inline と TypeProf の

    integrate が進まないとちょっと難しいかも? • Go などの静的型付け言語の参考実装や DB のスキーマファイルを LLM に与えて代わりに型を書いてもらう ◦ 他言語の参考実装もあるという ISUCON ならではのアプローチ。個人的にはこっちに期待
  4. ありうる可能性 • TypeProf を使って推論できる部分はどんどん推論して自動生成し 手書きする範囲を極力小さくする ◦ rbs-inline と TypeProf の

    integrate が進まないとちょっと難しいかも? • Go などの静的型付け言語の参考実装や DB のスキーマファイルを LLM に与えて代わりに型を書いてもらう ◦ 他言語の参考実装もあるという ISUCON ならではのアプローチ。個人的にはこっちに期待 • 参考実装に型があると一番楽ではあるが... ◦ ISUCON中に楽がしたいわけで参考実装を作りたいわけではない
  5. ありうる可能性 • TypeProf を使って推論できる部分はどんどん推論して自動生成し 手書きする範囲を極力小さくする ◦ rbs-inline と TypeProf の

    integrate が進まないとちょっと難しいかも? • Go などの静的型付け言語の参考実装や DB のスキーマファイルを LLM に与えて代わりに型を書いてもらう ◦ 他言語の参考実装もあるという ISUCON ならではのアプローチ。個人的にはこっちに期待 • 参考実装に型があると一番楽ではあるが... ◦ ISUCON中に楽がしたいわけで参考実装を作りたいわけではない 今年はLLMをうまく使うアプローチで頑張ってみる 💪 ISUCONでRubyに型をつける同志を募集中です