Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
7年間開発を続けるサービスを支える 負債返済日の取り組み
Search
Shingo Tomioka
December 08, 2018
Programming
3
2.4k
7年間開発を続けるサービスを支える 負債返済日の取り組み
Rails Developers Meetup 2018 Day 4 Nouvelle Vague (
https://techplay.jp/event/702297
) で話したスライドです。
Shingo Tomioka
December 08, 2018
Tweet
Share
More Decks by Shingo Tomioka
See All by Shingo Tomioka
Perk アプリの技術選定とリリースから1年弱経ってのふりかえり
stomk
0
410
Engagement 事業チーム の開発事情
stomk
0
160
モデルの説明コメントを書く文化が会社に浸透してきた話
stomk
0
550
A/Bテストをやるときに 気をつけていること
stomk
3
1.6k
Other Decks in Programming
See All in Programming
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
550
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
140
知られているようで知られていない JavaScriptの仕様 4選
syumai
0
570
flutter_kaigi_2025.pdf
kyoheig3
1
240
Snowflake リリースに注意を払いたくなる話
masaaya
0
110
乱雑なコードの整理から学ぶ設計の初歩
masuda220
PRO
29
10k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
450
Honoを技術選定したAI要件定義プラットフォームAcsimでの意思決定
codenote
0
150
The Missing Link in Angular's Signal Story: Resource API and httpResource
manfredsteyer
PRO
0
110
Introducing RemoteCompose: break your UI out of the app sandbox.
camaelon
2
540
Designing Repeatable Edits: The Architecture of . in Vim
satorunooshie
0
270
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Producing Creativity
orderedlist
PRO
348
40k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Cult of Friendly URLs
andyhume
79
6.7k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
320
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Side Projects
sachag
455
43k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
A designer walks into a library…
pauljervisheath
210
24k
GraphQLとの向き合い方2022年版
quramy
49
14k
Done Done
chrislema
186
16k
Transcript
©2018 Wantedly, Inc. 7ؒ։ൃΛଓ͚ΔαʔϏεΛࢧ͑Δ ෛ࠴ฦࡁͷऔΓΈ Rails Developers Meetup 2018 Day
4 Nouvelle Vague 8.Dec.2018 - Shingo Tomioka
©2018 Wantedly, Inc. • Ԭ ਅޛʢShingo Tomiokaʣ • ɹ @meea_t
• Wantedly, Inc. 2017৽ଔೖࣾ • Wantedly Visit ͷ Web ϑϩϯτΤϯυɾόοΫΤϯυΛ։ൃ ࣗݾհ
Wantedly Visit Ŗ ͨΒ͘Λ໘ന͘
։ൃνʔϜߏ • ΤϯδχΞ Web 12ਓɾΞϓϦ5ਓ͘Β͍ • 3~5ਓ͘Β͍ͰҰͭͷػೳΛ։ൃ͢ΔখνʔϜ ͕͍͔ͭ͋͘Δ VISIT
ΞʔΩςΫνϟ • WebɾόοΫΤϯυϞϊϦγοΫ Rails + α • ࠷ۙϚΠΫϩαʔϏεԽਐΊ͍ͯΔ͕ɺϝ ΠϯͷαʔϏεͣͬͱϝϯςφϯε͍ͯ͘͠ ඞཁ͕͋Δ
ϝΠϯϨϙδτϦͷίʔυྔʢߦʣ 0K 200K 400K 600K 800K 1,000K 2011 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 ϑΝΠϧΛׂ
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