Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DoD x RBS
Search
dak2
June 05, 2025
35
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DoD x RBS
omotesando.rb#110 のスポンサーLT登壇資料
https://omotesandorb.connpass.com/event/355862/
dak2
June 05, 2025
More Decks by dak2
See All by dak2
特殊変数大全
dak2
0
12
登壇その後 - ZJIT への興味とハック
dak2
0
12
現場のトークンマネジメント
dak2
1
280
KaigiEffect.new(name: "dak2").generate
dak2
1
110
No Types Needed, Just Callable Method Check
dak2
1
8.9k
MCP Security Best Practices に見るセキュリティリスクとmodelcontextprotocol/ruby-sdk の authorization の現在地
dak2
0
70
自然言語で ActiveRecord を操作する試み
dak2
0
65
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.9M
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
For a Future-Friendly Web
brad_frost
183
10k
Everyday Curiosity
cassininazir
0
320
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Testing 201, or: Great Expectations
jmmastey
46
8.3k
WCS-LA-2024
lcolladotor
0
830
Transcript
2025/06/05【オフライン開催】Omotesando.rb #110 株式会社タイミー 神山大智 DoD x RBS スポンサーLT @_dak2_
自己紹介 Daichi Kamiyama (@dak2) • 株式会社タイミー(2024年6月入社) • バックエンドエンジニア ◦ 働き手であるワーカーと事業者の出会いを最適化しスケール
させるための改善や機能開発を行なっています ◦ 最近は Devin に対して丁寧にお伺いすることを生業にしてい る
自己紹介 色々あるんですが、 Devin とは仲良くさせて いただいてます
目次 • 会場案内 • 会社紹介 • はじめに - 当時の型付け状況 •
型付け、どこから始める? - 最初の壁 • 私たちの戦略: DoD + RBS = 小さな一歩 • 「差分への型付け」がもたらすもの • まとめ
1 会場案内
• Wifi ◦ SSID:Timee Guest ◦ Pass:guestguest • 注意点 ◦
オープンスペースを出る際は、運営またはタイミー社員に お声がけください。 (セキュリティがかかっているため) 始まる前に
始まる前に トイレ エレベータ
始まる前に エレベータ 喫煙室 ※電子タバコ専用 紙タバコは地下2Fの喫 煙室を利用してください
2 会社紹介
10
型付けの次は型検査
12 12
提供しているインターフェース 対象 プラットフォーム iOS/Android ワーカー クライアント (店舗) クライアント (企業) 社内全般
ActiveAdmin SPA SPA Web taimee-rails-api
提供しているインターフェース 対象 プラットフォーム iOS/Android ワーカー クライアント (店舗) クライアント (企業) 社内全般
ActiveAdmin SPA SPA Web 裏側は(ほぼ)全て モノリスRailsで動いている
カジュアル面談はこちらから!
3 型付けの話
目次 • 会場案内 • 会社紹介 • 当時の型付け状況 <= イマココ •
型付け、どこから始める? • チーム戦略: DoD + RBS = 小さな一歩 • 「差分への型付け」がもたらすもの • 型付けの次は型検査 • まとめ
初めに結論 DoD(Definition of Done) ✖ RBS
当時の型付けの状況
• 2024年7-8月 ◦ YARD から rbs-inline に書き換え ▪ それまでは混在していた •
2024年8月 ◦ 型アノテーションを書くなら rbs-inline が Must 当時の型付けの状況
当時の型付けの状況 rbs-inline を本格的に書いていくぞ!という立ち 上げ段階
型付け、どこから始める?
型付け、どこから始める? rbs-inline を本格的に書いていくぞ! …とは言ったものの • 既存の巨大なコードベース: どこから手をつければ? • 途方もない作業量: 心が折れそう...
• 効果が遅効性: すぐに型検査の恩恵を受けられるわけではない
チーム戦略: DoD + RBS = 小さな一歩
チーム戦略: DoD + RBS = 小さな一歩 Definition of Done (DoD)
とは? 完成の定義とは、プロダクトの品質基準を満たすインクリメントの 状態を示した正式な記述である。 プロダクトバックログアイテムが完成の定義を満たしたときにイン クリメントが誕生する。 ref. https://scrumguide-ja.kdmsnr.com/#komittomentono
チーム戦略: DoD + RBS = 小さな一歩 https://tech.timee.co.jp/entry/ 2024/08/05/110000
チーム戦略: DoD + RBS = 小さな一歩 Done の定義としてチームでは 変更差分に対しては、必ず rbs-inline
を書くように ✅ *プロダクト全体の型定義はスプリント内で チェックするには現実的に無理なので、これ自 体はUndone とし、変更差分に対して守るよう にしています
チーム戦略: DoD + RBS = 小さな一歩 • 補足 ◦ sinsoku
さんが RubyKaigi で発表されていた rbs-trace もうまく活 用できそうだなと思ってます ▪ https://github.com/sinsoku/rbs-trace
「差分への型付け」がもたらすもの
「差分への型付け」がもたらすもの • 心理的ハードルの低減 ◦ 対象範囲がスプリント内の変更に限定されるため、 manageable。 ◦ 「これくらいならやれそう」という気持ちに。 • 習慣化の促進
◦ スプリントごとに必ず型に触れる機会ができる。 ◦ 「型を書く」ことが当たり前の文化へ。 • 漸進的な導入 ◦ 少しずつ型のあるコードが増えていく。 ◦ チーム全体で型への意識が自然と高まる ◦ 特に差分だけレビュー時に確認するので、実装との整合性を意識した型付けが可能 ▪ 一気に型付けすると、適切でない型付けをスルーしちゃいがち
「差分への型付け」がもたらすもの • シンプルな戻り値をシンプルに保つ力学が働く ◦ 複雑な型を返そうとしているときはメソッドの設計がおかしい ◦ 自然とメソッドの戻り値をシンプルに保とうとする力学が働く ◦ “型”を媒介にして、設計に対するFBがかかりやすくなる印象がある
型付けの次は型検査 • 型検査の実行 ◦ 型付けするだけではあまりメリットがなくて、型検査をしてちゃんとしたメリット が享受できる ◦ 最近全てのパッケージが型検査対象になりました🎉 ▪ ただ、`steep:ignore`
で型検査を無視している箇所もあったりするので、 そこの対応は必要 ◦ 整合性のある型付けができているかの確認 ▪ これは一気にやろうとするのではなく、エンカウントした時に対応していく 方が現実的かもしれない
まとめ
まとめ • DoD ✖ RBS は現実的な型付け戦略 • 差分に対して RBSを書くことでコードへ FBをか
けやすい