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.3k
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
310
Engagement 事業チーム の開発事情
stomk
0
140
モデルの説明コメントを書く文化が会社に浸透してきた話
stomk
0
530
A/Bテストをやるときに 気をつけていること
stomk
3
1.6k
Other Decks in Programming
See All in Programming
可変性を制する設計: 構造と振る舞いから考える概念モデリングとその実装
a_suenami
10
1.4k
The Niche of CDK Grant オブジェクトって何者?/the-niche-of-cdk-what-isgrant-object
hassaku63
1
740
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
140
Google I/O Extended Incheon 2025 ~ What's new in Android development tools
pluu
1
220
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
330
新世界の理解
koriym
0
120
Claude Code派?Gemini CLI派? みんなで比較LT会!_20250716
junholee
1
790
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
180
ご注文の差分はこちらですか? 〜 AWS CDK のいろいろな差分検出と安全なデプロイ
konokenj
5
750
Claude Code で Astro blog を Pages から Workers へ移行してみた
codehex
0
170
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
CIを整備してメンテナンスを生成AIに任せる
hazumirr
0
490
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Gamification - CAS2011
davidbonilla
81
5.4k
A Tale of Four Properties
chriscoyier
160
23k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Adopting Sorbet at Scale
ufuk
77
9.5k
The Invisible Side of Design
smashingmag
301
51k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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