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

Work and OSS

Work and OSS

MoneyForward Meetup Vol. 6の発表資料 http://moneyforward.connpass.com/event/42287/

Akira Matsuda

October 26, 2016
Tweet

More Decks by Akira Matsuda

Other Decks in Programming

Transcript

  1. ࢓ࣄͰ044
    @a_matsuda

    View Slide

  2. RubyͱRailsͷ։ൃ

    ΍ͬͯ·͢
    w ϑϧλΠϜίϛολʔͱ͔Ͱ͸ͳ
    ͍ͷͰɺ·͊झຯͰ͢
    w Ͱ΋ຊۀ͕͍Ζ͍Ζͱझຯʹ׆͔
    ͤͯΔͷͰɺͦͷ΁Μͷ࿩Λ͠·
    ͢

    View Slide

  3. ۀ຿ϓϩάϥϚʔྺ͸

    15೥͙Β͍

    View Slide

  4. ࢓ࣄͰϓϩάϥϛϯά
    w 7# +BWB /&5 1)1 1FSMͳͲ
    ͳͲ

    View Slide

  5. ࢓ࣄͰ࢖ͬͨOSS
    w +BLBSUBͷ͋Ε͜Ε 4USVUT 4QSJOH 4FBTFS
    w όά͸͔֬ʹ೔ৗతʹ౿ΜͰͨ
    w υΩϡϝϯτ΋ෆ਌੾ͩͬͨ
    w Ͱ΋ࣗ෼ͰͳΜͱ͔ͯ͠΍Ζ͏ͱ͍͏ൃ૝ʹ͸
    ͳΒͳ͔ͬͨ
    w ϒϥοΫϘοΫεײ

    View Slide

  6. ͦͯ͠Rails΁
    w ͪΐͬͱ࢖͏ͱ͙͢ʹόάʹͿͪ౰ͨΔ
    w ͳΜͩ͜Ε
    w ࣗ෼Ͱ΋͍Ζ͍ΖվળͰ͖Δ༨஍͕͋Δ
    w ͳΜͱ͔ͯ͋͛ͨ͘͠ͳͬͪΌ͏Կ͔͕͋Δ
    w ҙਤతʹԋग़͞ΕͨܺͰ͋ΔՄೳੑ

    w ೥Ҏ্ܦͬͯ΋·ͩ3BJMT΍ͬͯΔ
    w ೥ઓ͑ΔϑϨʔϜϫʔΫ

    View Slide

  7. Ruby on Railsͱ͍͏

    ϓϩμΫτͷڧΈ
    w పఈͨ͠ݱ৔ࢤ޲
    w Ͳ͔͜ͷେֶͷݚڀࣨͰϢʔεέʔεΛໝ૝͠ͳ͕Β࡞ΒΕ
    ͨ΋ͷͰ͸ͳ͍
    w ϦΞϧͳݱ৔Ͱͦͷ··࢖͑Δੜʑ͠͞
    w ͱͲ·ΒͣʹมԽ͠ଓ͚Δ͜ͱ
    w ଞਓͷྗΛआΓͯΞϓϦέʔγϣϯ։ൃΛϒʔετ͢Δ͜ͱ͕
    Ͱ͖ΔΤίγεςϜ
    w 3BJMTϓϥάΠϯɺ3VCZ(FNTɺ#VOEMFS

    View Slide

  8. ΤίγεςϜ(= ஍ଓ͖ײ)
    w ϑϨʔϜϫʔΫ΋ϥΠϒϥϦ΋શ෦ΞϓϦέʔγϣϯͱ
    ಉ͡΋ͷͰॻ͔Ε͍ͯΔ
    w ίʔυಡΈ͚ͨΕ͹ಡΊΔ
    w ͜͜·Ͱ͸ʮΦʔϓϯιʔεʯͷࣈٛͲ͓Γ
    w ࡞ͬͯΔਓͨͪͷإ͕ݟ͑Δ
    w ։ൃʹࢀՃ͚ͨ͠Ε͹ؾܰʹͰ͖Δ
    w ʮϒϥοΫϘοΫε͡Όͳ͍ײʯ

    View Slide

  9. ஍ଓ͖ײͷݯઘ
    w 3BJMT͕ੜ࢈ੑͷߴ͞Λ୲อ͢Δߏ଄
    w ͦΕΛࢧ͑Δ(JU)VCͱ͍͏૷ஔ
    w ݱ୅ͷ044ϜʔϒϝϯτΛࢧ͑ΔϓϥοτϑΥʔϜ
    w 4/4
    w ࢓ࣄͰ΋࢖͑Δ
    w ͦͷΑΓͲ͜ΖͱͳΔίϛϡχςΟ׆ಈͷ׆ൃ͞
    w Ϣʔβʔͱ։ൃऀͷڑ཭ײͷۙ͞
    w 7.։ൃऀ͕ࣗ୐͔Βెา෼ͷͱ͜ΖʹॅΜͰͨΓ͢Δ

    View Slide

  10. Rails͕ੜ࢈ੑͷߴ͞Λ

    ୲อ͢Δߏ଄
    w 4IPVMEFSTPG(JBOUT

    View Slide

  11. ݱ୅ͷϓϩάϥϚʔͷ

    ͓࢓ࣄ
    w ໨ͷલͷػೳ্͕खʹ࣮૷Ͱ͖Ε͹ͦΕͰྑ͍ͱ͍͏࣌୅Ͱ͸ͳ͍
    w ݱ୅ͷ3BJMTΞϓϦ͸΋ͬͱෳࡶ
    w ΞϓϦέʔγϣϯʹඞཁͳ΋ͷΛશͯࣗલͰ࣮૷͢Δʁ
    w ੜ࢈ੑY͡Όͳ͘ͳΔ
    w ڊਓͷݞʹ͏·͘৐Δೳྗ͕ٻΊΒΕ͍ͯΔ
    w ࣗ෼Ͱॻ͘ΞϓϦέʔγϣϯͷίʔυ͸ණࢁͷઌͬͪΐ
    w ණࢁͷԼͷ෦෼·ͰؚΊͨશମΛ͍͔ʹࣗ෼ͨͪͰίϯτϩʔϧͰ
    ͖Δ͔

    View Slide

  12. Q: ʮRailsʹίϯτϦϏϡʔτ͍ͨ͠ʂ

    Ͳ͏΍ͬͨΒίϯτϦϏϡʔλʔʹͳΕ·͢
    ͔ʁʯ
    w ΍Ίͯ
    w ࢓ࣄͰΞϓϦΛ։ൃ͢Δ͍ͭͰʹ
    w ;ͭ͏ʹෆ۩߹Λݟ͚ͭͯ
    w ;ͭ͏ʹύονॻ͍ͯ
    w ϑϨʔϜϫʔΫ͸ΞϓϦέʔγϣϯͷԆ௕
    w ࣮૷ݴޠ΋ಉ͡
    w ࢖ͬͯΔಓ۩΋ಉ͡ (JU)VC

    View Slide

  13. ΞϓϦ։ൃͷ͍ͭͰʹRails΋
    ։ൃ͢Ε͹͍͍͚ͩ

    View Slide

  14. RailsϓϥάΠϯ
    w ͋Γ΋ͷΛ૊Έ߹ΘͤͯΞϓϦΛ
    ૊ΈཱͯΔ

    View Slide

  15. ϓϥΪϯ࡞ऀ͕શͯͷϢʔεέʔε

    Λ૝ఆͯ͠Δ͜ͱ͸͋Γ͑ͳ͍
    w Կ͔͠ΒखΛՃ͑ͳ͕Β࢖͏
    w खݩͰϞϯΩʔύονʁ
    w ෗Δ
    w ΞοϓετϦʔϜʹૹͬͯ਎ܰʹͳΔ

    View Slide

  16. ࢓ࣄ vs OSS?
    w 044͸ΞϓϦέʔγϣϯͷҰ෦
    w Ή͠Ζେ෦෼

    View Slide

  17. ࢓ࣄͰOSS͢Δίπ
    w ϫʔΫ044ؒͷεΠονϯάίετ
    ΛԼ͛Δ
    w ࢖ͬͯΔϓϩμΫτͷιʔείʔυ͸શͯ
    खݩʹஔ͍͓ͯ͘
    w ίʔυΛݟΔΑΓਓؒΛݟΔ
    w ڞଘڞӫΛ໨ࢦ͢

    View Slide

  18. ϫʔΫ <=> OSSؒͷ

    εΠονϯάίετΛԼ͛Δ
    w 044։ൃͱಉ͡ಓ۩Λ࢖ͬͯ࢓ࣄΛ͢Δ͜ͱ
    w .BD -JOVY
    (JU)VC $* νϟοτ
    w ೔ৗతʹӳޠͰಡΉɺӳޠͰॻ͘
    w ίϛοτίϝϯτ͕೔ຊޠͱ͔࿦֎
    w ۀ຿ΞϓϦͩͱͳ͔ͳ͔೉͍͠

    View Slide

  19. ࢖ͬͯΔϓϩμΫτͷιʔε
    ίʔυ͸શͯखݩʹஔ͍͓ͯ͘
    w όάΛ౿ΜͩΒ࣍ͷॠؒύον͕ॻ͚Δ

    Α͏ʹ
    w HFNTSD ͍·Ͳ͖࢖ͬͯͳ͍ਓͳΜͯډͳ
    ͍ͱࢥ͏͚Ͳɺ೦ͷͨΊॻ͍ͱ͖·͢Ͷ

    • % git clone https://github.com/amatsuda/
    gem-src.git ~/.rbenv/plugins/gem-src

    View Slide

  20. ίʔυΛݟΔΑΓਓΛݟΔ
    w ଞਓͷॻ͍ͨίʔυΛ৴༻͠ͳ͍
    w ࢖͏͚Ͳ৴༻͸͠ͳ͍
    w ৴༻Ͱ͖ΔਓؒͱͰ͖ͳ͍ਓؒΛݟۃΊΔ
    w ৴༻Ͱ͖ΔίʔυΛॻ͘ਓؒ͸৴༻Ͱ͖Δਓؒ
    w ৴༻Ͱ͖Δਓ͕ؒॻ͍ͨίʔυ͸৴༻Ͱ͖Δίʔ
    υ

    View Slide

  21. ͳΔ΂͘༑ୡͷϓϩμΫτ
    ͔͠࢖Θͳ͍Α͏ʹ͢Δ
    w 3VCZ$POGͱ͔3BJMT$POGͱ͔ߦ͘ͱɺࣗ෼͕Α͘࢖͏ϓϩμΫ
    τͷ࡞ऀͱ͸·͊࿩Λ͠·͢ΑͶʁ
    w ༑ୡʹͳΓ·͢ΑͶʁ
    w ॻ͍ͨਓؒͷਓͱͳΓ͕Θ͔Δͱίʔυͷ܏޲΋͋Δఔ౓Θ͔Δ
    w ϓϩμΫτͷΫη͕ಡΈ΍͘͢ͳΔ
    w Կ͔͋ͬͨͱ͖ʹ࣭໰͠΍͍͢
    w ύονΛͶ͡ࠐΈ΍͍͢
    w ஌Βͳ͍ਓ͕ॻ͍ͨHFN͕CVOEMF͞ΕͯΔͱෆ҆

    View Slide

  22. ίϛϡχςΟେࣄ
    w ΧϯϑΝϨϯεʹߦͬͯ༑ୡΛ࡞Ζ͏
    w ίʔυॻ͍ͯΔਓʹ࿩͔͚͠Α͏
    w ༧शࡐྉ
    w ίʔυಡΉ
    w ೔ຊਓͳΒΔͼ·ͷΠϯλϏϡʔͱ͔͓͢͢Ί
    w 3VCZJTU)PUMJOLT
    w ͪΌΜͱίʔυॻ͍ͯΔਓ ৴༻Ͱ͖Δਓ
    ͔͠ग़ͯ͜ͳ͍
    w ޱઌ͚ͩ͏·͍͜ͱݴͬͯͯશવίʔυࡽͯ͠ͳ͍ܳਓΈ͍ͨͳͷͱ͔ɺίʔυॻ͔ͣ
    ʹϒϩά͹͔ͬΓॻ͍ͯΔΑ͏ͳͷͱ͔͕ग़ͯ͜ͳ͍
    w ʮษڧձ͡Όͳ͍ʯ஍ҬίϛϡχςΟʹإΛग़ͯ͠ΈΔͷ΋͓͢͢Ί

    View Slide

  23. ίϛϡχςΟͰൃ৴͢Δ

    ೉͠͞
    w ެ༻ޠ͸ӳޠ
    w ӳޠͰπΠʔτͯ͠΋ಡΜͰ΋Β͑ͳ͍ΑͶ
    w ΧϯϑΝϨϯεߦ͚͹ྑ͍ͬͯ΋Μ͡Όͳ͍
    w ͍͖ͳΓߦͬͯ΋΅ͬͪ
    w ొஃ͢Δͱ͍͏γϣʔτΧοτ΋͋Δ͚Ͳɺ΍
    ΍ߴ೉౓

    View Slide

  24. ͔ͩΒίʔυΛ

    ॻ͘ΜͰ͢Αʂ

    View Slide

  25. ίʔυ͸ίϛϡχςΟʹ

    ࢀՃ͢ΔͨΊͷϓϩτίϧ
    w ͜ΕҎ্ʹ༗ޮͳखஈ͸

    ಛʹ͋Γ·ͤΜ

    View Slide

  26. ڞଘڞӫΛ໨ࢦ͢
    w ։ൃऀɺίϛϡχςΟɺاۀ
    w ऀʹͱͬͯ044׆ಈ͕Ͳ͏͍͏
    ϝϦοτΛ΋ͨΒ͔͢ߟ͑ɺߦಈ
    ͢Δ

    View Slide

  27. ։ൃऀɺίϛϡχςΟɺاۀͷ

    Give & Takeؔ܎
    企業
    開発者 コミュニティ

    View Slide

  28. ։ൃऀɺίϛϡχςΟɺاۀͷ

    Give & Takeؔ܎
    企業
    開発者 コミュニティ
    څ༩
    ࿑ಇ

    View Slide

  29. ։ൃऀɺίϛϡχςΟɺاۀͷ

    Give & Takeؔ܎
    企業
    開発者 コミュニティ
    څ༩
    ࿑ಇ
    ίʔυ
    ίʔυ

    View Slide

  30. ։ൃऀɺίϛϡχςΟɺاۀͷ

    Give & Takeؔ܎
    企業
    開発者 コミュニティ
    څ༩
    ࿑ಇ
    ίʔυ
    ίʔυ
    ?
    ?

    View Slide

  31. ίϛϡχςΟ͸اۀʹԿΛ
    ฦͤΔ͔ʁ
    w ʮ৔ʯͷఏڙ
    w 3VCZ,BJHJͱ͔
    w ੜʑ͘͠ݴ͏ͱɺʮਓࡐϓʔϧʯ
    ͱͯ͠ͷ໾ׂɺ͔ͳ͊ʁ

    View Slide

  32. اۀ͸ίϛϡχςΟʹԿΛ
    ฦͤΔ͔ʁ
    w ͋·Γٞ࿦͞Ε͍ͯͳ͍෼໺Ͱ͸ʁ
    w ࣗ෼ͷݟղͱͯ͠͸ɺ

    ։ൃऀίϛϡχςΟͷϥΠϯͱ
    ͷ஍ଓ͖ײͷԋग़Λ͢ΔͱΑͦ͞
    ͏ͳؾ͕͢Δ

    View Slide

  33. ίϛϡχςΟͱاۀͱͷ

    ஍ଓ͖ײ
    w ίϛϡχςΟͱͷڑ཭ͷ͕ۙͦ͜͞3VCZͷ

    ָ͠ΈɺڧΈ
    w اۀͱίϛϡχςΟͷڑ཭͕ͱͯ΋ॏཁ
    w ࣾ಺ʹ3VCZίϛολʔ͕ډΔ
    w 3VCZ,BJHJʹεϙϯαʔͯ͠Δ
    w ΧϯϑΝϨϯεࢀՃඅ༻Λग़ͯ͘͠ΕΔ

    View Slide

  34. ͭ·Γۚ
    ͰղܾͰ͖Δ͜ͱ͕ଟ͍
    w 3VCZ3BJMTͷΤίγεςϜʹ৐͔ͬͬ
    ͯ঎ചΛ͢ΔҎ্ඞཁෆՄܽͳίετ
    w 044͸λμͰ࢖͑ΔͷͰɺͦͷͿΜු
    ͍͓ͨۚΛͦ͏͍ͬͨܗͰ׆༻Ͱ͖Δ

    View Slide

  35. ͨͱ͑͹RubyKaigiͷ

    εϙϯαʔγοϓ
    w ͿͬͪΌ͚௚઀తͳεϙϯαʔϝϦοτͳΜͯ
    ఏڙͯ͠ͳ͍ͱ΋ݴ͑Δ
    w ٻਓ޿ࠂଧͭۚͩͱࢥͬͨΒʁ
    w స৬ΤʔδΣϯτʹࢧ෷͏͓ۚͩͱࢥͬͨΒʁ
    w ͦͷ΁Μ͕Θ͔ͬͯΔܦӦऀ͔Β͸ɺֹ͕ۚ
    ҆͗͢ΔͱΑ͓ࣤ͘ΓΛ͍͍͍ͨͩͯ·͢

    View Slide

  36. ͦΕ͔Βɺ΍ͬͺίʔυ
    w ίϛϡχςΟ͔ΒίʔυͰڗडͨ͠Ըܙ͸ίʔυͰฦ͍ͨ͠
    w #BTFDBNQΛ࡞Δ͍ͭͰʹ3BJMTެ։ͪ͠Όͬͨ4JHOBMTࣾ
    w 0QFO4PVSDF "MNPTU
    &WFSZUIJOH (JU)VCࣾ

    w ΫοΫύουࣾͷ044ϙϦγʔ
    w ϝϯόʔͷਓਓ͕ίϛϡχςΟͰഓͬͨ৴༻͕׆͖ͯ͘Δ
    w ྑ͍ίʔυॻ͚ͩ͘͡Όμϝ
    w ͲΜͳ૊৫ʹॴଐ͢Δ୭͕ॻ͍ͨίʔυ͔͕ॏཁ
    w ࢖͏ͱ͖ʹ΋୭͕ॻ͍ͨίʔυ͔ݟΔͰ͠ΐʁ

    View Slide

  37. ͨͱ͑͹MFࣾ
    w ίϛϡχςΟ΁ͷ౤ࢿ
    w ͜ͷ೥͙Β͍Ͱ͍ͩͿίϛϡχςΟ಺Ͱͷ৴
    ༻ͷஷ͕ۚ૿͖͑ͯͨ͸ͣ
    w ʮ͋ͷʯ.'ࣾൃͷϓϥάΠϯ͕ʂͱ͔ͳΔɺ

    ͔΋͠Εͳ͍
    w ΈΜͳ࢖ͬͯ͘ΕΔɺ͔΋

    View Slide

  38. ։ൃऀɺίϛϡχςΟɺ

    اۀͷྑ͍ؔ܎
    w 044։ൃʹ΋͓ۚ͸͔͔ΔɻίϛϡχςΟ׆ಈʹ΋͓ۚ
    ͕ඞཁ
    w ։ൃऀ͸ίϛϡχςΟʹܨ͕Βͳ͍ͱઓ͑ͳ͍
    w ଞਓͷྗΛ͏·͘࢖͑ͳ͍։ൃऀ͸ਓྗ͔͠ग़ͤͳ͍
    w اۀ͕ίϛϡχςΟʹରͯ͠Կ͕Ͱ͖Δ͔ʁԿΛͯ͘͠
    ΕΔͷ͔ʁ
    w զʑ։ൃऀ͸ͦ͜Λݫ͍͠໨Ͱ͔ͬ͠ΓධՁ͍ͨ͠

    View Slide

  39. ·ͱΊ
    w ๻Βͷ࢓ࣄ͸044ͱ޲͖߹͏͜ͱ
    w 044͸ίϛϡχςΟͷ׆ಈͷ࢈෺
    w ։ൃऀίϛϡχςΟ͸ίʔυΛॻ͘
    ਓؒͷू·Γ
    w ίʔυॻ͜͏ͥ

    View Slide