rabbit-slide-unasuke-omotesandorb-48 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 9c231ab0dcf55ef67a9793786b85ab78a44482f87fc7b6aa97676cc64d81c3c2
4
+ data.tar.gz: 25673509bc6fd0f43b2fe03a964c40b3786f87629dee5b9dd3313d3a8a99cfae
5
+ SHA512:
6
+ metadata.gz: e89e02f4094cb5f5b858c644e16fb9be1742a635e64cbdcfc6ccece850c42be83ea7d071f4611760bed227de7818ac3a21d47bfc8c560c705a3d8fef218d3f38
7
+ data.tar.gz: b5d6ed1ddfca6ea0e175f7371a053f4460ebaa3eb0ee7a7a740c25c8e28914cff90dfa794eb72c5a9e07b80b3c1c101d296ef21464282db49593b525492d64d9
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ slide.md
@@ -0,0 +1,24 @@
1
+ # omotesandorb #48
2
+
3
+ [表参道.rb #48 - connpass](https://omotesandorb.connpass.com/event/136761/)
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide--omotesandorb-48
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide--omotesandorb-48.gem
24
+
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("YOUR THEME")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,19 @@
1
+ ---
2
+ id: omotesandorb-48
3
+ base_name: slide
4
+ tags: ['ruby']
5
+ presentation_date: '2019-07-04'
6
+ version: 1.0.0
7
+ licenses: []
8
+ slideshare_id:
9
+ speaker_deck_id:
10
+ ustream_id:
11
+ vimeo_id:
12
+ youtube_id:
13
+ author:
14
+ markup_language: :markdown
15
+ name: unasuke
16
+ email: yusuke1994525@gmail.com
17
+ rubygems_user: unasuke
18
+ slideshare_user:
19
+ speaker_deck_user:
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,136 @@
1
+ # Sorbet撤退記
2
+ subtitle
3
+ : 2019-07-04
4
+
5
+ subtitle
6
+ : 表参道.rb #48
7
+
8
+ author
9
+ : うなすけ
10
+
11
+ theme
12
+ : unasuke-white
13
+
14
+
15
+ # 自己紹介
16
+ - 名前 : うなすけ
17
+ - 仕事 : 株式会社バンク (エンジニア)
18
+ - インフラ寄りサーバーサイドエンジニア
19
+ - Ruby, Rails, Kubernetes...
20
+
21
+ - {::tag name="x-small"}GitHub [@unasuke](https://github.com/unasuke){:/tag}
22
+ - {::tag name="x-small"}Mastodon [@unasuke@mstdn.unasuke.com](https://mstdn.unasuke.com/@unasuke){:/tag}
23
+ - {::tag name="x-small"}Twitter [@yu\_suke1994](https://twitter.com/yu_suke1994){:/tag}
24
+
25
+ ![](img/icon_raw.jpg){:relative_width="24" align="right" relative_margin_right="-10" relative_margin_top="42"}
26
+
27
+ # 参加表明
28
+ ![](img/omotesandorb-connpass.png){:relative_width="100"}
29
+
30
+ - ~~GitHubが落ちるときの話~~
31
+ - Sorbetを~~applicationに導入して~~試してみる話
32
+
33
+ # 型
34
+ ![](img/tweet_holygrail_mechakucha.png){:relative_width="85"}
35
+
36
+ <https://twitter.com/HolyGrail/status/1143030647121780737>
37
+
38
+ # 型
39
+ ![](img/D9zcUD3VUAA5jWt.jpeg){:relative_width="100"}
40
+
41
+ # Sorbet
42
+ > Sorbet is a fast, powerful type checker designed for Ruby.
43
+ > Built with 💜 at Stripe.
44
+
45
+ ![](https://sorbet.org/img/sorbet-logo-white-sparkles.svg){:relative_height="100"}
46
+
47
+ # Sorbet in RubyKaigi 2019
48
+ - <https://rubykaigi.org/2019/presentations/jez.html>
49
+ - <https://www.youtube.com/watch?v=odmlf_ezsBo>
50
+
51
+ ![](img/sorbet-in-rubykaigi-2019.png){:relative_width="50"}
52
+
53
+ # Sorbet was public released in GitHub
54
+ ![](img/sorbet-on-github.png){:relative_width="100"}
55
+
56
+ at 2019-06-20
57
+
58
+ <https://github.com/sorbet/sorbet>
59
+
60
+ # 「みんな型が欲しいっちゅってる」
61
+ ![](img/everybody-wants-type.png)
62
+
63
+ # やること
64
+ 1. `gem 'sorbet', :group => :development`
65
+ 1. 自明 `bundle install`
66
+ 1. `bundle exec srb init`
67
+ 1. `bundle exec srb tc`
68
+
69
+ <https://sorbet.org/docs/adopting>
70
+
71
+ # bundle exec srb init → OOM Killer
72
+ ![](img/srb-init-takes-huge-resources.png){:relative_width="100"}
73
+
74
+ # bundle exec srb init → 大量の .rbi
75
+ ```shell
76
+ $ ls sorbet/**/*.rbi | wc -l
77
+ 471
78
+ ```
79
+
80
+ # bundle exec srb typecheck めっちゃ警告
81
+ ```shell
82
+ $ docker-compose exec api bundle exec srb tc | wc -l
83
+ 14826
84
+ ```
85
+
86
+ # We have CLI option!
87
+ ```shell
88
+ $ bundle exec srb tc --typed=true
89
+ ```
90
+
91
+ <https://sorbet.org/docs/cli#overriding-strictness-levels>
92
+
93
+ # We have configuration yaml!
94
+ ```yaml
95
+ # -- foo.yaml --
96
+ true:
97
+ - foo.rb
98
+ ```
99
+
100
+ ```shell
101
+ $ bundle exec srb tc --typed-override=foo.yaml foo.rb
102
+ ```
103
+
104
+ <https://sorbet.org/docs/cli#overriding-strictness-levels>
105
+
106
+ # しかしこれは両立できない(現状は)
107
+ - 全ファイルの静的型解析を `ignore`
108
+ - 型注釈を書いたファイルは `true` 以上
109
+
110
+ ということができない!
111
+
112
+ ↓↓↓↓
113
+
114
+ 結果、全 `.rb` に対して `# typed: ignore` を書く?
115
+
116
+ # 末路
117
+ ![](img/tweet-unasuke-doukato.png){:relative_width="75"}
118
+
119
+ <https://twitter.com/yu_suke1994/status/1145998714533601280>
120
+
121
+ # 結論
122
+ ![](img/unasuke-pr-closed.png){:relative_width="100"}
123
+
124
+ はい……
125
+
126
+ # 理想
127
+ ![](img/sorbet-ideal.png){:relative_width="90"}
128
+
129
+ {::tag name="x-small"}
130
+ <https://github.com/unasuke/github-notification-reminder/commit/774205a>
131
+ {:/tag}
132
+
133
+ # 参考資料
134
+ - <https://sorbet.org>
135
+ - <https://soutaro.hatenablog.com/entry/2019/06/26/145305>
136
+ - <https://speakerdeck.com/soutaro/an-introduction-to-typed-ruby-programming>
metadata ADDED
@@ -0,0 +1,73 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-unasuke-omotesandorb-48
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - unasuke
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-07-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: "[表参道.rb #48 - connpass](https://omotesandorb.connpass.com/event/136761/)"
28
+ email:
29
+ - yusuke1994525@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - config.yaml
38
+ - img/D9zcUD3VUAA5jWt.jpeg
39
+ - img/everybody-wants-type.png
40
+ - img/icon_raw.jpg
41
+ - img/omotesandorb-connpass.png
42
+ - img/sorbet-ideal.png
43
+ - img/sorbet-in-rubykaigi-2019.png
44
+ - img/sorbet-on-github.png
45
+ - img/srb-init-takes-huge-resources.png
46
+ - img/tweet-unasuke-doukato.png
47
+ - img/tweet_holygrail_mechakucha.png
48
+ - img/unasuke-pr-closed.png
49
+ - pdf/omotesandorb-48-slide.pdf
50
+ - slide.md
51
+ homepage: http://slide.rabbit-shocker.org/authors/unasuke/omotesandorb-48/
52
+ licenses: []
53
+ metadata: {}
54
+ post_install_message:
55
+ rdoc_options: []
56
+ require_paths:
57
+ - lib
58
+ required_ruby_version: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ requirements: []
69
+ rubygems_version: 3.0.3
70
+ signing_key:
71
+ specification_version: 4
72
+ summary: 'omotesandorb #48'
73
+ test_files: []