Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
手書きRBSの運用事例
Search
Ryosuke Hiroe
June 14, 2024
2
120
手書きRBSの運用事例
Ryosuke Hiroe
June 14, 2024
Tweet
Share
More Decks by Ryosuke Hiroe
See All by Ryosuke Hiroe
rbs-srcを用いたgem_rbs_collectionへのcontribution.pdf
rhiroe
0
80
スクラム開発におけるベロシティの扱い
rhiroe
0
110
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
Six Lessons from altMBA
skipperchong
28
4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
GitHub's CSS Performance
jonrohan
1032
460k
Fireside Chat
paigeccino
39
3.6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Done Done
chrislema
185
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Optimizing for Happiness
mojombo
379
70k
Navigating Team Friction
lara
189
15k
Transcript
2024/06/14 廣江 亮佑 手書きRBSの運用事例 @rhiroe
2024/06/14 廣江 亮佑 自己紹介 名前: 廣江 亮佑 拠点: 岡山県 趣味: 原神、雀魂
GitHub: @rhiroe X: @buta_botti
RBS、書いてますか?
Maybe…
RBSを「書いている」人はおそらく少ない TypeProf RBS Rails Sord RBS prototype
目次 • 手書きという選択 • 厳密な型定義 • CIでの型検査 • 開発体験の向上 •
困りごと
1 手書きという選択
RBSを手書きする
前提として、型定義の自動生成には肯定的です
だって楽だから
ただ正直、自動生成での型定義の精度はまだ低い
YARDから型生成?
表現力に限界がある
Rubyで型のある開発がしたい!
RBSを手書きすることで、より正確な型定義が行える 正確な型定義により、コスト以上に開発体験が向上する …という仮説
それと、興味
2 正確な型定義
None
None
TypeProf
TypeProf
None
None
None
None
None
untyped💔
None
None
None
None
None
❤
(注)paramsの正確な型を書くには、現状のActionController::ParametersのRBSがまだ不十分という問題を抱えています
3 CIでの型検査
Steep
None
デフォルト設定
None
None
None
None
None
None
None
❤
4 困りごと
ライブラリのRBS定義はまだ不十分
ライブラリのRBS定義はまだ不十分
ライブラリのRBS定義はまだ不十分 • gem_rbs_collectionにPRを出す • 自前のRBS定義を追加する • steep:ignore コメントを使う
ライブラリのRBS定義はまだ不十分 • gem_rbs_collectionにPRを出す • 自前のRBS定義を追加する • steep:ignore コメントを使う 💪
None
まとめ
開発体験は向上したの? • Steepの多くの項目で型検査を行える ◦ CIでの型検査により、多くの潜在的なエラーに早期で気づける ◦ デッドコードの判定が容易(メタプロが少ない) • RBSを手書きすることによりインターフェースへの意識が高まる ◦
より設計に気を遣うようになり、コードの質が上がる ◦ RBSがインターフェースのレビュー対象として使えるので便利 ◦ RBSフレンドリーな設計により、自然と値オブジェクトのようなものが生まれる • VS CodeのSteep拡張機能が超便利になる ◦ エディタ上に正確な型情報が表示される ◦ Copilotとは異なり、確実に存在するメソッドで補完が行われる ◦ 型検査に引っかかるコードを書くと、エディタ上で赤く知らせてくれる ◦ Ruby LSPよりも正確なコードジャンプが行える
少しでも興味を持っていただけたなら 幸いです