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.2k
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
Engagement 事業チーム の開発事情
stomk
0
77
モデルの説明コメントを書く文化が会社に浸透してきた話
stomk
0
440
A/Bテストをやるときに 気をつけていること
stomk
3
1.5k
Other Decks in Programming
See All in Programming
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
280
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.1k
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
1.4k
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.3k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
350
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
Jakarta Concurrencyによる並行処理プログラミングの始め方 (JJUG CCC 2024 Fall)
tnagao7
1
290
初めてDefinitelyTypedにPRを出した話
syumai
0
400
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
110
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
910
Compose 1.7のTextFieldはPOBox Plusで日本語変換できない
tomoya0x00
0
190
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6k
Bash Introduction
62gerente
608
210k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Designing the Hi-DPI Web
ddemaree
280
34k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Teambox: Starting and Learning
jrom
133
8.8k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Adopting Sorbet at Scale
ufuk
73
9.1k
Into the Great Unknown - MozCon
thekraken
32
1.5k
A better future with KSS
kneath
238
17k
For a Future-Friendly Web
brad_frost
175
9.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
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