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 full-size slide

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

    View full-size slide

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

    View full-size slide

  4. きっかけ
    JavaScript OSS
    Contribution Guide
    4

    View full-size slide

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

    View full-size 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 full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide