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-inlineを使ってみた
Search
a_fujisaki
September 12, 2024
Programming
0
60
rbs-inlineを使ってみた
a_fujisaki
September 12, 2024
Tweet
Share
More Decks by a_fujisaki
See All by a_fujisaki
Emacs × LSP × Steep
aki19035vc
0
90
MiniMagickの型を生成したい
aki19035vc
0
53
最近追加した型の紹介とその振り返り
aki19035vc
0
330
Other Decks in Programming
See All in Programming
rails_girls_is_my_gate_to_join_the_ruby_commuinty
maimux2x
0
200
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
530
Android開発以外のAndroid開発経験の活かしどころ
konifar
2
970
What you can do with Ruby on WebAssembly
kateinoigakukun
0
160
LangChainの現在とv0.3にむけて
os1ma
4
910
Kotlin 2.0 and Beyond
antonarhipov
2
150
今インフラ技術をイチから学び直すなら
yuhta28
1
130
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
530
Scala アプリケーションのビルドを改善してデプロイ時間を 1/4 にした話 | How I improved the build of my Scala application and reduced deployment time by 4x
nomadblacky
1
180
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.5k
Amazon BedrockでサーバレスなAIお料理ボットを作成する!!
tosuri13
0
220
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
540
Featured
See All Featured
Writing Fast Ruby
sferik
623
60k
Embracing the Ebb and Flow
colly
83
4.4k
Making the Leap to Tech Lead
cromwellryan
128
8.8k
How to name files
jennybc
75
98k
What the flash - Photography Introduction
edds
67
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
8.9k
Building Your Own Lightsaber
phodgson
101
6k
Atom: Resistance is Futile
akmur
261
25k
4 Signs Your Business is Dying
shpigford
179
21k
YesSQL, Process and Tooling at Scale
rocio
167
14k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Ruby is Unlike a Banana
tanoku
96
11k
Transcript
rbs-inlineを使ってみた Roppongi.rb#22 <2024-09-12> @aki19035vc
自己紹介 ❏ 藤崎 亮人 (a_fujisaki) ❏ @aki19035vc ❏ イタンジ株式会社 ❏
不動産会社向けのSaaSを提供 ❏ バックエンドエンジニア ❏ ほぼRails・たまにScala ❏ 物件基盤の開発責任者 ❏ Rails × 型 の話が好き ❏ 学生の頃(2016年くらい)からEmacs使ってます
今日話すこと ❏ rbs-inline を使ってみた話 ❏ どんな風に試したか ❏ 実際どうだったか (感想) ❏
良かったところ・気になったところなど ❏ 今後やること ※ rbsとかrbs-inlineとかsteepとかの詳しい解説はしません
rbs-inlineとは ❏ Rubyの型情報をソースコード内にコメントとして直接記述することで、 rbsファイルを別途作成せずに型情報を生成できるツール ❏ 詳しくはリポジトリとかRubyKaigi 2024 のセッションを見てください ❏ https://github.com/soutaro/rbs-inline
❏ https://rubykaigi.org/2024/presentations/soutaro.html
簡単な例
どんな風に試したか ❏ rbs_mini_magickという自作gemの型をrbs-inlineで生成するように変更 ❏ https://github.com/aki19035vc/rbs_mini_magick ❏ 元々はrbsとyardをどちらも書いていたため大変だった ❏ 今回は、全て手作業で rbs-inlineを使う形に書き写した
❏ 使用感とかを確かめるために頑張った ❏ rbsファイルをちゃんと書いていたので、そこからrbs-inlineのコメントを 機械的に付与することも検討はした ❏ yardコメントは全部消した
どうだったか (感想) ❏ コード内に型を直接書けるのは素晴らしい ❏ 今まではコードを書き終えた後、最後にまとめて型を書いてた ❏ rbs-inlineを使うと、コードを書くと同時にrbsを書けて効率が良い ❏ 機能的に足りないものなどは特になかった
❏ wikiに書き方が詳しく載っていたので特に困ることもなかった ❏ https://github.com/soutaro/rbs-inline/wiki/Syntax-guide
悩んでいること・気になること ❏ 書き方 ❏ `@rbs` を基本的に使い、attr_xxx, 定数などは `#:` で書くようにした ❏
yardスタイルの書き方はしない ❏ `#:`で統一しようかは迷っている ❏ 書き方を統一させるためのrubocopがあると嬉しい (rubocop-rbs-inline的な) ❏ rubocopで怒られる部分はひとまず無効化した ❏ rubocopにPRを出してくれる方がいるので、無事取り込まれれば無効化しなくても良くな りそう ❏ コード内に記述したrbsコメントが、生成後のrbsファイルにも含まれている ❏ 特に害はないが、なくても良いのでは?とは思った
今後の話 ❏ 業務で開発しているRailsアプリケーションにrbs-inlineを入れる予定 ❏ 型は(ほぼ)100%書いてある ❏ 人力で書き写すのは現実的ではない ❏ 既存のrbsからrbs-inlineのコメントを機械的に付与するスクリプトを作る予定 ❏
上手くいったら弊社のエンジニアブログで公開するつもり & LTもどこかでやり ます