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

Webサービス開発者としてスタートしてからOSS Contributionまでの道のり

Webサービス開発者としてスタートしてからOSS Contributionまでの道のり

Kaigi on Rails 2021での登壇資料です。
https://kaigionrails.org/2021/

※登壇時の動画のスライドでGitHub、Twitterアカウント名が入れ替わっていました。
そのため、この資料をアップ時に修正を行っています。

M-Yamashita

October 23, 2021
Tweet

More Decks by M-Yamashita

Other Decks in Programming

Transcript

  1. 2021-10-23 Kaigi on Rails 2021
    WebαʔϏε։ൃऀͱͯ͠ελʔτ͔ͯ͠Β
    OSS Contribution·ͰͷಓͷΓ
    M-Yamashita

    View Slide

  2. ࿩͢͜ͱ
    Railsॳ৺ऀ͕Contributionʹߦ͖ண͘·Ͱ

    View Slide

  3. ࣗݾ঺հ

    View Slide

  4. ࣗݾ঺հ
    • ࢁԼ խਓ

    • όοΫΤϯυΤϯδχΞ@෱Ԭ

    • ࢓ࣄͷRailsྺ: 1೥൒ఔ౓

    • GitHub: @M-Yamashita01

    • Twitter: @M_Yamashii

    View Slide

  5. ΞδΣϯμ

    View Slide

  6. ΞδΣϯμ
    1. Railsॳ৺ऀ͸ԿΛ͍͚ͯ͠͹͍͍ͷ͔ʁ

    2. Contributionઌͷݟ͚ͭํ

    3. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ

    View Slide

  7. 1. Railsॳ৺ऀ͸ԿΛ͍͚ͯ͠͹͍͍ͷ͔ʁ

    View Slide

  8. ࣍ʑͱ༙͖ग़Δٙ໰΍ෆ҆
    • RailsνϡʔτϦΞϧ͸΍͕ͬͨ࣍ʹԿΛ͢Ε͹ʁ

    • ͲΜͳํ๏Ͱֶश͍ͯͬͨ͠Β͍͍͔෼͔Βͳ͍

    • ࢓ࣄͰͷRailsྗΛ޲্͢Δʹ͸ʁ

    View Slide

  9. https://qiita.com/M-Yamashii/items/a5eab4d8076c06a2288f
    ࣗ෼ͳΓͷֶश๏
    • ࢓ࣄͱฒߦͯ͠ϓϥΠϕʔτͰֶशํ๏Λࢼߦࡨޡ

    • Rails΍։ൃʹؔ͢Δւ֎هࣄͷӳ༁ɺݸਓ։ൃͳͲ
    https://github.com/M-Yamashita01/WeatherReport

    View Slide

  10. ஌ݟ͸޿͕͕ͬͨ

    ݸਓͰखΛ৳͹ͯ͠खʹೖΕΒΕΔൣғͷΈͩͬͨ

    View Slide

  11. Ͳ͏͢Ε͹ʁ

    View Slide

  12. ࢓ࣄͰͷRailsΞϓϦΛಡΈղ͖

    Ξ΢τϓοτΛଟ͘ग़͢

    View Slide

  13. ͳͥ࢓ࣄͰͷRailsΞϓϦ͕ྑ͍ͷ͔ʁ
    • ݸਓΞϓϦͱൺֱ͠ίʔυ΍ϓϩδΣΫτͷن໛͕ܻҧ͍

    • ઌਓͷํʑͷ஌ݟ͕٧·ͬͨίʔυ

    • طଘػೳΛಡΈղ͖ɺӨڹΛ࠷খݶʹͨ͠मਖ਼ʹ͢Δඞཁ͋Γ

    • ଞͷ։ൃऀʹΑΔϨϏϡʔ͔Β࢓ࣄ΍Railsͷ஌ݟΛಘΒΕΔ

    View Slide

  14. ʮΞ΢τϓοτΛଟ͘ग़͢ʯʹ͸

    ͲΜͳ΋ͷ͕͋Δͷ͔ʁ

    View Slide

  15. Ξ΢τϓοτʹ΋͍Ζ͍Ζ͋Δ
    • ΞαΠϯ͞Εͨ՝୊ʹର͢ΔPull Request

    • τϥϒϧରԠͰͷղੳ

    • OSSͷ಺෦࣮૷ɺڍಈɺٙ໰ʹରͯ͠ίʔυϦʔσΟϯά͠هࣄͱͯ͠ग़͢
    https://zenn.dev/m_yamashii/articles/6eeabce1199da5

    View Slide

  16. ࢓ࣄͰੵۃతʹखΛڍ͛ͯ

    ਓΑΓଟ͘৮ΓΞ΢τϓοτ͠Α͏

    View Slide

  17. 2. Contributionઌͷݟ͚ͭํ

    View Slide

  18. Railsྗͷ޲্ͱฒߦͰग़͖ͯͨ

    Contribution΁ͷڵຯ

    View Slide

  19. ແ਺ʹ͋ΔOSS͔Β

    Ͳ͏΍ͬͯContributionઌΛݟ͚ͭΔ͔ʁ

    View Slide

  20. • ࣾ಺ͰͷPull Requestڠྗ࡞੒ͷ
    ͓༠͍

    • ࣗ࡞πʔϧ࡞੒࣌ʹ࢖༻ͨ͠
    gemͷະ࣮૷ػೳͷൃݟ

    • ࣾ಺Ͱ࢖༻தͷgemͷίʔυ
    ϦʔσΟϯάͰൃݟͨ͠λΠϙ
    ࢲͷ࠷ॳͷग़ձ͍ํ
    https://github.com/octokit/octokit.rb/pull/1332
    https://github.com/rubocop/rubocop-rspec/pull/1042

    View Slide

  21. ڞ௨͍ͯ͠Δͷ͸ʁ
    • ࣾ಺΍ݸਓͰ࢖͍ͬͯΔOSS

    • ࣮ࡍͷಈ࡞͕ظ଴ͨ͠ಈ࡞ͱҧ͏

    • ίʔυϦʔσΟϯάʹΑΔൃݟ
    Contributionର৅

    View Slide

  22. Contribution͍ͨ͠OSS͸͋Δ͕

    ظ଴௨Γͷಈ࡞Ͱίʔυ্ʹ໰୊͸ͳͦ͞͏


    Ͳ͏͢Ε͹͍͍ͷ͔ʁ

    View Slide

  23. ϦϙδτϦͷIssues͔Β୳͢

    View Slide

  24. Issues্Ͱ୳ࡧ
    • ௥Ճͯ͠΄͍͠ػೳ

    • ظ଴ͨ݁͠Ռͱ࣮ࡍͷಈ࡞͕ҟͳΔใࠂ

    • όά΍ϔϧϓͷϥϕϧ
    https://github.com/rubocop/rubocop-rspec/issues/1106

    View Slide

  25. ݱ৅ͷ࠶ݱͱղܾҊͷఏҊ
    • ࣗ෼ͷ؀ڥͰ࠶ݱ

    • Ͳ͏΍ͬͨΒղܾͰ͖Δ͔ݕ౼

    • ղܾҊΛ࣮૷
    ղܾ๏ͷΞΠσΞ΍࣮૷ҊΛIssueʹίϝϯτ

    View Slide

  26. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺

    ࢲͷ͘͠͡ΓΛ΋ͱʹ

    View Slide

  27. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺
    ࢲͷ͘͠͡Γ
    https://github.com/rubocop/rubocop-rspec/issues/1106
    όάͷϥϕϧʂ

    Pull Request࡞Ζ͏ʂ

    ※IssueͰͷٞ࿦ະ࣮ࢪ

    View Slide

  28. ͜ͷIssue͸ͲΜͳ໰୊ͳͷ͔ʁ
    ɾɾɾ
    • RuboCop RSpecͷIssue

    • RSpec/FilePathͷCopͰ

    ಉ͡ΠϯσϯτͷdescribeΛ

    ݕ஌Ͱ͖ͳ͍

    View Slide

  29. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺
    ࢲͷ͘͠͡Γ
    https://github.com/rubocop/rubocop-rspec/pull/1129

    View Slide

  30. Real-world RSpecϓϩδΣΫτͰ֬ೝࡁΈ͔ʁ

    ͜ͷύλʔϯͷݕ஌͸͋ͳͨͷमਖ਼ͨ͠Copͷ໾ׂͰ͸ͳ͍

    describeͷॻ͖ํ͸֤ϓϩδΣΫτͰҟͳΔͷͰ͸ͳ͍͔ʁ
    ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺
    ࢲͷ͘͠͡Γ

    View Slide

  31. ղܾҊΛఏҊ͢Δࡍͷ஫ҙ఺
    • Issueʹର͢ΔղܾҊΛ͍͖ͳΓPull RequestͰग़͞ͳ͍

    • ·ͣ͸IssueͰٞ࿦

    • ίϛολʔ͕Ͳ͏௚͍͔ͨ͠Λ֬ೝ͠Pull RequestΛग़͢
    ࢲͷ͘͠͡Γ

    View Slide

  32. 3. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ

    View Slide

  33. ContributionΛ͍ͨ͠ؾ࣋ͪ͸͋Δ͕

    ݟ͑ͳ͍น͕͋Δ

    View Slide

  34. Contributionͷน
    • ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ

    • ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ

    • ӳޠͷน

    View Slide

  35. ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ

    View Slide

  36. ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ
    ࣗ෼͕ग़͍͍ͯ͠ͷ͔ʁ
    • ౴͑͸Yes

    • ͍ΖΜͳ։ൃऀͷڠྗ͕͋ͬͯͷOSS

    • ڠྗͷܗ͸Pull Request͚ͩͰ͸ͳ͘ɺIssueͰͷใࠂ΋͋Δ

    View Slide

  37. ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ

    View Slide

  38. • ϓϩδΣΫτʹΑͬͯContributionͷΨΠυϥΠϯ͕͋Δ

    • ͳ͍৔߹͸ଞͷPull Request΍Issueͷॻ͖ํΛࢀߟʹ

    • ԿΛ͍ͨ͠ͷ͔ɺ࣮ࡍͷڍಈͱظ଴ͨ݁͠Ռɺ࠶ݱखॱͷηοτΛఴ͑Δ
    ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ
    ͲΜͳॻ͖ํͰॻ͚͹͍͍ͷ͔ʁ

    View Slide

  39. ॻ͘಺༰͸෼͔͕ͬͨ

    ӳޠ͕ۤख

    View Slide

  40. • ྑ͍୯ޠ΍จষΛ஌Βͳ͍

    • ͲΜͳӳจΛฒ΂ͯॻ͍ͨΒ͍͍͔෼͔Βͳ͍
    ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ
    ӳޠͷน

    View Slide

  41. • ଞͷPull Request΍Issueͷ

    ॻ͖ํΛࢀߟʹ͢Δ

    • ຋༁πʔϧΛ࢖͍·͘Δ

    • ӳޠͷ্खԼखΑΓ΋

    ఻͍͑ͨ಺༰Λେࣄʹ
    ContributionͷนʹͲ͏ཱͪ޲͔͏͔ʁ
    ӳޠͷน
    https://github.com/octokit/octokit.rb/pull/1304
    https://github.com/octokit/octokit.rb/pull/1332

    View Slide

  42. ࠷ޙʹ…

    ContributionͰ৺ʹཹΊ͓ͯ͘͜ͱ

    View Slide

  43. Contribution͢Δʹ͋ͨΓ
    • ίϛολʔͷߟ͑΍ϦϙδτϦ͝ͱͷํ਑͕͋Δ

    • ૬खͷߟ͑Λଚॏͯٞ͠࿦

    • Issue΍Pull Request͕ඞͣड͚ೖΕΒΕΔͱ͸ݶΒͳ͍

    View Slide

  44. ContributionʹνϟϨϯδͯ͠ΈΑ͏ʂ

    View Slide

  45. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ

    View Slide