テストを実行してSorbetのsigを書こう!
by
SansanTech
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
テストを実⾏して Sorbetのsigを書こう! Omotesando.rb #112 @pvcresin
Slide 2
Slide 2 text
⿃⼭ らいか / @pvcresin - 名刺アプリ「Eight」のWebエンジニア - 業務: React / Rails - 趣味: アニメ / お笑い / 謎解き ⾃⼰紹介
Slide 3
Slide 3 text
© Sansan, Inc.
Slide 4
Slide 4 text
型を当てていくのは⼤変
Slide 5
Slide 5 text
Sorbetのsigを⾃動で書きたい
Slide 6
Slide 6 text
Sorbetのsigサジェスト機能 型チェックレベルをstrict以上にすると利⽤可能 - 型があまり当たっていない状況だと untypedになる場合が多い Gelauto テストを実⾏するとsigを挿⼊してくれるツール - 割と型は当たるが、複雑な型はuntyped - 開発があまりアクティブでない ⾃動でsigを書く⽅法
Slide 7
Slide 7 text
RubyKaigi 2025
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
図にまとめると
Slide 10
Slide 10 text
@sinsoku < RBS::TraceでテストからRBSコメントを挿⼊できるよ @Morriar < SorbetでRBSコメントもサポートしたよ RBS::Trace Spoom
Slide 11
Slide 11 text
@pvcresin < RBS::Traceで #: コメント挿⼊に対応したよ @sinsoku < RBS::TraceでテストからRBSコメントを挿⼊できるよ @Morriar < SorbetでRBSコメントもサポートしたよ RBS::Trace 詳しくは https://speakerdeck.com/sansantech/20250516 Spoom
Slide 12
Slide 12 text
理由 - SorbetでのRBSコメントは実験的サポートのため、機能がまだ不⼗分 - 組織がSorbetに慣れてきた段階で、新しい構⽂の導⼊は混乱が⽣じる Eightではsigを使⽤
Slide 13
Slide 13 text
RBS::Trace Spoom RBS::Trace
Slide 14
Slide 14 text
RBS::Trace Spoom RBS::Trace
Slide 15
Slide 15 text
⼿順 1. RSpecを実⾏し、RBS::TraceでRBSコメントを挿⼊ 2. SpoomでRBSコメントをsigに変換 3. 静的 / 動的型チェック通らないところを⼿直し
Slide 16
Slide 16 text
- 型がついているメソッド呼び出し 結果 - sigが書いてあるメソッド
Slide 17
Slide 17 text
- RBS::TraceとSpoomを組み合わせると、テストを実⾏するだけでsigが書けて便利 - Gelautoより精度良くsigを書くことができた まとめ
Slide 18
Slide 18 text
We are Hiring! https://media.sansan-engineering.com/