rabbit-slide-oss-gate-workshop-tutorial-ruby 2026.8.5.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 +2 -0
- data/LICENSE +11 -0
- data/README.md +33 -0
- data/Rakefile +28 -0
- data/config.yaml +25 -0
- data/images/goal.svg +684 -0
- data/images/oss-gate-border.svg +745 -0
- data/images/oss-gate-goal.svg +717 -0
- data/images/oss-gate-icon.svg +73 -0
- data/images/oss-gate-pass-through.svg +957 -0
- data/images/oss-gate-support.svg +906 -0
- data/images/oss-gate-target.svg +753 -0
- data/images/oss-gate-watch.png +0 -0
- data/images/oss-gate-workshop.svg +722 -0
- data/images/target.svg +723 -0
- data/images/workshop.svg +689 -0
- data/pdf/workshop-tutorial-ruby-scenario.pdf +0 -0
- data/scenario.rab +655 -0
- data/theme.rb +5 -0
- metadata +86 -0
|
Binary file
|
data/scenario.rab
ADDED
|
@@ -0,0 +1,655 @@
|
|
|
1
|
+
= Rubyエコシステム\n開発入門\nワークショップ
|
|
2
|
+
|
|
3
|
+
: theme
|
|
4
|
+
.
|
|
5
|
+
|
|
6
|
+
= アイスブレイク:チャットに入ろう!
|
|
7
|
+
|
|
8
|
+
* ruby-jp Slack #oss_gate\n
|
|
9
|
+
((<URL:https://ruby-jp.github.io/>))
|
|
10
|
+
* 最初に↑の説明を読もう!
|
|
11
|
+
* すでに入っている人はまわりの人を助けよう!
|
|
12
|
+
* 今後もみんなと助け合える場所!
|
|
13
|
+
* 入ったら挨拶しよう!
|
|
14
|
+
* 終わったら今日の成果を自慢しよう!
|
|
15
|
+
|
|
16
|
+
= 目的
|
|
17
|
+
|
|
18
|
+
* Rubyエコシステムの健全性をキープ
|
|
19
|
+
* 今が悪いというわけではない
|
|
20
|
+
* 健全?
|
|
21
|
+
* たくさんのユーザー・それなりの新規開発者
|
|
22
|
+
* Ruby・gem開発者を増やしたい!
|
|
23
|
+
|
|
24
|
+
= 内容
|
|
25
|
+
|
|
26
|
+
* (('wait'))🙅開発ノウハウを伝授
|
|
27
|
+
* こう実装するといいよとか
|
|
28
|
+
* (('wait'))🙆開発を体験
|
|
29
|
+
* 初めてのバグレポート・機能提案とか
|
|
30
|
+
* 初めてのバグ修正とか
|
|
31
|
+
|
|
32
|
+
= 開発((*未*))経験の理由
|
|
33
|
+
|
|
34
|
+
* (数人の参加者に聞く)
|
|
35
|
+
* 予想:
|
|
36
|
+
* (('wait'))やったことがないから\n
|
|
37
|
+
なんとなく敷居が高いと感じる
|
|
38
|
+
|
|
39
|
+
= このワークショップでの「入門」
|
|
40
|
+
|
|
41
|
+
(('tag:center'))
|
|
42
|
+
(('tag:x-large'))
|
|
43
|
+
体験\n
|
|
44
|
+
(('note:体験してたいしたことはないとわかる→敷居が下がる'))
|
|
45
|
+
|
|
46
|
+
= ターゲット
|
|
47
|
+
|
|
48
|
+
# image
|
|
49
|
+
# src = images/target.svg
|
|
50
|
+
# relative_height = 100
|
|
51
|
+
|
|
52
|
+
= やりたいこと
|
|
53
|
+
|
|
54
|
+
# image
|
|
55
|
+
# src = images/goal.svg
|
|
56
|
+
# relative_height = 100
|
|
57
|
+
|
|
58
|
+
= 未参加者→参加者
|
|
59
|
+
|
|
60
|
+
# image
|
|
61
|
+
# src = images/workshop.svg
|
|
62
|
+
# relative_height = 100
|
|
63
|
+
|
|
64
|
+
= ワークショップの内容1
|
|
65
|
+
|
|
66
|
+
(('tag:center'))
|
|
67
|
+
(('tag:x-large'))
|
|
68
|
+
参加者のこと
|
|
69
|
+
|
|
70
|
+
= 立場一覧
|
|
71
|
+
|
|
72
|
+
* ビギナー
|
|
73
|
+
* サポーター
|
|
74
|
+
* サポートメンター
|
|
75
|
+
* 進行役
|
|
76
|
+
|
|
77
|
+
= ビギナー
|
|
78
|
+
|
|
79
|
+
* Rubyエコシステムの開発に参加したい
|
|
80
|
+
* でも参加したことはない
|
|
81
|
+
* Rubyエコシステムの開発に参加経験あり
|
|
82
|
+
* でもまだ自信がない
|
|
83
|
+
|
|
84
|
+
= サポーター
|
|
85
|
+
|
|
86
|
+
* ビギナーのサポート係
|
|
87
|
+
* Rubyエコシステム開発経験者
|
|
88
|
+
* 初参加でも大丈夫!
|
|
89
|
+
* 例:進行役がやることを随時説明
|
|
90
|
+
* 例:サポートメンターがサポート
|
|
91
|
+
|
|
92
|
+
= サポートメンター
|
|
93
|
+
|
|
94
|
+
* サポーターのサポート係
|
|
95
|
+
* サポーター経験者
|
|
96
|
+
* 会場各地でスポットサポート
|
|
97
|
+
* サポート例:
|
|
98
|
+
* うまくサポートできていない感…\n
|
|
99
|
+
→相談しよう!\n
|
|
100
|
+
(('note:サポーター1人で完璧にサポートしなくてよい!'))
|
|
101
|
+
|
|
102
|
+
= 進行役
|
|
103
|
+
|
|
104
|
+
* 進行と全体を気にかける係
|
|
105
|
+
|
|
106
|
+
= ワークショップの内容2
|
|
107
|
+
|
|
108
|
+
(('tag:center'))
|
|
109
|
+
(('tag:x-large'))
|
|
110
|
+
流れ
|
|
111
|
+
|
|
112
|
+
= 今日の流れのポイント
|
|
113
|
+
|
|
114
|
+
* 未経験者の最初の1歩に最適化
|
|
115
|
+
* ※Rubyエコシステムの開発方法はいろいろある
|
|
116
|
+
* ※やりたい事がある人は応相談
|
|
117
|
+
* ※基本的にこのやり方でやろう!
|
|
118
|
+
|
|
119
|
+
= 流れ
|
|
120
|
+
|
|
121
|
+
(1) 動かす
|
|
122
|
+
* Ruby本体の場合:\n
|
|
123
|
+
公式ドキュメント通りRubyをビルド・テスト
|
|
124
|
+
* gemの場合:((*ユーザーとして*))gemを動かす\n
|
|
125
|
+
(READMEとかのドキュメント通り動かす)
|
|
126
|
+
(2) ↑で気づいた事を開発元に\n
|
|
127
|
+
((*フィードバック*))
|
|
128
|
+
|
|
129
|
+
= 期待
|
|
130
|
+
|
|
131
|
+
* 普段は気づいていないだけで\n
|
|
132
|
+
実はフィードバックポイントが\n
|
|
133
|
+
あったことを((*体験*))して!
|
|
134
|
+
* ※ググったり生成AIに聞いて回避していない?\n
|
|
135
|
+
(('note:そんなときどうしたらよいかはワークショップ内で!'))
|
|
136
|
+
* フィードバックを((*体験*))して!
|
|
137
|
+
|
|
138
|
+
= ワークショップの内容3
|
|
139
|
+
|
|
140
|
+
(('tag:center'))
|
|
141
|
+
(('tag:x-large'))
|
|
142
|
+
動かす
|
|
143
|
+
|
|
144
|
+
= 動かす流れ
|
|
145
|
+
|
|
146
|
+
(('tag:center'))
|
|
147
|
+
(('note:(詳細は後述)'))
|
|
148
|
+
|
|
149
|
+
(1) 対象プロダクトを決める
|
|
150
|
+
(2) 作業メモを書く場所を用意
|
|
151
|
+
(3) 作業メモを書きながら\n
|
|
152
|
+
((*公式ドキュメント・README通り*))\n
|
|
153
|
+
動かす
|
|
154
|
+
|
|
155
|
+
= 対象プロダクト
|
|
156
|
+
|
|
157
|
+
* Ruby本体
|
|
158
|
+
* OSSのgem
|
|
159
|
+
|
|
160
|
+
= OSSとは
|
|
161
|
+
|
|
162
|
+
* オープンソースライセンスを\n
|
|
163
|
+
設定したソフトウェア
|
|
164
|
+
* オープンソースライセンス
|
|
165
|
+
* OSIがオープンソースを定義\n
|
|
166
|
+
(('note:OSI: Open Source Initiative'))
|
|
167
|
+
* OSIが定義を満たしたライセンスを承認
|
|
168
|
+
* 承認されたライセンスのリスト
|
|
169
|
+
* ((<URL:https://opensource.org/licenses/>))
|
|
170
|
+
|
|
171
|
+
= OSSかどうかの判断方法
|
|
172
|
+
|
|
173
|
+
* ライセンスを確認するだけ
|
|
174
|
+
* 承認されたライセンスを使っていればOSS
|
|
175
|
+
* OSS「っぽい」は存在しない
|
|
176
|
+
|
|
177
|
+
= 例:Ruby本体
|
|
178
|
+
|
|
179
|
+
* (('tag:x-small'))
|
|
180
|
+
((<URL:https://github.com/ruby/ruby/blob/master/COPYING.ja>))
|
|
181
|
+
* Rubyライセンス
|
|
182
|
+
* ((<URL:https://opensource.org/licenses/>))で検索
|
|
183
|
+
* (('wait'))ない!
|
|
184
|
+
* (('wait'))RubyはOSSじゃない!?
|
|
185
|
+
|
|
186
|
+
= Rubyライセンス
|
|
187
|
+
|
|
188
|
+
* オープンソースの定義は満たし…そう?
|
|
189
|
+
* ベースのArtisticライセンスは承認されている\n
|
|
190
|
+
(('note:いわくつきだけど'))
|
|
191
|
+
* でも、承認されていない
|
|
192
|
+
* 申請していないから\n
|
|
193
|
+
(('note:[OSS]RubyライセンスとOSI承認 - Matzにっき(2003-06-07)'))\n
|
|
194
|
+
(('note:((<URL:https://matz.rubyist.net/20030607.html#p06>))'))
|
|
195
|
+
* 2条項BSDライセンス(('note:(承認されている)'))との\n
|
|
196
|
+
デュアルライセンスなのでOSS!\n
|
|
197
|
+
(('note:前はGPLとのデュアルライセンスだった'))
|
|
198
|
+
|
|
199
|
+
= 対象プロダクト決め
|
|
200
|
+
|
|
201
|
+
* ビギナーが決める
|
|
202
|
+
* Ruby本体or使っているgemから選ぶ\n
|
|
203
|
+
(('note:Gemfileを眺めてみて!'))
|
|
204
|
+
* 難易度は気にしなくてよい!\n
|
|
205
|
+
(('note:サポーターがサポートするから!'))
|
|
206
|
+
* サポーターは↑をサポート
|
|
207
|
+
* 自分の知らないgemでもよい\n
|
|
208
|
+
(('note:ビギナーと一緒に悩んであげよう!'))
|
|
209
|
+
|
|
210
|
+
= 対象gem決めデモ
|
|
211
|
+
|
|
212
|
+
(('tag:center'))
|
|
213
|
+
(('tag:x-large'))
|
|
214
|
+
デモ
|
|
215
|
+
|
|
216
|
+
* 最近使っているgemは?
|
|
217
|
+
* ライセンス確認→OK!
|
|
218
|
+
* その中で一番ときめくのは?
|
|
219
|
+
* ではそれにしましょう!
|
|
220
|
+
|
|
221
|
+
= 動かすときのポイント
|
|
222
|
+
|
|
223
|
+
* 作業メモを書く
|
|
224
|
+
* 🔜メモを書く場所はこのあと作る
|
|
225
|
+
* なにかする毎に書く
|
|
226
|
+
* 例:ドキュメントを読み始めた
|
|
227
|
+
* 例:次のドキュメントを読み始めた
|
|
228
|
+
|
|
229
|
+
= 作業メモを書く場所を作る
|
|
230
|
+
|
|
231
|
+
(('tag:center'))
|
|
232
|
+
(('tag:x-large'))
|
|
233
|
+
デモ
|
|
234
|
+
|
|
235
|
+
(1) GitHub: oss-gate/workshop
|
|
236
|
+
(2) ↑にissueを作る
|
|
237
|
+
(3) 周囲のビギナーの人たちが\n
|
|
238
|
+
作ったissueにコメント
|
|
239
|
+
|
|
240
|
+
= 作業メモの例
|
|
241
|
+
|
|
242
|
+
ドキュメント通りインストールしたけど
|
|
243
|
+
失敗した。
|
|
244
|
+
|
|
245
|
+
= よりよい作業メモの例
|
|
246
|
+
|
|
247
|
+
https://... のインストール手順をなぞろう!
|
|
248
|
+
(↑後から再度参照できるようにURLも書く)
|
|
249
|
+
gem installでインストールできるはずなのに失敗した
|
|
250
|
+
(↑期待する結果)
|
|
251
|
+
|
|
252
|
+
$ gem install XXX(←なにをしたか)
|
|
253
|
+
(...コマンドの実行結果...)
|
|
254
|
+
(↑実際の結果)
|
|
255
|
+
XXX is not found
|
|
256
|
+
↑というようにパッケージがないと言われる
|
|
257
|
+
|
|
258
|
+
= ユーザーとして動かす
|
|
259
|
+
|
|
260
|
+
(('tag:center'))
|
|
261
|
+
(('tag:x-large'))
|
|
262
|
+
デモ
|
|
263
|
+
|
|
264
|
+
(1) 公式サイトを開く
|
|
265
|
+
(2) 作業メモを書く
|
|
266
|
+
(3) 概要を読む
|
|
267
|
+
(4) 作業メモを書く
|
|
268
|
+
(5) ...
|
|
269
|
+
|
|
270
|
+
= 作業開始!
|
|
271
|
+
|
|
272
|
+
(('tag:center'))
|
|
273
|
+
(('tag:x-large'))
|
|
274
|
+
●時▲分まで!
|
|
275
|
+
|
|
276
|
+
(1) 公式サイトを開く
|
|
277
|
+
(2) 作業メモを書く
|
|
278
|
+
(3) 概要を読む
|
|
279
|
+
(4) 作業メモを書く
|
|
280
|
+
(5) ...
|
|
281
|
+
|
|
282
|
+
= ふりかえり1
|
|
283
|
+
|
|
284
|
+
(('tag:center'))
|
|
285
|
+
(('tag:x-large'))
|
|
286
|
+
…●時▲分!
|
|
287
|
+
|
|
288
|
+
* これまでの活動を見直す機会
|
|
289
|
+
|
|
290
|
+
* 目的:
|
|
291
|
+
* 他の人の視点での考え方を知る
|
|
292
|
+
* 作業ログが役に立つことを実感
|
|
293
|
+
|
|
294
|
+
= ふりかえり1:デモ
|
|
295
|
+
|
|
296
|
+
(('tag:center'))
|
|
297
|
+
(('tag:x-large'))
|
|
298
|
+
デモ
|
|
299
|
+
|
|
300
|
+
* ビギナー:
|
|
301
|
+
* 作業メモを読む
|
|
302
|
+
* サポーター:
|
|
303
|
+
* 気になることをビギナーに質問
|
|
304
|
+
* フィードバックポイントを確認
|
|
305
|
+
* 完了→issueにコメント
|
|
306
|
+
|
|
307
|
+
= ふりかえり1:進め方
|
|
308
|
+
|
|
309
|
+
* サポーターを他の人に交代
|
|
310
|
+
* 対象ビギナーの作業ログを\n
|
|
311
|
+
ディスプレイに映す
|
|
312
|
+
* ビギナーが作業メモを読む
|
|
313
|
+
* 時間が余ったら:
|
|
314
|
+
* 近くの他のビギナーにも説明
|
|
315
|
+
|
|
316
|
+
= 休憩
|
|
317
|
+
|
|
318
|
+
(('tag:center'))
|
|
319
|
+
(('tag:x-large'))
|
|
320
|
+
●時▲分まで!
|
|
321
|
+
|
|
322
|
+
= 現状確認
|
|
323
|
+
|
|
324
|
+
(1) (('del:ユーザーとして動かす'))
|
|
325
|
+
(2) (('del:ふりかえり1'))
|
|
326
|
+
(3) (('del:フィードバックポイントを発見!'))
|
|
327
|
+
(4) (('wait'))↑を((*フィードバック*))
|
|
328
|
+
|
|
329
|
+
= フィードバック
|
|
330
|
+
|
|
331
|
+
* upstream(開発元)に\n
|
|
332
|
+
うまくいかなかったことを報告
|
|
333
|
+
* ここで詰まった、を伝える
|
|
334
|
+
* こうだったらよかった、を伝える
|
|
335
|
+
|
|
336
|
+
= 報告方法
|
|
337
|
+
|
|
338
|
+
(1) 整理する
|
|
339
|
+
* 自分の考えが文章になればOK
|
|
340
|
+
(2) (('wait'))((*開発者にとって*))\n
|
|
341
|
+
わかりやすくなるように編集
|
|
342
|
+
(3) (('wait'))適切な場所に報告
|
|
343
|
+
* GitHubのissueとか
|
|
344
|
+
* Ruby本体なら((<URL:https://bugs.ruby-lang.org/>))
|
|
345
|
+
|
|
346
|
+
= 1. 整理する
|
|
347
|
+
|
|
348
|
+
* 自分で自分の気持ちを理解
|
|
349
|
+
* 自分が読んで理解できる文章に\n
|
|
350
|
+
まとめられれば理解できている
|
|
351
|
+
* 自分が理解できていないことは\n
|
|
352
|
+
開発者にも伝えられない!
|
|
353
|
+
* 作業メモに追記→サポーター確認
|
|
354
|
+
|
|
355
|
+
(('note:サポーターへ:メモ(断片)の文書化を手伝って'))\n
|
|
356
|
+
(('note:例:考えを整理できるような質問をする'))
|
|
357
|
+
|
|
358
|
+
= 整理方法
|
|
359
|
+
|
|
360
|
+
(('tag:center'))
|
|
361
|
+
(('tag:x-large'))
|
|
362
|
+
デモ
|
|
363
|
+
|
|
364
|
+
* 作業メモを開く
|
|
365
|
+
* フィードバック対象を決める
|
|
366
|
+
* 自分の気持ちを作業メモに追記
|
|
367
|
+
* サポーターに確認依頼
|
|
368
|
+
|
|
369
|
+
= 2. 編集する
|
|
370
|
+
|
|
371
|
+
* ((*開発者にとって*))\n
|
|
372
|
+
わかりやすくなるように編集
|
|
373
|
+
* 報告方針をまとめているgemもある\n
|
|
374
|
+
(('note:例:GitHubにあるCONTRIBUTING.md'))
|
|
375
|
+
* 作業メモに追記→サポーターに確認
|
|
376
|
+
|
|
377
|
+
(('note:サポーターへ:リーダブル化を手伝って'))\n
|
|
378
|
+
(('note:例:自分が開発者ならこう読めると開発者視点を伝える'))\n
|
|
379
|
+
|
|
380
|
+
= 編集の仕方
|
|
381
|
+
|
|
382
|
+
* ポイント
|
|
383
|
+
* ((*相手が*))わかるように書く
|
|
384
|
+
* 例:省略しない(具体的に書く)
|
|
385
|
+
|
|
386
|
+
= 省略例
|
|
387
|
+
|
|
388
|
+
# blockquote
|
|
389
|
+
|
|
390
|
+
インストールしました。
|
|
391
|
+
|
|
392
|
+
動きませんでした。
|
|
393
|
+
|
|
394
|
+
どうしたらいいでしょうか?
|
|
395
|
+
|
|
396
|
+
= 省略しない例
|
|
397
|
+
|
|
398
|
+
# blockquote
|
|
399
|
+
|
|
400
|
+
↓でインストール
|
|
401
|
+
|
|
402
|
+
$ gem install ...
|
|
403
|
+
(...実行結果...)
|
|
404
|
+
|
|
405
|
+
↑のように失敗しました。
|
|
406
|
+
|
|
407
|
+
環境:Ubuntu 26.04 amd64
|
|
408
|
+
|
|
409
|
+
= なぜ省略しないか
|
|
410
|
+
|
|
411
|
+
* 相手は私を知らないから
|
|
412
|
+
* 省略すると((*想像*))しないといけない
|
|
413
|
+
* だいたい((*想像は外れる*))
|
|
414
|
+
* 話が噛み合わない!
|
|
415
|
+
|
|
416
|
+
= 省略しないとは
|
|
417
|
+
|
|
418
|
+
* 詳細を書く
|
|
419
|
+
* 実行したコマンド・実行結果
|
|
420
|
+
* やったことを書く
|
|
421
|
+
* ((*やっていないこと*))を書く
|
|
422
|
+
* 期待した結果を書く
|
|
423
|
+
|
|
424
|
+
= 編集方法
|
|
425
|
+
|
|
426
|
+
(('tag:center'))
|
|
427
|
+
(('tag:x-large'))
|
|
428
|
+
デモ
|
|
429
|
+
|
|
430
|
+
* 作業メモを開く
|
|
431
|
+
* 自分の気持ちを開発者に伝わるように\n
|
|
432
|
+
まとめて作業メモに追記
|
|
433
|
+
* サポーターに確認依頼
|
|
434
|
+
|
|
435
|
+
= 3. 報告する
|
|
436
|
+
|
|
437
|
+
* 適切な場所に報告
|
|
438
|
+
* プロダクトによって報告場所は違う
|
|
439
|
+
* サポーターへ
|
|
440
|
+
* 報告に二の足を踏んでいる人の\n
|
|
441
|
+
背中を押してあげて\n
|
|
442
|
+
(('note:例:開発者視点を伝える:自分ならこの報告をもらったら助かる'))
|
|
443
|
+
|
|
444
|
+
= 報告方法
|
|
445
|
+
|
|
446
|
+
(('tag:center'))
|
|
447
|
+
(('tag:x-large'))
|
|
448
|
+
デモ
|
|
449
|
+
|
|
450
|
+
* 報告方法を探す
|
|
451
|
+
* サポーターに後押ししてもらう
|
|
452
|
+
* まとめた報告内容を報告
|
|
453
|
+
|
|
454
|
+
= 報告
|
|
455
|
+
|
|
456
|
+
(('tag:center'))
|
|
457
|
+
(('tag:x-large'))
|
|
458
|
+
●時▲分まで!
|
|
459
|
+
|
|
460
|
+
(1) 整理する
|
|
461
|
+
(2) 開発者にとってわかりやすくなるように編集する
|
|
462
|
+
(3) 適切な場所に報告する
|
|
463
|
+
(4) 報告したことをチャットで自慢!\n
|
|
464
|
+
* ruby-jp Slackの#oss_gate
|
|
465
|
+
|
|
466
|
+
= ふりかえり2:デモ
|
|
467
|
+
|
|
468
|
+
(('tag:center'))
|
|
469
|
+
(('tag:x-large'))
|
|
470
|
+
デモ
|
|
471
|
+
|
|
472
|
+
* ビギナー:
|
|
473
|
+
* 作業メモを読む
|
|
474
|
+
* サポーター:
|
|
475
|
+
* ((*よかったことをよい!と言う*))
|
|
476
|
+
* 気になることをビギナーに質問
|
|
477
|
+
* 完了→issueにコメント
|
|
478
|
+
|
|
479
|
+
= ふりかえり2:進め方
|
|
480
|
+
|
|
481
|
+
* サポーターを他の人に交代
|
|
482
|
+
* 対象ビギナーの作業ログを\n
|
|
483
|
+
ディスプレイに映す
|
|
484
|
+
* ビギナーが作業メモを読む
|
|
485
|
+
* 時間が余ったら:
|
|
486
|
+
* 近くの他のビギナーにも説明
|
|
487
|
+
|
|
488
|
+
= Rubyエコシステム開発関連情報
|
|
489
|
+
|
|
490
|
+
* 生成AI
|
|
491
|
+
|
|
492
|
+
= 生成AIとRubyエコシステム開発
|
|
493
|
+
|
|
494
|
+
* Ruby開発者は結構使っている
|
|
495
|
+
* Ruby開発者以外が使ってPRするのはあまり見ない
|
|
496
|
+
* gemはそれぞれでいろいろありそう
|
|
497
|
+
* よい付き合い方はまだ探り探り
|
|
498
|
+
* これは困るというのは見えてきている
|
|
499
|
+
* ポイント:\n
|
|
500
|
+
自分も開発チームの1人という振る舞い
|
|
501
|
+
|
|
502
|
+
= 生成AIで報告
|
|
503
|
+
|
|
504
|
+
* 生成された報告は冗長なことが多い
|
|
505
|
+
* 無用な冗長さは開発者を疲弊させる
|
|
506
|
+
* 開発チームの1人としてどうしたい?
|
|
507
|
+
* 必須:報告前に報告者がレビュー!
|
|
508
|
+
* 報告者がそもそも理解できていること
|
|
509
|
+
* 開発者に聞かれたら自分で答えられるくらい
|
|
510
|
+
* 報告者が不要な情報を減らす
|
|
511
|
+
|
|
512
|
+
= 生成AIでプルリクエスト
|
|
513
|
+
|
|
514
|
+
* 大きなプルリクエストになりがち
|
|
515
|
+
* 大きなプルリクエストは開発者を疲弊させる
|
|
516
|
+
* 開発チームの1人としてどうしたい?
|
|
517
|
+
* 必須:作成前に作成者がレビュー!
|
|
518
|
+
* 詳細を理解する
|
|
519
|
+
* レビュー可能なサイズにする
|
|
520
|
+
|
|
521
|
+
= プルリクエストとレビュー
|
|
522
|
+
|
|
523
|
+
* 狙いの1つ:関係者間での知識の共有
|
|
524
|
+
* 作成者が未理解→知識の共有は進まない
|
|
525
|
+
* 作成者抜きで開発者が直接生成AIを使えばよい
|
|
526
|
+
* 開発チームの1人としてどうしたい?
|
|
527
|
+
* 学んで次のプルリクエストに活かせる?
|
|
528
|
+
* 学んだことを他の人に伝えられる?
|
|
529
|
+
|
|
530
|
+
= 生成AIとライセンス
|
|
531
|
+
|
|
532
|
+
* 機械が生成したものに著作権は発生しない
|
|
533
|
+
* 著作権があるコードの複製を生成しうる
|
|
534
|
+
* そのコードのライセンスが大事
|
|
535
|
+
* ライセンスを守れれば再利用可能
|
|
536
|
+
* ライセンスの問題がないことは\n
|
|
537
|
+
プルリクエスト作成者が保証する
|
|
538
|
+
|
|
539
|
+
= 生成AIとコミット
|
|
540
|
+
|
|
541
|
+
* どのツールを使ったかの情報を残す
|
|
542
|
+
* Gitなら(({Generated-By: ...}))などで記録
|
|
543
|
+
* なにか問題があったときに調べられるように
|
|
544
|
+
|
|
545
|
+
= 生成AIとRubyエコシステム開発
|
|
546
|
+
|
|
547
|
+
* 生成したものを丸投げはダメ
|
|
548
|
+
* 生成したものを詳細まで理解した上で活用
|
|
549
|
+
|
|
550
|
+
= まとめ
|
|
551
|
+
|
|
552
|
+
* 今日やったことを再確認
|
|
553
|
+
* 明日からのことを確認
|
|
554
|
+
|
|
555
|
+
= 目的の確認
|
|
556
|
+
|
|
557
|
+
(('tag:center'))
|
|
558
|
+
(('tag:large'))
|
|
559
|
+
Rubyエコシステム開発((*未*))経験者\n
|
|
560
|
+
↓\n
|
|
561
|
+
Rubyエコシステム開発 経験者
|
|
562
|
+
|
|
563
|
+
= やったこと
|
|
564
|
+
|
|
565
|
+
(('tag:center'))
|
|
566
|
+
(('tag:large'))
|
|
567
|
+
Rubyエコシステム開発を体験する
|
|
568
|
+
|
|
569
|
+
(1) 動かす
|
|
570
|
+
(2) フィードバック
|
|
571
|
+
|
|
572
|
+
= 体験時のポイント
|
|
573
|
+
|
|
574
|
+
(('tag:center'))
|
|
575
|
+
(('tag:x-large'))
|
|
576
|
+
常にメモ
|
|
577
|
+
|
|
578
|
+
= 常にメモの理由
|
|
579
|
+
|
|
580
|
+
* 詰まったところに気づくため
|
|
581
|
+
* いつもはスルーしていない?
|
|
582
|
+
* 実はフィードバックポイント!
|
|
583
|
+
|
|
584
|
+
= 詰まったところ
|
|
585
|
+
|
|
586
|
+
* Rubyエコシステム開発参加の((*チャンス*))!
|
|
587
|
+
* ポジティブに捉えてみよう
|
|
588
|
+
* 実際に参加して楽しかった?
|
|
589
|
+
* 直ると次の人は((*うまくいく*))
|
|
590
|
+
* 気分がいいね!
|
|
591
|
+
|
|
592
|
+
= 気づいた?
|
|
593
|
+
|
|
594
|
+
* コードを書くだけが\n
|
|
595
|
+
Rubyエコシステム開発参加方法じゃない
|
|
596
|
+
* 使いはじめのユーザーだから\n
|
|
597
|
+
できることもある
|
|
598
|
+
* やり方を知ればやれる
|
|
599
|
+
* 明日からもやってみよう!
|
|
600
|
+
|
|
601
|
+
= 明日からのやり方
|
|
602
|
+
|
|
603
|
+
* 自分が使っている他のgemでも\n
|
|
604
|
+
やってみよう
|
|
605
|
+
(1) 動かす
|
|
606
|
+
(2) 気になったことをまとめる
|
|
607
|
+
(3) フィードバック
|
|
608
|
+
* (('wait'))↑失敗が怖い?
|
|
609
|
+
|
|
610
|
+
= Rubyエコシステムと失敗
|
|
611
|
+
|
|
612
|
+
* そもそも失敗と認識されない
|
|
613
|
+
* 少なくとも1発アウト!はほぼない
|
|
614
|
+
* 新規開発者は基本的にWelcome
|
|
615
|
+
* 失敗しても根に持たれない
|
|
616
|
+
* 失敗→改善:改善後を評価
|
|
617
|
+
|
|
618
|
+
(('wait'))
|
|
619
|
+
(('tag:center'))
|
|
620
|
+
↓\n
|
|
621
|
+
明日からオススメ方法をTry!
|
|
622
|
+
|
|
623
|
+
= メッセージ
|
|
624
|
+
|
|
625
|
+
(('tag:center'))
|
|
626
|
+
(('tag:x-large'))
|
|
627
|
+
不安がらずに\n
|
|
628
|
+
Rubyエコシステムの\n
|
|
629
|
+
開発を\n
|
|
630
|
+
楽しんで!
|
|
631
|
+
|
|
632
|
+
= 来てよかった!と思ったら
|
|
633
|
+
|
|
634
|
+
* 次回はサポーターとして参加!
|
|
635
|
+
* 次回をまわりに継続宣伝!
|
|
636
|
+
* #oss_gateで他の人をサポート
|
|
637
|
+
|
|
638
|
+
= おねがい
|
|
639
|
+
|
|
640
|
+
* 今日のフィードバックを!
|
|
641
|
+
* 次に活かしたい
|
|
642
|
+
* この後すぐ
|
|
643
|
+
* アンケート記入
|
|
644
|
+
* アンケート結果をみんなで確認
|
|
645
|
+
|
|
646
|
+
= アンケートの回答方法
|
|
647
|
+
|
|
648
|
+
(1) (('tag:x-small'))github.com/oss-gate/workshop をfork
|
|
649
|
+
(2) (('tag:x-small'))git clone git@github.com:#{GITHUB_ID}/workshop.git
|
|
650
|
+
(3) (('tag:x-small'))tutorial/retrospectives/#{YYYY}-#{MM}-#{DD}-ruby-#{LOCATION}
|
|
651
|
+
* cp (('tag:x-small'))beginner.yaml beginner-#{GITHUB_ID}.yaml
|
|
652
|
+
* cp (('tag:x-small'))supporter.yaml supporter-#{GITHUB_ID}.yaml
|
|
653
|
+
(4) (('tag:x-small'))git switch -c retrospective
|
|
654
|
+
(5) (('tag:x-small'))git add → git commit → git push
|
|
655
|
+
(6) (('tag:x-small'))github.com/#{GITHUB_ID}/workshopを開いて「Pull request」
|