Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Node.jsにContributeして一ヶ月でCollaboratorになった

Leko
February 22, 2018

 Node.jsにContributeして一ヶ月でCollaboratorになった

Node学園 29時限目
Node.jsのコラボレータになれたので、きっかけ・なってく過程(どんなコミットしたか)・いざなった後などざっくばらんにお話しします

Leko

February 22, 2018
Tweet

More Decks by Leko

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. きっかけ
    JavaScript OSS
    Contribution Guide
    4

    View Slide

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

    View Slide

  6. 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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. Code + Learnで出したPR2つ
    14

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 18

    View Slide

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

    View Slide

  20. 20

    View Slide

  21. 21

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. 28

    View Slide

  29. 29

    View Slide

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

    View Slide

  31. 31

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide