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

7年間開発を続けるサービスを支える
負債返済日の取り組み

 7年間開発を続けるサービスを支える
負債返済日の取り組み

Rails Developers Meetup 2018 Day 4 Nouvelle Vague (https://techplay.jp/event/702297) で話したスライドです。

Shingo Tomioka

December 08, 2018
Tweet

More Decks by Shingo Tomioka

Other Decks in Programming

Transcript

  1. ©2018 Wantedly, Inc.
    7೥ؒ։ൃΛଓ͚ΔαʔϏεΛࢧ͑Δ

    ෛ࠴ฦࡁ೔ͷऔΓ૊Έ
    Rails Developers Meetup 2018 Day 4 Nouvelle Vague
    8.Dec.2018 - Shingo Tomioka

    View Slide

  2. ©2018 Wantedly, Inc.
    • ෋Ԭ ਅޛʢShingo Tomiokaʣ
    • ɹ @meea_t
    • Wantedly, Inc. 2017೥৽ଔೖࣾ
    • Wantedly Visit ͷ Web

    ϑϩϯτΤϯυɾόοΫΤϯυΛ։ൃ
    ࣗݾ঺հ

    View Slide

  3. Wantedly Visit Ŗ ͸ͨΒ͘Λ໘ന͘

    View Slide

  4. ։ൃνʔϜߏ੒
    • ΤϯδχΞ͸ Web 12ਓɾΞϓϦ5ਓ͘Β͍
    • 3~5ਓ͘Β͍ͰҰͭͷػೳΛ։ൃ͢ΔখνʔϜ
    ͕͍͔ͭ͋͘Δ
    VISIT

    View Slide

  5. ΞʔΩςΫνϟ
    • WebɾόοΫΤϯυ͸ϞϊϦγοΫ Rails + α
    • ࠷ۙ͸ϚΠΫϩαʔϏεԽ΋ਐΊ͍ͯΔ͕ɺϝ
    ΠϯͷαʔϏε͸ͣͬͱϝϯςφϯε͍ͯ͘͠
    ඞཁ͕͋Δ

    View Slide

  6. ϝΠϯϨϙδτϦͷίʔυྔʢߦ਺ʣ
    0K
    200K
    400K
    600K
    800K
    1,000K
    2011 2012 2013 2014 2015 2016 2017 2018 2019

    View Slide

  7. ΞʔΩςΫνϟ΍૊৫ͷྺ࢙ʹ͍ͭͯͷ͘Θ͍͠࿩͸…
    https://speakerdeck.com/kawasy/wantedly-niokeru-purodakuto-ji-shu-zu-zhi-7nian-jian-falsejin-hua

    View Slide

  8. ©2018 Wantedly, Inc.
    • ίʔυϕʔεͷ݈શੑΛอͪɺ։ൃͷੜ࢈ੑΛ
    ҡ͍͖͍࣋ͯͨ͠
    • ීஈͷ։ൃத͸αʔϏεͷKPI͕ॏཁͳͷͰɺ
    KPIʹ௚݁͠ͳ͍λεΫ͸༏ઌ౓͕௿͘ͳͬͯ
    ͠·͏
    • ීஈ͸খνʔϜ୯ҐͰ։ൃ͍ͯ͠Δ͚Ͳɺશ
    ମͱͯ͠ҰͭͷαʔϏεɾҰͭͷϦϙδτϦ
    Λҡ͍࣋ͯ͘͠ඞཁ͕͋Δ
    ௕͘αʔϏεΛ։ൃ͚͍ͭͮͯͨ͘͠Ίʹ

    View Slide

  9. ©2018 Wantedly, Inc.
    • ීஈ͸༏ઌ౓্͕͕Βͳ͍λεΫʹूதͯ͠
    औΓ૊Ήઐ༻ͷ೔
    • 1.5ϲ݄ʹ1ճ͘Β͍։࠵
    • νʔϜશһͰऔΓ૊Ή
    ňෛ࠴ฦࡁ೔ʯ

    View Slide

  10. ©2018 Wantedly, Inc.
    • ෛ࠴ฦࡁܥ
    • ੜ࢈ੑ޲্ܥ
    • Τϥʔͷ੔ཧɾόάϑΟοΫε
    • ύϑΥʔϚϯεվળ
    • ύοέʔδͷΞοϓσʔτ
    • πʔϧͷಋೖ
    • υΩϡϝϯτ੔උ
    • etc.
    ΍Δ͜ͱ

    View Slide

  11. ©2018 Wantedly, Inc.
    • ʮෛ࠴ฦࡁ೔ʯͱݺΜͰ͍Δ͕ɺऔΓ૊Ήͷ͸
    ٕज़తෛ࠴͚ͩʹݶΒͳ͍
    • ʮ͋Ε΍Γ͍ͨɾ΍ͬͨํ͕͍͍͚ͲͰ͖ͳ͍ʯ
    ͱ͍͏৺ཧతෛ࠴Λฦ͢೔Ͱ΋͋Δ
    ňෛ࠴ฦࡁ೔ʯ

    View Slide

  12. લ΋ͬͯ issue Λཱͯͯ΍Γ͍ͨ͜ͱΛॻ͍͓ͯ͘
    • 1ճͷෛ࠴ฦࡁ೔͕ऴΘͬͨλΠϛϯάͰ࣍ճ͕

    εέδϡʔϦϯά͞Εɺissue ཱ͕ͯΒΕΔ

    View Slide

  13. લ΋ͬͯ issue Λཱͯͯ΍Γ͍ͨ͜ͱΛॻ͍͓ͯ͘

    View Slide

  14. ©2018 Wantedly, Inc.
    • ͜͜ΛͳΜͱ͔͍ͨ͠ͱ͍͏ͷ͸ɺීஈͷ։
    ൃΛ͍ͯ͠Δͱ͖ʹײ͡Δ
    • ͕ͦͷͱ͖͸࣌ؒΛ͔͚ΒΕͳ͍͜ͱ͕ଟ͍
    • Issue ʹϝϞ͓͍ͯͯ͠ɺ͋ͱͰ΍ΔͱܾΊͯ
    ͓͘͜ͱͰɺͦͷॠؒ͸։ൃʹूத͚ͭͮ͠
    ΒΕΔ
    લ΋ͬͯ issue Λཱͯͯ΍Γ͍ͨ͜ͱΛॻ͍͓ͯ͘

    View Slide

  15. ©2018 Wantedly, Inc.
    • 10:00 ू·ͬͯλεΫΛ੔ཧׂͯ͠ΓৼΓ
    • 10:30~18:30 ֤ࣗλεΫʹऔΓ૊Ή
    • 18:30 ੒Ռൃදɾ;Γ͔͑Γ
    1೔ͷྲྀΕ

    View Slide

  16. ©2018 Wantedly, Inc.
    λεΫͷׂΓৼΓ

    View Slide

  17. ©2018 Wantedly, Inc.
    λεΫͷׂΓৼΓ
    • γʔτʹॻ͖ग़ͯ͠༏ઌ౓Λ͚ͭͯΞαΠϯ
    • ͜͜ʹਐḿʢstatus: WIP/DONE ΍ PRͷϦϯΫʣ
    ΋ॻ͖ࠐ·Ε͍ͯ͘
    • ϋοΧιϯײ

    View Slide

  18. ©2018 Wantedly, Inc.
    ࠷ۙ΍ͬͨྫΛ͍͔ͭ͘঺հ

    View Slide

  19. ໘౗͚ͩͲ΍Βͳ͖Ό͍͚ͳ͍΍ͭ

    View Slide

  20. Facebook API Λ࢖͍ଓ͚ΔͨΊʹΞϓϦϨϏϡʔΛૹΔ

    View Slide

  21. ෛ࠴ฦࡁܥ

    View Slide

  22. ©2018 Wantedly, Inc.
    • ϦΫΤετϩάΛݩʹɺ࢖ΘΕ͍ͯͳ͍Τϯ
    υϙΠϯτΛྻڍ
    • 2ਓͰ1೔Ͱ໿100ݸͷϖʔδΛ࡟আ
    • શମͷ7%Λ࡟ݮ
    ࢖ΘΕ͍ͯͳ͍ϖʔδͷ࡟আ

    View Slide

  23. ࡞ۀͷ༷ࢠ

    View Slide

  24. ੜ࢈ੑ޲্ܥ

    View Slide

  25. ©2018 Wantedly, Inc.
    • config/routes.rb ͷத਎͕2300ߦ
    • (annotate ʹΑΔίϝϯτΛআ͍ͯ)
    • ಉ͡Ϧιʔε͕ଟ਺ͷ namespace ഑Լʹଘࡏ
    • users
    • admin/users
    • enterprise/users
    • api/v1/users
    • api/v2/users
    • …
    config/routes.rb ϑΝΠϧΛ෼ׂ

    View Slide

  26. config/routes.rb ϑΝΠϧΛ෼ׂ

    View Slide

  27. config/routes.rb ϑΝΠϧΛ෼ׂ

    View Slide

  28. ©2018 Wantedly, Inc.
    • ઐ༻ͷ೔Λઃ͚Δ͜ͱͰɺͦΕҎ֎ͷ೔͸

    αʔϏεΛ৳͹ͨ͢Ίͷ։ൃʹूதͰ͖Δ
    • ͕ܾ࣌ؒ·͍ͬͯΔ͜ͱͰूதྗ্͕͕Γɺ

    ੒Ռ͕ग़΍͍͢
    ෛ࠴ฦࡁ೔ͷ͍͍ͱ͜Ζ

    View Slide

  29. ©2018 Wantedly, Inc.
    • νʔϜશһͰಉ͡೔ʹऔΓ૊Ή͜ͱͰ
    • ΈΜͳ΍ͬͯΔͷͰɺଞͷਓʹฉ͖͍ͨ͜ͱ͕͋ͬ
    ͨͱ͖ؾ݉Ͷͳ͘ฉ͚Δ
    • ීஈͷ։ൃதͩͱअຐ͢Δͷ͸ਃ͠༁ͳ͍ͱ͍͏ؾ࣋ͪʹͳΔ
    • ͜ͷ೔ʹ͍Ζ͍Ζ͍͔ͬͨ͡ΒɺͳΜ͔յΕΔ͔΋
    ͱ͍͏ͷ͕ڞ༗͞ΕͯΔ
    • ීஈͷ։ൃதʹ΍Ζ͏ͱ͢Δͱɺ΋ͬͱ͘͢͝৻ॏʹਐΊΔඞཁ͕
    ͋Δ
    • ʮ͋ͷਓෛ࠴͸͍Ζ͍Ζฦͯ͠Δ͚Ͳɺ੒Ռग़ͯ͠
    ͳ͍ʯΈ͍ͨʹͳΒͳ͍
    ෛ࠴ฦࡁ೔ͷ͍͍ͱ͜Ζ

    View Slide

  30. ©2018 Wantedly, Inc.
    • ීஈผʑʹ։ൃ͍ͯ͠ΔνʔϜͷԣͷίϛϡχ
    έʔγϣϯͷػձʹͳΔ
    • ීஈࣗ෼͕৮Βͳ͍ൣғ΋ؚΊɺίʔυϕʔε
    શମΛϝϯςφϯε͍ͯ͘͠ҙ͕ࣝੜ·ΕΔ
    ෛ࠴ฦࡁ೔ͷ͍͍ͱ͜Ζ

    View Slide

  31. ©2018 Wantedly, Inc.
    • ύοέʔδͷΞοϓσʔτ
    • ෛ࠴ฦࡁ೔ͷதͰ΋༏ઌ౓͕௿͘ͳΓ͕ͪ
    • ෛ୲ΛݮΒͨ͢Ίʹ Dependabot Λಋೖͯ͠
    ि࣍౰൪੍ʹ͢Δ΋ఆணͤͣ
    ͏·͘Ͱ͖͍ͯͳ͍ͱ͜Ζ

    View Slide

  32. ©2018 Wantedly, Inc.
    • Gem ͸ʢݱঢ়ʣશ෦΍Δͷ͸ఘΊ͍ͯΔ
    • ඞཁʹͳͬͨͱ͖ʹ΍Δ
    • ηΩϡϦςΟΞοϓσʔτ͸औΓࠐΉ
    • npm ύοέʔδ͸࠷৽ʹ௥ै͍͖͍ͯͨ͠…
    • ಛʹ React पΓͱ͔
    • ࠷ۙϑϩϯτΤϯυपΓͷج൫Λ੔͑Δઐ೚ͷ

    ϝϯόʔ͕Ͱ͖ͨͷͰظ଴ʂ
    ύοέʔδͷΞοϓσʔτ

    View Slide

  33. ©2018 Wantedly, Inc.
    • ࡉ੾ΕʹͰ͖ΔͳΒࡉ੾Εʹ
    • ཻ౓͕େ͖͘ɺ͔ͭॏཁͳ΋ͷ͸ϓϩδΣΫτ
    ͱͯ͠εέδϡʔϧʹ૊ΈࠐΜͰ΍Δ
    • େ͖ͳ໰୊͸ͦ΋ͦ΋Կ͕໰୊ͳͷ͔΍໰୊ͷ
    ن໛Λௐ΂Δͱ͜Ζ͔Β࢝ΊΔඞཁ͕͋Δ
    • ͦͷ࡞ۀΛෛ࠴ฦࡁ೔ʹ΍Δ͜ͱ΋͋Δ
    1೔Ͱ΍Γ͖Εͳ͍λεΫ͕Ͱ͖ͳ͍ʁ

    View Slide

  34. ©2018 Wantedly, Inc.
    • 1೥൒લʹ 4.1 => 5.0 ʹ্͛ͨ
    • 4ܥʹ্͛ͨͷ͸2014೥
    • ґଘ gem ͷΞοϓσʔτͳͲࡉ͔͍࡞ۀ͸

    ਺ਓͰࣄલʹ
    • ਓख͕ඞཁͳ࡞ۀ͸νʔϜશһͰ͕ͬͱ΍ͬͨ
    • Breaking changesɺdeprecation warning ରԠ
    • ςετΛͻͨ͢Β௨ΔΑ͏ʹ͍ͯ͘͠
    • etc.
    Rails ΞοϓάϨʔυ

    View Slide

  35. ؾ߹͍Ͱ৐Γ੾ͬͨ…͕ɺ

    View Slide

  36. ©2018 Wantedly, Inc.
    • 50ਓ೔͘Β͍͔͔ͬͨ
    • ૝ఆͷഒҎ্
    • ϝδϟʔόʔδϣϯΛ্͛Δͷ͸ɺ͕ͬͱ΍Δ
    ʹ͸͠ΜͲ͍ίʔυྔʹ
    • ࠓ͸ෛ࠴ฦࡁ೔ʹͰ͖ΔλεΫΛͪΐͪ͜ΐ͜
    ਐΊ͍ͯΔ
    ૝ఆҎ্ʹେมͩͬͨ

    View Slide

  37. ©2018 Wantedly, Inc.
    • ௕͘αʔϏεΛ։ൃ͠ଓ͚Δʹ͸ɺίʔυϕʔ
    εͷ݈શੑͱ։ൃͷੜ࢈ੑΛอ͍ͬͯ͘͜ͱ͕
    ඞཁ
    • ͱ͸͍͑KPI΋େࣄͳͷͰɺීஈ͸ͳ͔ͳ͔࣌ؒ
    ͕औΕͳ͍
    • ʮෛ࠴ฦࡁ೔ʯͱ͍͏ઐ༻ͷ೔Λઃ͚ͯɺूத
    తʹऔΓ૊ΉΑ͏ʹ͍ͯ͠Δ
    ·ͱΊ

    View Slide

  38. ©2018 Wantedly, Inc.
    • ઐ༻ͷ೔Λઃ͚Δ͜ͱͰɺͦΕҎ֎ͷ೔͸

    αʔϏεΛ৳͹ͨ͢Ίͷ։ൃʹूதͰ͖Δ
    • νʔϜશһͰಉ͡೔ʹऔΓ૊Ή͜ͱͰɺίϛϡ
    χέʔγϣϯ΋औΓ΍͍͢͠ɺ৘ใ΍஌ݟ΋ڞ
    ༗͠΍͍͢
    • ීஈ͸ผʑʹ։ൃ͍ͯ͠Δϝϯόʔ΋ɺνʔϜ
    ͰҰͭͷαʔϏεΛҡ͍࣋ͯ͘͠ͱ͍͏ҙ͕ࣝ
    ੜ·ΕΔ
    ·ͱΊ

    View Slide

  39. એ఻
    Wantedly ͰϛʔτΞοϓ͕࡞ΕΔΑ͏ʹͳΓ·ͨ͠ʂษڧձͱ͔ʹ࢖ͬͯͶʂ
    www.wantedly.com/meetups

    View Slide