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
TypeProf 開発レポート 2026-05 / TypeProf Dev Report 2...
Search
Takumi Shotoku
May 15, 2026
Technology
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TypeProf 開発レポート 2026-05 / TypeProf Dev Report 2026-05
Omotesando.rb #121
https://omotesandorb.connpass.com/event/392749/
Takumi Shotoku
May 15, 2026
More Decks by Takumi Shotoku
See All by Takumi Shotoku
Automatically generating types by running tests
sinsoku
4
19k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
8
2.9k
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
310
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
360
"型"のあるRailsアプリケーション開発 / Typed Rails application development
sinsoku
11
3.1k
Let's get started with Ruby && Rails Tips
sinsoku
0
520
LTの敷居を下げる / Lower the threshold for LT
sinsoku
2
450
CircleCIの高速化🚀 / CircleCI faster
sinsoku
3
1.6k
Railsアプリと型検査 / Rails app and type checking
sinsoku
5
1.7k
Other Decks in Technology
See All in Technology
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1.1k
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
OpenTelemetryのメトリクスをCloudWatchに送ってPromQLで見てみた
ota1022
0
120
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
190
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
130
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
310
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
AI-DLCって実際どう? 〜聞きたいこと全部聞いてみる〜
news_it_enj
0
250
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
110
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.4k
GoにおけるFFIのこれまでとこれから
goccy
5
2.3k
GoCon2026 - Open Source, Open World
sanposhiho
3
3.1k
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.8k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Faster Mobile Websites
deanohume
310
32k
Making the Leap to Tech Lead
cromwellryan
135
10k
Skip the Path - Find Your Career Trail
mkilby
1
220
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Documentation Writing (for coders)
carmenintech
77
5.5k
The agentic SEO stack - context over prompts
schlessera
0
920
Done Done
chrislema
186
16k
WCS-LA-2024
lcolladotor
0
820
How to Ace a Technical Interview
jacobian
281
24k
Transcript
TypeProf ։ൃϨϙʔτ 2026-05 Omotesando.rb #121 2026/05/14
ࣗݾհ • ໊લ: ਖ਼ಙ (aka: ਆ) • ॴଐ: גࣜձࣾmov •
GitHub: @sinsoku (ը૾ӈ্) • X: @sinsoku_listy (ը૾ӈԼ) • Omotesando.rb, Asakusa-bashi.rbs 2
We are hiring! 3
ΞδΣϯμ 1. Rubyͷܕք۾ͷ 2. TypeProf ͷհ 3. ։ൃͷਐḿใࠂ 4
! Ruby ʹܕ͕͋Δͱศརͳͷ͔ʁ 5
⭐ ܕͷϝϦοτ • υΩϡϝϯτ • ίʔυδϟϯϓ • ೖྗิ • ܕݕࠪ
ܕͷ͋ΔݴޠʹൺͯRubyͷαϙʔτऑ͍ɻ 6
ʮClaude Code Λ͏ͷͰ ίʔυΛॻ͘ػձ͕গͳ͍ʯ 7
⭐ ܕͷϝϦοτ • υΩϡϝϯτ • ίʔυδϟϯϓ • ೖྗิ • ܕݕࠪ
ܕͷ͋ΔݴޠʹൺͯRubyͷαϙʔτऑ͍ɻ 8
ͦ͏Ͱ͢Ͷ 9
! ܕͷՄೳੑ • AI͕ܕΛ׆༻ͯ͠ਫ਼্͕͕Δ • ܕʹΑΔ࠷దԽͷՄೳੑ • ZJIT, Ruby VM
• Spinel 10
Rubyͷܕք۾ͷπʔϧ 11
ruby RBS TypeProf gem_rbs_collection soutaro Steep rbs-inline shopify Sorbet Tapioca
RubyDex rbs_rails pocke Orthoses ksss rbs-trace sinsoku method-ray dak2 type-guessr riseshia 12
! ͔Βͳ͍ 13
ruby RBS TypeProf gem_rbs_collection soutaro Steep rbs-inline shopify Sorbet Tapioca
RubyDex rbs_rails pocke Orthoses ksss rbs-trace sinsoku method-ray dak2 type-guessr riseshia ⭐ ⭐ 14
RBS RubyͰܕΛѻ͏ͨΊͷϓϩτίϧͰɺ֦ுࢠ *.rbsɻ module ChatApp VERSION: String class User attr_reader
login: String attr_reader email: String def initialize: (login: String, email: String) -# void end end 15
Rubyͷίʔυʹॻ͚ΔʢRBS v4.0ʣ class Calculator # @rbs (Integer, Integer) -" Integer
def add(a, b) = a + b end 16
gem_rbs_collection • gemͷRBSϑΝΠϧΛཧ͢ΔϦϙδτϦ • ίϛϡχςΟʹΑͬͯϝϯς͞Ε͍ͯΔ • gem࡞ऀͱ͕ؔͳ͍ • TypeScriptͷDefinitelyTyped1Έ͍ͨͳͷ 1
https://github.com/DefinitelyTyped/DefinitelyTyped 17
ܕੜ ! / ܕݕࠪ ruby RBS TypeProf gem_rbs_collection soutaro Steep
rbs-inline shopify Sorbet Tapioca RubyDex rbs_rails pocke Orthoses ksss rbs-trace sinsoku method-ray dak2 type-guessr riseshia ⭐ ⭐ ✅ ✅ ✅ ✅ # # # # # 18
TypeProfͱ Rubyͷίʔυ͔ΒܕΛਪ͠ ͯ͘ΕΔπʔϧɻ ࡞ऀRubyίϛολʔͷ Yusuke Endoh(@mame) ͞Μ 19
ϝιουఆٛͷදࣔ 20
ͷݕग़ 21
TypeProf ͷྑ͍ͱ͜Ζ RBSΛॻ͘ඞཁ͕ͳ͍ʂʂ 22
ruby RBS TypeProf gem_rbs_collection soutaro Steep rbs-inline shopify Sorbet Tapioca
RubyDex rbs_rails pocke Orthoses ksss rbs-trace sinsoku method-ray dak2 type-guessr riseshia ⭐ ⭐ ✅ ✅ ✅ ✅ # # # # # 23
ಋೖखॱʢެࣜʣ 1. Gemfile ʹ typeprof ΛՃ͢Δ 2. bundle install Λ࣮ߦ͢Δ
3. bundle exec typeprof -"init 4. VSCode ʹ Ruby TypeProf ΛՃ 24
ಋೖखॱʢඇެࣜʣ 1. Gemfile ʹ ruby-lsp-typeprof ΛՃ͢Δ 2. bundle install Λ࣮ߦ͢Δ
3. bundle exec typeprof -#init ! ಋೖָ͚ͩͲɺެࣜͷVSCode֦ுͷํ͕ଟػೳɻ2 2 ruby-lsp-typeprof ϝιουఆٛͷද͔ࣔ͠Ͱ͖ͳ͍ɻ 25
TypeProf ͷίϯτϦϏϡʔτ RubyKaigi 2025Ҏ߱ʹগͣͭ͠ίϯτϦϏϡʔτ͍ͯ͠Δɻ 26
ओͳ׆ಈ༰ 1. TypeProf Λࢼ͢ͱΤϥʔ͕ग़Δ • bin/typeprof tmp/redmine/app 2. ࠶ݱίʔυΛ࡞Δ 3.
ཧղͰ͖Δൣғͷ࠷খͷύονΛ࡞Δ Claude Code Λͬͯௐࠪɺ࣮Λ͍ͯ͠Δɻ 27
28
29
doc/report_guide.md 30
Omotesando.rb #115 (2025-11-13) • ! v0.31.0 ͷհ • ✅ Redmine
ͷίʔυͰղੳ͕ޭ • # GitLab ͷίʔυͰղੳ͕ࣦഊ • To be continued... 31
2026-05 ͷTypeProf • ଟ͘ͷRailsΞϓϦͰΤϥʔͳ͘ಈ͘ • ύϑΥʔϚϯε͕গ͠ྑ͘ͳͬͨ • ͔͠͠ɺ·͍ͩ ! •
ܕਪͷਫ਼࣮༻తͰͳ͍ • ಛʹRailsΞϓϦͰ untyped ͕ଟ͍ 32
! ฐࣾͷRailsΞϓϦʹࢼݧతʹಋೖ $ time bundle exec typeprof app sig real
5m14.929s user 5m10.690s sys 0m1.814s ղੳରͷϑΝΠϧ 7970 Ͱ͢ɻ 33
! ίʔυͷن $ bin/rails stats +----------------------+--------+--------+---------+---------+-----+-------+ | Name | Lines
| LOC | Classes | Methods | M/C | LOC/M | +----------------------+--------+--------+---------+---------+-----+-------+ | Controllers | 27756 | 22218 | 632 | 2846 | 4 | 5 | | Helpers | 192 | 147 | 1 | 19 | 19 | 5 | | Jobs | 4036 | 3081 | 148 | 248 | 1 | 10 | | Models | 98268 | 67457 | 1701 | 6779 | 3 | 7 | | Mailers | 1200 | 957 | 27 | 100 | 3 | 7 | | Channels | 42 | 33 | 4 | 7 | 1 | 2 | | Views | 583 | 465 | 0 | 0 | 0 | 0 | | JavaScript | 105435 | 96211 | 0 | 40 | 0 | 2403 | | Libraries | 30302 | 24057 | 307 | 1344 | 4 | 15 | +----------------------+--------+--------+---------+---------+-----+-------+ | Total | 267814 | 214626 | 2820 | 11383 | 4 | 16 | +----------------------+--------+--------+---------+---------+-----+-------+ Code LOC: 214626 Test LOC: 0 Code to Test Ratio: 1:0.0 app/ 131,494 lines Ͱɺsig/ rbs_rails ͷࣗಈੜͰ͢ɻ 34
! ܕਪͷਫ਼ # Total methods: 15507 # Fully typed: 5956
# Partially typed: 2504 # Fully untyped: 7047 # # # Overall: 12081/28794 typed (42.0%) # 16713/28794 untyped (58.0%) bundle exec typeprof -"show-stats ͔ΒൈਮͰ͢ɻ 35
·ͱΊ • ܕؔ࿈πʔϧྨΛΔͱཧղ͍͢͠ • RBS ͕ϓϩτίϧ • ܕݕࠪ4ͭ • TypeProf
RailsΞϓϦͰࢼͤΔΑ͏ʹͳ͖ͬͯͨ • ύϑΥʔϚϯεɺܕਪͷਫ਼ࠓޙʹظ 36
! ͓·͚ 37
RubyKaigi 2026 ޙʹwriteݖݶΛ͍͍ͨͩͨ 38
39
! ϦϦʔε͠Α͏ https://github.com/ruby/typeprof/pull/456 40