Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSS入門 世界に参加する最初のひと押し / OSS first step
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masahiro Wakame
November 03, 2018
Programming
7
760
OSS入門 世界に参加する最初のひと押し / OSS first step
https://camphor.connpass.com/event/104719/
Masahiro Wakame
November 03, 2018
Tweet
Share
More Decks by Masahiro Wakame
See All by Masahiro Wakame
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
730
DatastoreからSpannerに 移行したいぞ途中編 / migrate Datastore to Spanner in progress
vvakame
0
1.2k
Google Cloud Next 2019 わくわく報告会 / Google Cloud Next 2019 WakuWaku Report
vvakame
1
450
メルカリ社員100人に聞いたGoLandの使い方 / JetBrains Night Tokyo 2018
vvakame
27
13k
GCP Compute 概要と選定 / DevFest Tokyo 2018
vvakame
12
1.7k
GoでGraphQLサーバを立てるぞ! / Building GraphQL server by go
vvakame
15
4.8k
『Re:VIEW+CSS組版やっていき』を やった話とWebエンジニアが期待する未来 / CSS Publishinng for Web Developers
vvakame
3
9.1k
go.mercari.io/datastore はいいぞ! / go.mercari.io/datastore is pretty good!
vvakame
4
1.2k
最強のDatastoreライブラリを作った / golang.tokyo #11
vvakame
3
12k
Other Decks in Programming
See All in Programming
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
100
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
160
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
610
[SF Ruby Feb'26] The Silicon Heel
palkan
0
120
Windows on Ryzen and I
seosoft
0
350
安いハードウェアでVulkan
fadis
0
740
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
380
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
320
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
7
2.9k
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
450
OTP を自動で入力する裏技
megabitsenmzq
0
120
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
230
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
76
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
89
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
84
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
480
The Cult of Friendly URLs
andyhume
79
6.8k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Done Done
chrislema
186
16k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.9k
Being A Developer After 40
akosma
91
590k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
130
Transcript
OpenSourceSoftware⼊入⾨門 世界に参加する最初のひと押し わかめ まさひろ
わかめ まさひろ @v vakame Masahiro Wakame DefinitelyTyped tsfmt 技術書典
今⽇日話すこと •OSSって何? •OSSってどうやって回ってるの? •問題の⾒つけ⽅ •どうすると⼊っていきやすいか
Welcome! •ようこそʙʙ! •質問あったら話を遮って⼿をあげる •いっぱい質問があったら嬉しい •時間が⾜りなくなっても気にしない 旅(⼈人に対して)の恥はかき捨て…!
OSSって何? Open Source Software
Open Source Software? •ソースが公開されている •修正を送ると取り込んでくれる(かも) •ライセンスの元、好きに使える オープンソースの定義
どうやって回っているの? •⼤⼈数が⽬にするので⾼品質…!? •ほんの⼀握り… •ぶっちゃけ直接⾦にはならない •だってオープンだから
OSSは⾼高品質なの? •いろいろな要素に左右される •オーナーの気質や⼒量やモチベ •ユーザがたくさんいるか •リリースサイクルの⾧さ
つまり? •⼤多数はショボい •→課題がいろいろある! •→やっていく余地が多い! ショボい問題ほど直しやすい!
はたして⾦金金になるの? •我々の近場のOSSは基本⾦になりません •様々なメリットがあるのでやります •パッチ来ると嬉しいな とか
会社がオーナーの場合 •サポートを売ったりする •サービスホストしてレンタルしたり •商⽤利⽤する場合フィーを取るとか OSSにしとくと退職した後も使える(⼩小声
個⼈人がオーナーの場合 •趣味(儲からない) •パトロン系サービスの利⽤(儲かる?) •どこかに雇われて仕事としてやる •クックパッド→Rubyコミッタ •メルペイ→僕 仕事の100%ではないです
何故⾃自分がやるのか •世界を⾃分好みの⽅向に誘導したい! •⾃分の持つ技術を世界に共有したい! 池に⽯石投げると楽しいみたいな話
どこでやるか •GitHub ←調べた時の情報が多い •それ以外 ←僕はよくわからん •Linux, Android, WebKit etc… •ゆえに主にGitHubの話をします
問題の⾒見見つけ⽅方 ⾒見見つけたら直せる
開発やっていますか? •やっている •やってない やりましょう
やると困ることがある •機能たりない •バグってる •こんな機能ほしい •→やっていく必要がある やらずに困れることはほぼないです
どうする?→改善 •コードを書いて送る •パッチを送る •Pull Requestを送る •取り込まれる→リリースされる→使える •嬉しい!!✌
以上! 脳筋感がありますね
⼊入っていきましょう 誰もが初回は初めて
プロトコル •これバグじゃね?と報告する •原因分析に協⼒する •原因を特定する •直し⽅相談する •直す! 実施すると偉いライン 報告すらしないと偉くない
プロトコル •これバグじゃね?と報告する •原因分析に協⼒する •原因を特定する •直し⽅相談する •直す! いきなりここに⾏行行くと⾟辛い話になる時がある
前段階 •いきなり報告するの怖い…! •どこかで質問して確かめる •⾃分のやり⽅が悪い?それともバグ? •StackOverflowとか •コミュニティや所属組織のチャット
その他の⽅方法 •Good first issue 探す •TypeScriptの例 bit.ly/2PGmKao •友達がƅ ƅ´ωAƅ ƅŇűƅŖ
したのを助ける •ようするに代わりに直す
機能追加の話 •バグ報告よりちょっとむずかしい •まず提案する •◦◦ができると我々はより幸せになれる! •PR送ってみていい?って聞く 慣れたらいきなり送っても⾟辛くない
英語 •みんな使ってる •わりとみんな下⼿ ≒ ⾮ネイティブ多い •英語ヘタやな!って⾔われたことない •わかる努⼒をしてくれる(すき •こっちもわかる努⼒する
英語 •みんなの1st⾔語⇔英語 翻訳機はまぁある •Google翻訳を使い倒していこうな! •英語→⽇本語よく使う •変な⽇本語出てきたら英を⼿直しする ⽇日→英→⽇日 も使う
⻄西海海岸語 •cool →ただの相槌 •good →ヤバい指摘をする前の枕詞 •部分ではなく⽂全体を解釈する必要あり 僕が勝⼿手に⾔言ってます
PRやパッチを送る 捨てて書き直す覚悟
コードを送る意味 •だいたい以下の意味を含む •俺のコードこそ最強! •お前に俺のコードあげるから •あとのメンテは全部よろしく! •↑なかなかすごいこと⾔ってる
納得が必要 •じゃないと引き取ってくれないよね •基本的な姿勢 •我々は味⽅同⼠である •我々はコードを改善したい これを会話の⼟土台に使う
上⼿手に議論する •コード⾒せてわかりあえる時もある •そうじゃない場合やっていく必要がある •喧嘩(決裂)に突⼊すると旨味なし •アホには近寄らない 多少慣れが必要です(最初はみんな下⼿手)
議論とは? •合意できる部分を確かめ合う作業 •討論とは全く異なる(討論は合意しない) •相⼿の真の意⾒を引き出す必要がある •こともある •オーナーの意⾒を取り込むほうが早い 譲れるところは最⼤大限譲るのが楽
脇道:⾯面⽩白い読み物 •d.hatena.ne.jp/hyoshiok/20090704 •TOMOYO Linuxに学ぶ説得術 •パッチ送る⼈ともらう⼈の観点の差
Tips •前書いた記事 bit.ly/2CYFPNV •主語をIやYouではなくWeにする •Weにして破綻しない⽂章を書く •We are stupid! Fxxk we!
とは書けない
オーナーの気持ち •みんなに便利に使ってほしい •モチベは維持したい •みんなが困ることはあまりしたくない •あわよくば⼈のリソースで楽したい
便便利利に使ってほしい •⾃分が便利ならみんなもきっと便利 •コードが広く使われて検証されてほしい •バグが⾒つかるから ついでにパッチくれ •できれば⾦も欲しい •↑難しい
モチベ維持したい •OSSで最も重要かつ貴重なリソースは? •オーナーのやる気 •やりたくないことやってほしい •僕の場合ドキュメントとか英語書くとか
みんなを困らせたくない •バグ埋め込みたくない •バグりやすいコードmergeしたくない •Breaking Changeしたくない •≒気軽にBCするライブラリ使いたくない •↑ものすごく⼤事 すごく⼤事 とても
やりとりの実例例 •最近の活動 bit.ly/2zpGpRo •mergeされずにcloseされたPRもちらほら •#327→#353→#388→#392(→#404) •紆余曲折を経て⽬的を果たしたヤツ 達成⽬目標伝える→オーナーを尊重した修正
与太話 時間余ってる?どう?
ライセンス •ちゃんと確認する •⼀番厄介なライセンスは? •ライセンス無し •↑ライセンス何?と聞けば概ね解決する
⾃自分がオーナー •やりたくないことはやらなくていい •ライセンス違反の指摘とかは除く •とりあえず公開することに慣れる •反応0がデフォなので過度な期待はしない •README.mdだけはちゃんと書く
⾃自分とは •有象無象の⼀部である •多少雑でもわりとすぐ忘れられる •きちんと説明できないと話が進まない 良くも悪くも
CONTRIBUTING.mdとか •GitHubのテンプレ的構造がある •bit.ly/2JzOWWP •TypeScriptの場合 bit.ly/1o2weYt ⾒見見てみよう!
質問コーナー