Slide 1

Slide 1 text

Node.jsにContributeして 一ヶ月でCollaboratorに なった Node学園 29時限目 Leko

Slide 2

Slide 2 text

CureApp, Inc. Tech lead リアル狩猟します。社会人4年目 最近の興味 redux-thunk+ユースケース駆動 x DDD x CQRS x EventSourcing Leko / れこ 2

Slide 3

Slide 3 text

Node.jsのコラボレータになれました 1. きっかけ 2. 最初のコミット(Node学園祭 code + learn) 3. コミットしたことハイライト 4. Collaboratorにノミネートされた 5. コラボレータになる前後 3

Slide 4

Slide 4 text

きっかけ JavaScript OSS Contribution Guide 4

Slide 5

Slide 5 text

Node.jsにコントリビュートするネ タが欲しいです! 今度のNode学園祭でCode + Learnというのがあるから、それ に出ると良いよ ??? 当時(2017/8)、正直よくわかってない 5

Slide 6

Slide 6 text

Code + Learn Code & Learn events allow you to get started (or go further) with Node.js core contributions. Experienced contributors help guide you through your first (or second or third or fourth) commit to Node.js core. They also are available to provide impromptu guided tours through specific areas of Node.js core source code. Code + Learn | Node.js 6

Slide 7

Slide 7 text

1. ✋ コラボレータが最初のコミット向けなIssueを集めとく 2. 各自やるタスクを選ぶ 3. ☺ 現コラボレータが初PR出すまでつきっきりでサポート 4. 1-2日でマージされて初Contribute達成 5. 何回でも参加できそうな雰囲気(2、3、4回目と続く) 各国で定期的に開催されてます。   nodejs/code-and-learn Code + Learn 7

Slide 8

Slide 8 text

React Nativeアプリ でE2Eテストを回して みた Node学園祭で喋ってきた 8

Slide 9

Slide 9 text

→とかとか他の発表もだいぶ凄まじかった 喋ってる暇があるなら実力つけて成果あげたい 「そうだ、コラボレータになろう」 なんかもう格が違う...悔しい悔しい(ry 9

Slide 10

Slide 10 text

Node.jsに貢献したいと!思った! 貢献したいって、Core?TSC?CTC? ...??? コラボレータ目指すなら知っとかないと〜 @Node学園祭 懇親会 10

Slide 11

Slide 11 text

Core nodejs/nodeのこと。 それ以外にDockerとかnodejs.orgとか色々ある CommComm(Community Committee) Node.jsの全体のコミュニティに関して統括する委員会 Node.js FoundationとNode.jsについて - 技術探し @Node学園祭 懇親会 11

Slide 12

Slide 12 text

Contributeしたくば明日のCode + Learnに来るべし @Node学園祭 懇親会 12

Slide 13

Slide 13 text

Code + Learn 近道・抜け道はない Code + Learnが最短ルートだと 思った #nodefest_live_academy 13

Slide 14

Slide 14 text

Code + Learnで出したPR2つ 14

Slide 15

Slide 15 text

めっちゃTシャツもらった 1PR=Tシャツ1枚 15

Slide 16

Slide 16 text

1つ2つContributeしたぐらいで終われない まずはCollaboratorになることを目指している (その先はなったら考える) 翌日 16

Slide 17

Slide 17 text

Code + Learnには結 構やり残しがある 過去の回にも割とや り残しがある おかわり 17

Slide 18

Slide 18 text

18

Slide 19

Slide 19 text

残ってたCode + Learnをだいたいやり尽くした PRの数だけ増えても仕方ないし納得感が足りない 少しだけC++分かるしそっち挑むか ちょいネタは飽きた、Contributeみを感じたい 19

Slide 20

Slide 20 text

20

Slide 21

Slide 21 text

21

Slide 22

Slide 22 text

クラッシュ 22 デグレを色々踏む。 クラッシュさせるテスト を書き、 テストが通るように 実装を治してく

Slide 23

Slide 23 text

@Node学園祭のCode + Learn テストカバレッジをあげるのもコント リビューションの一種で、ちょっと難 しいけどありがたがられる 23

Slide 24

Slide 24 text

https://coverage.nodejs.org cryptoが比較的低め ※今じゃなくて当時のデータ カバレッジを見る 24

Slide 25

Slide 25 text

ひたすらcryptoのテストを埋めてく 25

Slide 26

Slide 26 text

2018/02/16現在 cryptoのjs/C++のソース読んで知らなかった機能やクラス をいろいろ知る 92% → 99% 26

Slide 27

Slide 27 text

「Stream を制するものは、 Node.js を制す」 Node.js の Stream API で「データの流れ」 を扱う方法 - Block Rockin’ Codes stream触りたい 27

Slide 28

Slide 28 text

28

Slide 29

Slide 29 text

29

Slide 30

Slide 30 text

野良Code + Learn インターン生(@shqld)と過去のやり残しでPR出す その後も自力で続いてて6PRくらいマージされてる 30

Slide 31

Slide 31 text

31

Slide 32

Slide 32 text

Collaborator nomination https://github.com/nodejs/node/issues/17602 私だけ枠外から拾ってもらいました感 (まだド新規だけど色々Contributeしてるよ的な) 三度夢に出た。なれなかった夢をみた。 32

Slide 33

Slide 33 text

TSCのメンバーとリアルタイムにやりとり 自分をCollaboratorsに書き加えてmasterに入れるPR OnBoarding session 33

Slide 34

Slide 34 text

コラボレータがやること 34 大雑把にいうと、 レビューとmasterへ反映できる COLLABORATOR_GUIDE.md

Slide 35

Slide 35 text

● コードレビュー ○ 議論をする英語力のなさ ○ 前後の文脈が汲み取れない、コードの理解が全然足りない ○ 見るまでもないシンプルなPRにLGTMする機械と化す ● nodejs orgの他リポジトリ ○ nodejs/help、nodejs/modulesあたりは見てるけど ほとんど追いきれない、たまる未読メール いざコラボレータになってみて 35

Slide 36

Slide 36 text

仕事でwebpac筋が足りなくてメモリ足りない事案 この前ちょうどそのあたり触るPR出した 一旦workaroundで凌いで、ゆくゆく恒久対応...。 やっててよかった出来事の例 36

Slide 37

Slide 37 text

(仕事のためにやってるわけではないけど、) CureAppはJS一本で開発しているので、その一角を担う Node.jsに詳しくて損することない、むしろ得しかしない 仕事ともシナジー良さそう 37

Slide 38

Slide 38 text

社会的冬眠... 年末ごろから仕事が忙しくなり始める 狩猟は冬(約12~2月)しかできないので集中したい 冬の間は潜る。3月ごろから再開する 38

Slide 39

Slide 39 text

● コードレビュー、npmのソース追ってみる ● Node.js JPの活動に参加する ● TSC目指す(英語の聴く/喋るできるようになる) ● Collaborator summit行ってなんか喋る ● 手を広げすぎない程度に他のOSSもコミットする まずやりたいこと 39

Slide 40

Slide 40 text

● 英語は伝えようとする気持ち。勉強も大事。 ● ネタはたくさんあります ○ レベル感は、超簡単なものからC++の深いところまである ○ C++レイヤ(src)触ると、大変だけど難しくて楽しい ● 1Contributeしたら、折角だし2, 3と続きましょう (Contributeし|Collaboratorなり)たい方へ 40