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
130
手書き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
85
スクラム開発におけるベロシティの扱い
rhiroe
0
110
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
72
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
140
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
The SEO Collaboration Effect
kristinabergwall1
0
320
My Coaching Mixtape
mlcsv
0
15
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
37
Automating Front-end Workflow
addyosmani
1371
200k
Navigating Weather and Climate Data
rabernat
0
58
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Designing for Timeless Needs
cassininazir
0
110
Making Projects Easy
brettharned
120
6.5k
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よりも正確なコードジャンプが行える
少しでも興味を持っていただけたなら 幸いです