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

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

    View full-size slide

  3. ࣗݾ঺հ
    • ࢁԼ խਓ

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

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

    • GitHub: @M-Yamashita01

    • Twitter: @M_Yamashii

    View full-size slide

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

    2. Contributionઌͷݟ͚ͭํ

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

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

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

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

    View full-size slide

  8. ஌ݟ͸޿͕͕ͬͨ

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

    View full-size slide

  9. Ͳ͏͢Ε͹ʁ

    View full-size slide

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

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

    View full-size slide

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

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

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

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

    View full-size slide

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

    ͲΜͳ΋ͷ͕͋Δͷ͔ʁ

    View full-size slide

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

    • τϥϒϧରԠͰͷղੳ

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

    View full-size slide

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

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

    View full-size slide

  15. 2. Contributionઌͷݟ͚ͭํ

    View full-size slide

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

    Contribution΁ͷڵຯ

    View full-size slide

  17. ແ਺ʹ͋ΔOSS͔Β

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

    View full-size slide

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

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

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

    View full-size slide

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

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

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

    View full-size slide

  20. Contribution͍ͨ͠OSS͸͋Δ͕

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


    Ͳ͏͢Ε͹͍͍ͷ͔ʁ

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

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

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

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

    View full-size slide

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

    ࢲͷ͘͠͡ΓΛ΋ͱʹ

    View full-size slide

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

    Pull Request࡞Ζ͏ʂ

    ※IssueͰͷٞ࿦ະ࣮ࢪ

    View full-size slide

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

    • RSpec/FilePathͷCopͰ

    ಉ͡ΠϯσϯτͷdescribeΛ

    ݕ஌Ͱ͖ͳ͍

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

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

    • ·ͣ͸IssueͰٞ࿦

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

    View full-size slide

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

    View full-size slide

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

    ݟ͑ͳ͍น͕͋Δ

    View full-size slide

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

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

    • ӳޠͷน

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

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

    View full-size slide

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

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

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

    View full-size slide

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

    ӳޠ͕ۤख

    View full-size slide

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

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

    View full-size slide

  39. • ଞͷPull Request΍Issueͷ

    ॻ͖ํΛࢀߟʹ͢Δ

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

    • ӳޠͷ্खԼखΑΓ΋

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

    View full-size slide

  40. ࠷ޙʹ…

    ContributionͰ৺ʹཹΊ͓ͯ͘͜ͱ

    View full-size slide

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

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

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide