rabbit-slide-unasuke-omotesandorb-48 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.md +24 -0
- data/Rakefile +17 -0
- data/config.yaml +19 -0
- data/img/D9zcUD3VUAA5jWt.jpeg +0 -0
- data/img/everybody-wants-type.png +0 -0
- data/img/icon_raw.jpg +0 -0
- data/img/omotesandorb-connpass.png +0 -0
- data/img/sorbet-ideal.png +0 -0
- data/img/sorbet-in-rubykaigi-2019.png +0 -0
- data/img/sorbet-on-github.png +0 -0
- data/img/srb-init-takes-huge-resources.png +0 -0
- data/img/tweet-unasuke-doukato.png +0 -0
- data/img/tweet_holygrail_mechakucha.png +0 -0
- data/img/unasuke-pr-closed.png +0 -0
- data/pdf/omotesandorb-48-slide.pdf +0 -0
- data/slide.md +136 -0
- metadata +73 -0
checksums.yaml
ADDED
@@ -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
|
data/README.md
ADDED
@@ -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
|
+
|
data/Rakefile
ADDED
@@ -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
|
data/config.yaml
ADDED
@@ -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
|
data/img/icon_raw.jpg
ADDED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/slide.md
ADDED
@@ -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
|
+
{:relative_width="24" align="right" relative_margin_right="-10" relative_margin_top="42"}
|
26
|
+
|
27
|
+
# 参加表明
|
28
|
+
{:relative_width="100"}
|
29
|
+
|
30
|
+
- ~~GitHubが落ちるときの話~~
|
31
|
+
- Sorbetを~~applicationに導入して~~試してみる話
|
32
|
+
|
33
|
+
# 型
|
34
|
+
{:relative_width="85"}
|
35
|
+
|
36
|
+
<https://twitter.com/HolyGrail/status/1143030647121780737>
|
37
|
+
|
38
|
+
# 型
|
39
|
+
{:relative_width="100"}
|
40
|
+
|
41
|
+
# Sorbet
|
42
|
+
> Sorbet is a fast, powerful type checker designed for Ruby.
|
43
|
+
> Built with 💜 at Stripe.
|
44
|
+
|
45
|
+
{: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
|
+
{:relative_width="50"}
|
52
|
+
|
53
|
+
# Sorbet was public released in GitHub
|
54
|
+
{:relative_width="100"}
|
55
|
+
|
56
|
+
at 2019-06-20
|
57
|
+
|
58
|
+
<https://github.com/sorbet/sorbet>
|
59
|
+
|
60
|
+
# 「みんな型が欲しいっちゅってる」
|
61
|
+

|
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
|
+
{: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
|
+
{:relative_width="75"}
|
118
|
+
|
119
|
+
<https://twitter.com/yu_suke1994/status/1145998714533601280>
|
120
|
+
|
121
|
+
# 結論
|
122
|
+
{:relative_width="100"}
|
123
|
+
|
124
|
+
はい……
|
125
|
+
|
126
|
+
# 理想
|
127
|
+
{: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: []
|