Rabbit Slide Show

OSS Gateワークショップ(チュートリアル)Ruby版

2026-08-05

Description

OSS Gateワークショップ(チュートリアル)Ruby版の説明。

スライドは使い方にあわせて次のどれかを使います。

  • [ソース](scenario.rab):ローカルで[Rabbit](https://rabbit-shocker.org/)を使って表示するとき
  • [Rabbit Slide Show](https://slide.rabbit-shocker.org/authors/oss-gate/workshop-tutorial-ruby/):Webブラウザーで表示するとき(Rabbitを用意する必要はない)
  • [PDF](https://slide.rabbit-shocker.org/authors/oss-gate/workshop-tutorial-ruby/scenario.pdf):ローカルでPDFビューアーを使って表示する時

Text

Page: 1

Rubyエコシステム
開発入門
ワークショップ
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 2

アイスブレイク:チャットに入ろう!
✓ ruby-jp Slack #oss_gate
https://ruby-jp.github.io/
✓ 最初に↑の説明を読もう!
✓ すでに入っている人はまわりの人を助けよう!
✓ 今後もみんなと助け合える場所!
✓ 入ったら挨拶しよう!
✓ 終わったら今日の成果を自慢しよう!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 3

目的
✓ Rubyエコシステムの健全性をキープ
✓ 今が悪いというわけではない
✓ 健全?
✓ たくさんのユーザー・それなりの新規開発者
✓ Ruby・gem開発者を増やしたい!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 4

内容
🙅開発ノウハウを伝授
✓ 🙆開発を体験
✓
✓ こう実装するといいよとか
✓ 初めてのバグレポート・機能提案とか
✓ 初めてのバグ修正とか
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 5

開発未経験の理由
✓ (数人の参加者に聞く)
✓ 予想:
✓ やったことがないから
なんとなく敷居が高いと感じる
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 6

このワークショップでの「入門」
体験
体験してたいしたことはないとわかる→敷居が下がる
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 7

ターゲット
活発
自信ない
Rubyエ
コシス
テム開
未参加者
発 参加者
興味あり
興味なし
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 8

やりたいこと
活発
自信ない
Rubyエ
コシス
テム開
未参加者
発 参加者
興味あり
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 9

未参加者→参加者
活発
自信ない
Rubyエ
コシス
テム開
未参加者
発 参加者
興味あり
ワークショップで実現
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 10

ワークショップの内容1
参加者のこと
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 11

立場一覧
✓ ビギナー
✓ サポーター
✓ サポートメンター
✓ 進行役
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 12

ビギナー
✓ Rubyエコシステムの開発に参加したい
✓ でも参加したことはない
✓ Rubyエコシステムの開発に参加経験あり
✓ でもまだ自信がない
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 13

サポーター
✓ ビギナーのサポート係
✓ Rubyエコシステム開発経験者
✓ 初参加でも大丈夫!
✓ 例:進行役がやることを随時説明
✓ 例:サポートメンターがサポート
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 14

サポートメンター
✓ サポーターのサポート係
✓ サポーター経験者
✓ 会場各地でスポットサポート
✓ サポート例:
✓ うまくサポートできていない感…
→相談しよう!
サポーター1人で完璧にサポートしなくてよい!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 15

進行役
✓ 進行と全体を気にかける係
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 16

ワークショップの内容2
流れ
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 17

今日の流れのポイント
✓ 未経験者の最初の1歩に最適化
✓ ※Rubyエコシステムの開発方法はいろいろある
✓ ※やりたい事がある人は応相談
✓ ※基本的にこのやり方でやろう!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 18

流れ
1. 動かす
✓ Ruby本体の場合:
公式ドキュメント通りRubyをビルド・テスト
✓ gemの場合:ユーザーとしてgemを動かす
(READMEとかのドキュメント通り動かす)
2. ↑で気づいた事を開発元に
フィードバック
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 19

期待
✓ 普段は気づいていないだけで
実はフィードバックポイントが
あったことを体験して!
✓ ※ググったり生成AIに聞いて回避していない?
そんなときどうしたらよいかはワークショップ内で!
✓ フィードバックを体験して!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 20

ワークショップの内容3
動かす
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 21

動かす流れ
(詳細は後述)
1. 対象プロダクトを決める
2. 作業メモを書く場所を用意
3. 作業メモを書きながら
公式ドキュメント・README通り
動かす
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 22

対象プロダクト
✓ Ruby本体
✓ OSSのgem
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 23

OSSとは
✓ オープンソースライセンスを
設定したソフトウェア
✓ オープンソースライセンス
✓ OSIがオープンソースを定義
OSI: Open Source Initiative
✓ OSIが定義を満たしたライセンスを承認
✓ 承認されたライセンスのリスト
✓ https://opensource.org/licenses/
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 24

OSSかどうかの判断方法
✓ ライセンスを確認するだけ
✓ 承認されたライセンスを使っていればOSS
✓ OSS「っぽい」は存在しない
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 25

例:Ruby本体
✓ https://github.com/ruby/ruby/blob/master/COPYING.ja
✓ Rubyライセンス
✓ https://opensource.org/licenses/で検索
✓ ない!
✓ RubyはOSSじゃない!?
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 26

Rubyライセンス
✓ オープンソースの定義は満たし…そう?
✓ ベースのArtisticライセンスは承認されている
いわくつきだけど
✓ でも、承認されていない
✓ 申請していないから
[OSS]RubyライセンスとOSI承認 - Matzにっき(2003-06-07)
https://matz.rubyist.net/20030607.html#p06
✓ 2条項BSDライセンス(承認されている)との
デュアルライセンスなのでOSS!
前はGPLとのデュアルライセンスだった
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 27

対象プロダクト決め
✓ ビギナーが決める
✓ Ruby本体or使っているgemから選ぶ
Gemfileを眺めてみて!
✓ 難易度は気にしなくてよい!
サポーターがサポートするから!
✓ サポーターは↑をサポート
✓ 自分の知らないgemでもよい
ビギナーと一緒に悩んであげよう!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 28

対象gem決めデモ
デモ
✓ 最近使っているgemは?
✓ ライセンス確認→OK!
✓ その中で一番ときめくのは?
✓ ではそれにしましょう!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 29

動かすときのポイント
✓ 作業メモを書く
✓
🔜メモを書く場所はこのあと作る
✓ なにかする毎に書く
✓ 例:ドキュメントを読み始めた
✓ 例:次のドキュメントを読み始めた
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 30

作業メモを書く場所を作る
デモ
1. GitHub: oss-gate/workshop
2. ↑にissueを作る
3. 周囲のビギナーの人たちが
作ったissueにコメント
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 31

作業メモの例
ドキュメント通りインストールしたけど
失敗した。
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 32

よりよい作業メモの例
https://... のインストール手順をなぞろう!
(↑後から再度参照できるようにURLも書く)
gem installでインストールできるはずなのに失敗した
(↑期待する結果)
$ gem install XXX(←なにをしたか)
(...コマンドの実行結果...)
(↑実際の結果)
XXX is not found
↑というようにパッケージがないと言われる
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 33

ユーザーとして動かす
デモ
1. 公式サイトを開く
2. 作業メモを書く
3. 概要を読む
4. 作業メモを書く
5. ...
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 34

作業開始!
●時▲分まで!
1. 公式サイトを開く
2. 作業メモを書く
3. 概要を読む
4. 作業メモを書く
5. ...
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 35

ふりかえり1
…●時▲分!
✓ これまでの活動を見直す機会
✓ 目的:
✓ 他の人の視点での考え方を知る
✓ 作業ログが役に立つことを実感
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 36

ふりかえり1:デモ
デモ
✓ ビギナー:
✓ 作業メモを読む
✓ サポーター:
✓ 気になることをビギナーに質問
✓ フィードバックポイントを確認
✓ 完了→issueにコメント
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 37

ふりかえり1:進め方
✓ サポーターを他の人に交代
✓ 対象ビギナーの作業ログを
ディスプレイに映す
✓ ビギナーが作業メモを読む
✓ 時間が余ったら:
✓ 近くの他のビギナーにも説明
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 38

休憩
●時▲分まで!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 39

現状確認
1. ユーザーとして動かす
2. ふりかえり1
3. フィードバックポイントを発見!
4. ↑をフィードバック
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 40

フィードバック
✓ upstream(開発元)に
うまくいかなかったことを報告
✓ ここで詰まった、を伝える
✓ こうだったらよかった、を伝える
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 41

報告方法
1. 整理する
✓ 自分の考えが文章になればOK
2. 開発者にとって
わかりやすくなるように編集
3. 適切な場所に報告
✓ GitHubのissueとか
✓ Ruby本体ならhttps://bugs.ruby-lang.org/
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 42

1. 整理する
✓ 自分で自分の気持ちを理解
✓ 自分が読んで理解できる文章に
まとめられれば理解できている
✓ 自分が理解できていないことは
開発者にも伝えられない!
✓ 作業メモに追記→サポーター確認
サポーターへ:メモ(断片)の文書化を手伝って
例:考えを整理できるような質問をする
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 43

整理方法
デモ
✓ 作業メモを開く
✓ フィードバック対象を決める
✓ 自分の気持ちを作業メモに追記
✓ サポーターに確認依頼
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 44

2. 編集する
✓ 開発者にとって
わかりやすくなるように編集
✓ 報告方針をまとめているgemもある
例:GitHubにあるCONTRIBUTING.md
✓ 作業メモに追記→サポーターに確認
サポーターへ:リーダブル化を手伝って
例:自分が開発者ならこう読めると開発者視点を伝える
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 45

編集の仕方
✓ ポイント
✓ 相手がわかるように書く
✓ 例:省略しない(具体的に書く)
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 46

省略例
インストールしました。
動きませんでした。
どうしたらいいでしょうか?
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 47

省略しない例
↓でインストール
$ gem install ...
(...実行結果...)
↑のように失敗しました。
環境:Ubuntu 26.04 amd64
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 48

なぜ省略しないか
✓ 相手は私を知らないから
✓ 省略すると想像しないといけない
✓ だいたい想像は外れる
✓ 話が噛み合わない!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 49

省略しないとは
✓ 詳細を書く
✓ 実行したコマンド・実行結果
✓ やったことを書く
✓ やっていないことを書く
✓ 期待した結果を書く
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 50

編集方法
デモ
✓ 作業メモを開く
✓ 自分の気持ちを開発者に伝わるように
まとめて作業メモに追記
✓ サポーターに確認依頼
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 51

3. 報告する
✓ 適切な場所に報告
✓ プロダクトによって報告場所は違う
✓ サポーターへ
✓ 報告に二の足を踏んでいる人の
背中を押してあげて
例:開発者視点を伝える:自分ならこの報告をもらったら助かる
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 52

報告方法
デモ
✓ 報告方法を探す
✓ サポーターに後押ししてもらう
✓ まとめた報告内容を報告
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 53

報告
●時▲分まで!
1. 整理する
2. 開発者にとってわかりやすくなるように
編集する
3. 適切な場所に報告する
4. 報告したことをチャットで自慢!
✓ ruby-jp Slackの#oss_gate
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 54

ふりかえり2:デモ
デモ
✓ ビギナー:
✓ 作業メモを読む
✓ サポーター:
✓ よかったことをよい!と言う
✓ 気になることをビギナーに質問
✓ 完了→issueにコメント
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 55

ふりかえり2:進め方
✓ サポーターを他の人に交代
✓ 対象ビギナーの作業ログを
ディスプレイに映す
✓ ビギナーが作業メモを読む
✓ 時間が余ったら:
✓ 近くの他のビギナーにも説明
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 56

Rubyエコシステム開発関連情報
✓ 生成AI
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 57

生成AIとRubyエコシステム開発
✓ Ruby開発者は結構使っている
✓ Ruby開発者以外が使ってPRするのはあまり見ない
✓ gemはそれぞれでいろいろありそう
✓ よい付き合い方はまだ探り探り
✓ これは困るというのは見えてきている
✓ ポイント:
自分も開発チームの1人という振る舞い
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 58

生成AIで報告
✓ 生成された報告は冗長なことが多い
✓ 無用な冗長さは開発者を疲弊させる
✓ 開発チームの1人としてどうしたい?
✓ 必須:報告前に報告者がレビュー!
✓ 報告者がそもそも理解できていること
✓ 開発者に聞かれたら自分で答えられるくらい
✓ 報告者が不要な情報を減らす
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 59

生成AIでプルリクエスト
✓ 大きなプルリクエストになりがち
✓ 大きなプルリクエストは開発者を疲弊させる
✓ 開発チームの1人としてどうしたい?
✓ 必須:作成前に作成者がレビュー!
✓ 詳細を理解する
✓ レビュー可能なサイズにする
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 60

プルリクエストとレビュー
✓ 狙いの1つ:関係者間での知識の共有
✓ 作成者が未理解→知識の共有は進まない
✓ 作成者抜きで開発者が直接生成AIを使えばよい
✓ 開発チームの1人としてどうしたい?
✓ 学んで次のプルリクエストに活かせる?
✓ 学んだことを他の人に伝えられる?
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 61

生成AIとライセンス
✓ 機械が生成したものに著作権は発生しない
✓ 著作権があるコードの複製を生成しうる
✓ そのコードのライセンスが大事
✓ ライセンスを守れれば再利用可能
✓ ライセンスの問題がないことは
プルリクエスト作成者が保証する
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 62

生成AIとコミット
✓ どのツールを使ったかの情報を残す
✓ GitならGenerated-By: ...などで記録
✓ なにか問題があったときに調べられるように
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 63

生成AIとRubyエコシステム開発
✓ 生成したものを丸投げはダメ
✓ 生成したものを詳細まで理解した上で活用
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 64

まとめ
✓ 今日やったことを再確認
✓ 明日からのことを確認
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 65

目的の確認
Rubyエコシステム開発未経験者
↓
Rubyエコシステム開発 経験者
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 66

やったこと
Rubyエコシステム開発を体験する
1. 動かす
2. フィードバック
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 67

体験時のポイント
常にメモ
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 68

常にメモの理由
✓ 詰まったところに気づくため
✓ いつもはスルーしていない?
✓ 実はフィードバックポイント!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 69

詰まったところ
✓ Rubyエコシステム開発参加のチャンス!
✓ ポジティブに捉えてみよう
✓ 実際に参加して楽しかった?
✓ 直ると次の人はうまくいく
✓ 気分がいいね!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 70

気づいた?
✓ コードを書くだけが
Rubyエコシステム開発参加方法じゃない
✓ 使いはじめのユーザーだから
できることもある
✓ やり方を知ればやれる
✓ 明日からもやってみよう!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 71

明日からのやり方
✓ 自分が使っている他のgemでも
やってみよう
a. 動かす
b. 気になったことをまとめる
c. フィードバック
✓ ↑失敗が怖い?
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 72

Rubyエコシステムと失敗
✓ そもそも失敗と認識されない
✓ 少なくとも1発アウト!はほぼない
✓ 新規開発者は基本的にWelcome
✓ 失敗しても根に持たれない
✓ 失敗→改善:改善後を評価
↓
明日からオススメ方法をTry!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 73

メッセージ
不安がらずに
Rubyエコシステムの
開発を
楽しんで!
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 74

来てよかった!と思ったら
✓ 次回はサポーターとして参加!
✓ 次回をまわりに継続宣伝!
✓ #oss_gateで他の人をサポート
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 75

おねがい
✓ 今日のフィードバックを!
✓ 次に活かしたい
✓ この後すぐ
✓ アンケート記入
✓ アンケート結果をみんなで確認
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Page: 76

アンケートの回答方法
1. github.com/oss-gate/workshop をfork
2. git clone git@github.com:#{GITHUB_ID}/workshop.git
3. tutorial/retrospectives/#{YYYY}-#{MM}-#{DD}-ruby-#{LOCATION}
✓ cp beginner.yaml beginner-#{GITHUB_ID}.yaml
✓ cp supporter.yaml supporter-#{GITHUB_ID}.yaml
4. git switch -c retrospective
5. git add → git commit → git push
6. github.com/#{GITHUB_ID}/workshopを開いて「Pull request」
Rubyエコシステム 開発入門 ワークショップ
Powered by Rabbit 4.0.2

Other slides