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
150
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
20k
滅・サービスクラス🔥 / Destruction Service Class
sinsoku
8
3k
テストを書かないためのテスト/ Tests for not writing tests
sinsoku
1
330
ドメインの本質を掴む / 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
460
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
Browser Spec: Testing Hotwire with Ruby
takahashim
1
160
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
350
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
4
670
トークン化預金DCJPYの取り組みと活用ユースケース
finengine
0
230
macOS Golden Gate 時代のMac管理
tategami
0
130
AIネイティブ企業への変革。パーソルキャリアが挑む「データメッシュ×ガバナンス」のアーキテクチャ戦略
techtekt
PRO
0
120
「エーアイ」をバズワードにしないために RPA 導入経験と Kiro 上での Claude モデル利用経験から
kazzpapa3
0
120
「Learning Outcome」を書きたくない私が、Learning Outcomeと折り合いをつけるまで
mhlyc
0
120
局所最適は悪ではない。壊れているのは指標です。量と質を同時に見る先行指標の設計
recruitengineers
PRO
2
300
VLA-JEPA: Enhancing Vision-Language-Action Models with Latent World Models
takmin
0
120
What Is JetBrains Air
x5gtrn
PRO
0
140
Steerable Visual Representations
sansantech
PRO
0
170
Featured
See All Featured
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Mind Mapping
helmedeiros
1
400
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
Writing Fast Ruby
sferik
630
63k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Fireside Chat
paigeccino
43
4.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Deep Space Network (abreviated)
tonyrice
0
380
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
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