Rabbit Slide Show

omotesandorb #48

2019-07-04

Description

[表参道.rb #48 - connpass](https://omotesandorb.connpass.com/event/136761/)

Text

Page: 1

Sorbet撤退記
2019-07-04
表参道.rb #48
うなすけ

Page: 2

自己紹介
名前 : うなすけ
仕事 : 株式会社バンク (エンジニア)
インフラ寄りサーバーサイドエンジニア
Ruby, Rails, Kubernetes…
GitHub @unasuke
Mastodon @unasuke@mstdn.unasuke.com
Twitter @yu_suke1994

Page: 3

参加表明
GitHubが落ちるときの話
Sorbetをapplicationに導入して試してみる話

Page: 4

型
https://twitter.com/HolyGrail/status/
1143030647121780737

Page: 5

Page: 6

Sorbet
Sorbet is a fast, powerful type checker designed
for Ruby.
Built with 💜 at Stripe.

Page: 7

Sorbet in RubyKaigi 2019
https://rubykaigi.org/2019/presentations/jez.html
https://www.youtube.com/watch?v=odmlf_ezsBo

Page: 8

Sorbet was public released in GitHub
at 2019-06-20
https://github.com/sorbet/sorbet

Page: 9

「みんな型が欲しいっちゅってる」

Page: 10

やること
1. gem 'sorbet', :group => :development
2. 自明 bundle install
3. bundle exec srb init
4. bundle exec srb tc
https://sorbet.org/docs/adopting

Page: 11

bundle exec srb init → OOM Killer

Page: 12

bundle exec srb init → 大量の .rbi
$ ls sorbet/**/*.rbi | wc -l
471

Page: 13

bundle exec srb typecheck めっちゃ警告
$ docker-compose exec api bundle exec srb tc | wc -l
14826

Page: 14

We have CLI option!
$ bundle exec srb tc --typed=true
https://sorbet.org/docs/cli#overriding-strictness-
levels

Page: 15

We have configuration yaml!
# -- foo.yaml --
true:
- foo.rb
$ bundle exec srb tc --typed-override=foo.yaml foo.rb
https://sorbet.org/docs/cli#overriding-strictness-
levels

Page: 16

しかしこれは両立できない(現状は)
全ファイルの静的型解析を ignore
型注釈を書いたファイルは true 以上
ということができない!
↓↓↓↓
結果、全 .rb に対して # typed: ignore を書く?

Page: 17

末路
https://twitter.com/yu_suke1994/status/
1145998714533601280

Page: 18

結論
はい……

Page: 19

理想
https://github.com/unasuke/github-notification-
reminder/commit/774205a

Page: 20

参考資料
https://sorbet.org
https://soutaro.hatenablog.com/entry/
2019/06/26/145305
https://speakerdeck.com/soutaro/an-
introduction-to-typed-ruby-programming

Other slides