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

DoD x RBS

Avatar for dak2 dak2
June 05, 2025
1

DoD x RBS

omotesando.rb#110 のスポンサーLT登壇資料
https://omotesandorb.connpass.com/event/355862/

Avatar for dak2

dak2

June 05, 2025
Tweet

Transcript

  1. 自己紹介 Daichi Kamiyama (@dak2) • 株式会社タイミー(2024年6月入社) • バックエンドエンジニア ◦ 働き手であるワーカーと事業者の出会いを最適化しスケール

    させるための改善や機能開発を行なっています ◦ 最近は Devin に対して丁寧にお伺いすることを生業にしてい る
  2. 目次 • 会場案内 • 会社紹介 • はじめに - 当時の型付け状況 •

    型付け、どこから始める? - 最初の壁 • 私たちの戦略: DoD + RBS = 小さな一歩 • 「差分への型付け」がもたらすもの • まとめ
  3. • Wifi ◦ SSID:Timee Guest ◦ Pass:guestguest • 注意点 ◦

    オープンスペースを出る際は、運営またはタイミー社員に お声がけください。 (セキュリティがかかっているため) 始まる前に
  4. 10

  5. 目次 • 会場案内 • 会社紹介 • 当時の型付け状況 <= イマココ •

    型付け、どこから始める? • チーム戦略: DoD + RBS = 小さな一歩 • 「差分への型付け」がもたらすもの • 型付けの次は型検査 • まとめ
  6. • 2024年7-8月 ◦ YARD から rbs-inline に書き換え ▪ それまでは混在していた •

    2024年8月 ◦ 型アノテーションを書くなら rbs-inline が Must 当時の型付けの状況
  7. チーム戦略: DoD + RBS = 小さな一歩 Definition of Done (DoD)

    とは? 完成の定義とは、プロダクトの品質基準を満たすインクリメントの 状態を示した正式な記述である。 プロダクトバックログアイテムが完成の定義を満たしたときにイン クリメントが誕生する。 ref. https://scrumguide-ja.kdmsnr.com/#komittomentono
  8. チーム戦略: DoD + RBS = 小さな一歩 Done の定義としてチームでは 変更差分に対しては、必ず rbs-inline

    を書くように ✅ *プロダクト全体の型定義はスプリント内で チェックするには現実的に無理なので、これ自 体はUndone とし、変更差分に対して守るよう にしています
  9. チーム戦略: DoD + RBS = 小さな一歩 • 補足 ◦ sinsoku

    さんが RubyKaigi で発表されていた rbs-trace もうまく活 用できそうだなと思ってます ▪ https://github.com/sinsoku/rbs-trace
  10. 「差分への型付け」がもたらすもの • 心理的ハードルの低減 ◦ 対象範囲がスプリント内の変更に限定されるため、 manageable。 ◦ 「これくらいならやれそう」という気持ちに。 • 習慣化の促進

    ◦ スプリントごとに必ず型に触れる機会ができる。 ◦ 「型を書く」ことが当たり前の文化へ。 • 漸進的な導入 ◦ 少しずつ型のあるコードが増えていく。 ◦ チーム全体で型への意識が自然と高まる ◦ 特に差分だけレビュー時に確認するので、実装との整合性を意識した型付けが可能 ▪ 一気に型付けすると、適切でない型付けをスルーしちゃいがち
  11. 型付けの次は型検査 • 型検査の実行 ◦ 型付けするだけではあまりメリットがなくて、型検査をしてちゃんとしたメリット が享受できる ◦ 最近全てのパッケージが型検査対象になりました🎉 ▪ ただ、`steep:ignore`

    で型検査を無視している箇所もあったりするので、 そこの対応は必要 ◦ 整合性のある型付けができているかの確認 ▪ これは一気にやろうとするのではなく、エンカウントした時に対応していく 方が現実的かもしれない