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