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.1k
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
モデルの説明コメントを書く文化が会社に浸透してきた話
stomk
0
340
A/Bテストをやるときに 気をつけていること
stomk
3
1.4k
Other Decks in Programming
See All in Programming
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
420
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
3
630
Java 22 Overview
kishida
1
170
Semantic search with Django and pgvector
pauloxnet
0
230
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
350
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
480
Site Reliability Engineering for GMO
pyama86
6
900
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
7
3.4k
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
39
18k
SpringBoot+MyBatisで例外が出たときどこを見るか
syukai
0
110
Git Lint
bkuhlmann
4
740
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
132
6.2k
GraphQLとの向き合い方2022年版
quramy
31
12k
Building a Scalable Design System with Sketch
lauravandoore
455
32k
The Language of Interfaces
destraynor
151
23k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2.1k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Thoughts on Productivity
jonyablonski
57
3.8k
4 Signs Your Business is Dying
shpigford
175
21k
Teambox: Starting and Learning
jrom
128
8.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
Building Better People: How to give real-time feedback that sticks.
wjessup
354
18k
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