Rails Developers Meetup 2018 Day 4 Nouvelle Vague (https://techplay.jp/event/702297) で話したスライドです。
©2018 Wantedly, Inc.7ؒ։ൃΛଓ͚ΔαʔϏεΛࢧ͑Δ ෛ࠴ฦࡁͷऔΓΈRails Developers Meetup 2018 Day 4 Nouvelle Vague8.Dec.2018 - Shingo Tomioka
View Slide
©2018 Wantedly, Inc.• Ԭ ਅޛʢShingo Tomiokaʣ• ɹ @meea_t• Wantedly, Inc. 2017৽ଔೖࣾ• Wantedly Visit ͷ Web ϑϩϯτΤϯυɾόοΫΤϯυΛ։ൃࣗݾհ
Wantedly Visit Ŗ ͨΒ͘Λ໘ന͘
։ൃνʔϜߏ• ΤϯδχΞ Web 12ਓɾΞϓϦ5ਓ͘Β͍• 3~5ਓ͘Β͍ͰҰͭͷػೳΛ։ൃ͢ΔখνʔϜ͕͍͔ͭ͋͘ΔVISIT
ΞʔΩςΫνϟ• WebɾόοΫΤϯυϞϊϦγοΫ Rails + α• ࠷ۙϚΠΫϩαʔϏεԽਐΊ͍ͯΔ͕ɺϝΠϯͷαʔϏεͣͬͱϝϯςφϯε͍ͯ͘͠ඞཁ͕͋Δ
ϝΠϯϨϙδτϦͷίʔυྔʢߦʣ0K200K400K600K800K1,000K2011 2012 2013 2014 2015 2016 2017 2018 2019
ΞʔΩςΫνϟ৫ͷྺ࢙ʹ͍ͭͯͷ͘Θ͍͠…https://speakerdeck.com/kawasy/wantedly-niokeru-purodakuto-ji-shu-zu-zhi-7nian-jian-falsejin-hua
©2018 Wantedly, Inc.• ίʔυϕʔεͷ݈શੑΛอͪɺ։ൃͷੜ࢈ੑΛҡ͍͖͍࣋ͯͨ͠• ීஈͷ։ൃதαʔϏεͷKPI͕ॏཁͳͷͰɺKPIʹ݁͠ͳ͍λεΫ༏ઌ͕͘ͳͬͯ͠·͏• ීஈখνʔϜ୯ҐͰ։ൃ͍ͯ͠Δ͚Ͳɺશମͱͯ͠ҰͭͷαʔϏεɾҰͭͷϦϙδτϦΛҡ͍࣋ͯ͘͠ඞཁ͕͋Δ͘αʔϏεΛ։ൃ͚͍ͭͮͯͨ͘͠Ίʹ
©2018 Wantedly, Inc.• ීஈ༏ઌ্͕͕Βͳ͍λεΫʹूதͯ͠औΓΉઐ༻ͷ• 1.5ϲ݄ʹ1ճ͘Β͍։࠵• νʔϜશһͰऔΓΉňෛ࠴ฦࡁʯ
©2018 Wantedly, Inc.• ෛ࠴ฦࡁܥ• ੜ࢈ੑ্ܥ• ΤϥʔͷཧɾόάϑΟοΫε• ύϑΥʔϚϯεվળ• ύοέʔδͷΞοϓσʔτ• πʔϧͷಋೖ• υΩϡϝϯτඋ• etc.Δ͜ͱ
©2018 Wantedly, Inc.• ʮෛ࠴ฦࡁʯͱݺΜͰ͍Δ͕ɺऔΓΉͷٕज़తෛ࠴͚ͩʹݶΒͳ͍• ʮ͋ΕΓ͍ͨɾͬͨํ͕͍͍͚ͲͰ͖ͳ͍ʯͱ͍͏৺ཧతෛ࠴Λฦ͢Ͱ͋Δňෛ࠴ฦࡁʯ
લͬͯ issue ΛཱͯͯΓ͍ͨ͜ͱΛॻ͍͓ͯ͘• 1ճͷෛ࠴ฦࡁ͕ऴΘͬͨλΠϛϯάͰ࣍ճ͕ εέδϡʔϦϯά͞Εɺissue ཱ͕ͯΒΕΔ
લͬͯ issue ΛཱͯͯΓ͍ͨ͜ͱΛॻ͍͓ͯ͘
©2018 Wantedly, Inc.• ͜͜ΛͳΜͱ͔͍ͨ͠ͱ͍͏ͷɺීஈͷ։ൃΛ͍ͯ͠Δͱ͖ʹײ͡Δ• ͕ͦͷͱ͖࣌ؒΛ͔͚ΒΕͳ͍͜ͱ͕ଟ͍• Issue ʹϝϞ͓͍ͯͯ͠ɺ͋ͱͰΔͱܾΊ͓ͯ͘͜ͱͰɺͦͷॠؒ։ൃʹूத͚ͭͮ͠ΒΕΔલͬͯ issue ΛཱͯͯΓ͍ͨ͜ͱΛॻ͍͓ͯ͘
©2018 Wantedly, Inc.• 10:00 ू·ͬͯλεΫΛཧׂͯ͠ΓৼΓ• 10:30~18:30 ֤ࣗλεΫʹऔΓΉ• 18:30 Ռൃදɾ;Γ͔͑Γ1ͷྲྀΕ
©2018 Wantedly, Inc.λεΫͷׂΓৼΓ
©2018 Wantedly, Inc.λεΫͷׂΓৼΓ• γʔτʹॻ͖ग़ͯ͠༏ઌΛ͚ͭͯΞαΠϯ• ͜͜ʹਐḿʢstatus: WIP/DONE PRͷϦϯΫʣॻ͖ࠐ·Ε͍ͯ͘• ϋοΧιϯײ
©2018 Wantedly, Inc.࠷ۙͬͨྫΛ͍͔ͭ͘հ
໘͚ͩͲΒͳ͖Ό͍͚ͳ͍ͭ
Facebook API Λ͍ଓ͚ΔͨΊʹΞϓϦϨϏϡʔΛૹΔ
ෛ࠴ฦࡁܥ
©2018 Wantedly, Inc.• ϦΫΤετϩάΛݩʹɺΘΕ͍ͯͳ͍ΤϯυϙΠϯτΛྻڍ• 2ਓͰ1Ͱ100ݸͷϖʔδΛআ• શମͷ7%ΛݮΘΕ͍ͯͳ͍ϖʔδͷআ
࡞ۀͷ༷ࢠ
ੜ࢈ੑ্ܥ
©2018 Wantedly, Inc.• config/routes.rb ͷத͕2300ߦ• (annotate ʹΑΔίϝϯτΛআ͍ͯ)• ಉ͡Ϧιʔε͕ଟͷ namespace Լʹଘࡏ• users• admin/users• enterprise/users• api/v1/users• api/v2/users• …config/routes.rb ϑΝΠϧΛׂ
config/routes.rb ϑΝΠϧΛׂ
©2018 Wantedly, Inc.• ઐ༻ͷΛઃ͚Δ͜ͱͰɺͦΕҎ֎ͷ αʔϏεΛ৳ͨ͢Ίͷ։ൃʹूதͰ͖Δ• ͕ܾ࣌ؒ·͍ͬͯΔ͜ͱͰूதྗ্͕͕Γɺ Ռ͕ग़͍͢ෛ࠴ฦࡁͷ͍͍ͱ͜Ζ
©2018 Wantedly, Inc.• νʔϜશһͰಉ͡ʹऔΓΉ͜ͱͰ• ΈΜͳͬͯΔͷͰɺଞͷਓʹฉ͖͍ͨ͜ͱ͕͋ͬͨͱ͖ؾ݉Ͷͳ͘ฉ͚Δ• ීஈͷ։ൃதͩͱअຐ͢Δͷਃ͠༁ͳ͍ͱ͍͏ؾ࣋ͪʹͳΔ• ͜ͷʹ͍Ζ͍Ζ͍͔ͬͨ͡ΒɺͳΜ͔յΕΔ͔ͱ͍͏ͷ͕ڞ༗͞ΕͯΔ• ීஈͷ։ൃதʹΖ͏ͱ͢Δͱɺͬͱ͘͢͝৻ॏʹਐΊΔඞཁ͕͋Δ• ʮ͋ͷਓෛ࠴͍Ζ͍Ζฦͯ͠Δ͚ͲɺՌग़ͯ͠ͳ͍ʯΈ͍ͨʹͳΒͳ͍ෛ࠴ฦࡁͷ͍͍ͱ͜Ζ
©2018 Wantedly, Inc.• ීஈผʑʹ։ൃ͍ͯ͠ΔνʔϜͷԣͷίϛϡχέʔγϣϯͷػձʹͳΔ• ීஈ͕ࣗ৮Βͳ͍ൣғؚΊɺίʔυϕʔεશମΛϝϯςφϯε͍ͯ͘͠ҙ͕ࣝੜ·ΕΔෛ࠴ฦࡁͷ͍͍ͱ͜Ζ
©2018 Wantedly, Inc.• ύοέʔδͷΞοϓσʔτ• ෛ࠴ฦࡁͷதͰ༏ઌ͕͘ͳΓ͕ͪ• ෛ୲ΛݮΒͨ͢Ίʹ Dependabot Λಋೖͯ͠ि࣍൪੍ʹ͢Δఆணͤͣ͏·͘Ͱ͖͍ͯͳ͍ͱ͜Ζ
©2018 Wantedly, Inc.• Gem ʢݱঢ়ʣશ෦ΔͷఘΊ͍ͯΔ• ඞཁʹͳͬͨͱ͖ʹΔ• ηΩϡϦςΟΞοϓσʔτऔΓࠐΉ• npm ύοέʔδ࠷৽ʹै͍͖͍ͯͨ͠…• ಛʹ React पΓͱ͔• ࠷ۙϑϩϯτΤϯυपΓͷج൫Λ͑Δઐͷ ϝϯόʔ͕Ͱ͖ͨͷͰظʂύοέʔδͷΞοϓσʔτ
©2018 Wantedly, Inc.• ࡉΕʹͰ͖ΔͳΒࡉΕʹ• ཻ͕େ͖͘ɺ͔ͭॏཁͳͷϓϩδΣΫτͱͯ͠εέδϡʔϧʹΈࠐΜͰΔ• େ͖ͳͦͦԿ͕ͳͷ͔ͷنΛௐΔͱ͜Ζ͔Β࢝ΊΔඞཁ͕͋Δ• ͦͷ࡞ۀΛෛ࠴ฦࡁʹΔ͜ͱ͋Δ1ͰΓ͖Εͳ͍λεΫ͕Ͱ͖ͳ͍ʁ
©2018 Wantedly, Inc.• 1લʹ 4.1 => 5.0 ʹ্͛ͨ• 4ܥʹ্͛ͨͷ2014• ґଘ gem ͷΞοϓσʔτͳͲࡉ͔͍࡞ۀ ਓͰࣄલʹ• ਓख͕ඞཁͳ࡞ۀνʔϜશһͰ͕ͬͱͬͨ• Breaking changesɺdeprecation warning ରԠ• ςετΛͻͨ͢Β௨ΔΑ͏ʹ͍ͯ͘͠• etc.Rails ΞοϓάϨʔυ
ؾ߹͍ͰΓͬͨ…͕ɺ
©2018 Wantedly, Inc.• 50ਓ͘Β͍͔͔ͬͨ• ఆͷഒҎ্• ϝδϟʔόʔδϣϯΛ্͛Δͷɺ͕ͬͱΔʹ͠ΜͲ͍ίʔυྔʹ• ࠓෛ࠴ฦࡁʹͰ͖ΔλεΫΛͪΐͪ͜ΐ͜ਐΊ͍ͯΔఆҎ্ʹେมͩͬͨ
©2018 Wantedly, Inc.• ͘αʔϏεΛ։ൃ͠ଓ͚Δʹɺίʔυϕʔεͷ݈શੑͱ։ൃͷੜ࢈ੑΛอ͍ͬͯ͘͜ͱ͕ඞཁ• ͱ͍͑KPIେࣄͳͷͰɺීஈͳ͔ͳ͔͕࣌ؒऔΕͳ͍• ʮෛ࠴ฦࡁʯͱ͍͏ઐ༻ͷΛઃ͚ͯɺूதతʹऔΓΉΑ͏ʹ͍ͯ͠Δ·ͱΊ
©2018 Wantedly, Inc.• ઐ༻ͷΛઃ͚Δ͜ͱͰɺͦΕҎ֎ͷ αʔϏεΛ৳ͨ͢Ίͷ։ൃʹूதͰ͖Δ• νʔϜશһͰಉ͡ʹऔΓΉ͜ͱͰɺίϛϡχέʔγϣϯऔΓ͍͢͠ɺใݟڞ༗͍͢͠• ීஈผʑʹ։ൃ͍ͯ͠ΔϝϯόʔɺνʔϜͰҰͭͷαʔϏεΛҡ͍࣋ͯ͘͠ͱ͍͏ҙ͕ࣝੜ·ΕΔ·ͱΊ
એWantedly ͰϛʔτΞοϓ͕࡞ΕΔΑ͏ʹͳΓ·ͨ͠ʂษڧձͱ͔ʹͬͯͶʂwww.wantedly.com/meetups