Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Server-Side Team in Toreta
Search
Masato Nakamura
August 08, 2017
Programming
450
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Server-Side Team in Toreta
https://atnd.org/events/89458
の発表資料です
Masato Nakamura
August 08, 2017
More Decks by Masato Nakamura
See All by Masato Nakamura
トレタのプロダクト開発 #TORETA_TECH_TALK
m_nakamura145
0
910
プロダクト開発におけるライブラリアップデートのタイミング #gotandarb
m_nakamura145
0
460
成長したrailsアプリの割れ窓を防ぐCircleCI #circlecijp
m_nakamura145
2
1k
オンライン予約徹底解説 #railsdm2019
m_nakamura145
4
6k
SaaSのDBリファクタリング #omotesandorb
m_nakamura145
2
410
Sidekiq Worker設計のコツ #ebisurb
m_nakamura145
2
300
Maintain our records correctly #first_english_presentation
m_nakamura145
1
980
グローバルサービスを作る時に考えておくこと #railsdm
m_nakamura145
4
4.1k
What material do you use in DMM eikaiwa? #DMM英会話 #clem_jp
m_nakamura145
1
4.8k
Other Decks in Programming
See All in Programming
Verilogで学ぶCPU自作入門
uyuki234
8
4.1k
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
170
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
180
Kotlinの15年とServer-Side Kotlin
n_takehata
1
120
APNsからLive Activityを開始する話
yumnumm
0
170
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
970
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
210
Agents on Rails - Rails at Scale 2026
irinanazarova
0
530
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
780
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.8k
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
160
気持ちぃ〜角丸 Squircle
ryu1013
0
290
Featured
See All Featured
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
800
Everyday Curiosity
cassininazir
0
350
Fireside Chat
paigeccino
43
4.1k
What's in a price? How to price your products and services
michaelherold
247
13k
For a Future-Friendly Web
brad_frost
184
10k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
The Curious Case for Waylosing
cassininazir
1
570
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
730
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
The browser strikes back
jonoalderson
0
1.8k
Raft: Consensus for Rubyists
vanstee
142
7.8k
Transcript
Server-Side Team in Toreta @m_nakamura145
ࣗݾհ • Masato Nakamura • @m_nakamura145 • Server-Side Engineer •
Recruit Holdings -> Toreta(2016/10ʙ)
ࠓ͓͢Δ͜ͱ • τϨλͷαʔϏεͱAPIΞʔΩςΫνϟ • αʔόαΠυνʔϜͷϛογϣϯ • Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱ
None
None
None
None
None
None
Toreta Core API • First commit20138݄ • िʹ1ճͷDeploy • ݱࡏ5໊Ͱ։ൃ
• @swdyh,@ziguzagu,@serihiro,@fregdee,@m-nakamura145
+----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes |
Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 22229 | 19006 | 173 | 942 | 5 | 18 | | Helpers | 223 | 200 | 0 | 26 | 0 | 5 | | Models | 12651 | 7693 | 187 | 510 | 2 | 13 | | Mailers | 370 | 312 | 10 | 19 | 1 | 14 | | Javascripts | 4701 | 2948 | 16 | 367 | 22 | 6 | | Libraries | 1699 | 1264 | 36 | 112 | 3 | 9 | | Concern specs | 478 | 396 | 0 | 3 | 0 | 130 | | Controller specs | 29728 | 26235 | 3 | 7 | 2 | 3745 | | Helper specs | 139 | 118 | 0 | 0 | 0 | 0 | | Lib specs | 498 | 441 | 0 | 0 | 0 | 0 | | Mailer specs | 2009 | 1721 | 0 | 1 | 0 | 1719 | | Model specs | 13909 | 10891 | 0 | 2 | 0 | 5443 | | Request specs | 91 | 66 | 0 | 0 | 0 | 0 | | View specs | 672 | 569 | 0 | 0 | 0 | 0 | | Worker specs | 3583 | 3113 | 1 | 4 | 4 | 776 | +----------------------+-------+-------+---------+---------+-----+-------+ | Total | 92980 | 74973 | 426 | 1993 | 4 | 35 | +----------------------+-------+-------+---------+---------+-----+-------+
ن • αʔϏεఏڙࠃ:15ϱࠃҎ্ʢຊɺγϯΨϙʔϧɺɺؖࠃɺϕτφϜɺϚ ϨʔγΞɺΠϯυωγΞɺλΠɺΧϯϘδΞɺϑΟϦϐϯɺχϡʔδʔϥϯυɺΦʔετϥϦΞɺ ΞϝϦΧɺΠΪϦεɺΤδϓτ, etc…ʣ • ళฮ:8500ళฮ • ྦྷܭ༧ਓ:1ԯ2000ສਓ
"1*ΞʔΩςΫνϟ
Toreta Manager iPad Client Web Reservation (Customer) Phone Call Toreta
Core API
POS Toreta Manager iPad Client Web Reservation (Customer) Phone Call
POS Connect API Toreta Core API
POS Toreta Manager iPad Client Web Reservation (Customer) Phone Call
Gourmet media POS Connect API Toreta Core API Mail Importer API
POS Toreta Manager iPad Client Web Reservation (Customer) Phone Call
Gourmet media POS Connect API Toreta Core API Mail Importer API MySQL to BigQuery
αʔόαΠυνʔϜͷϛογϣϯ • ٕज़ͱσʔλΛͬͯϢʔβͷຊ࣭తͳ՝Λղܾ͢Δ • ϢʔβʹܟҙΛࠐΊͯରԠ͢Δ • ٕज़Ͱ৫શମͷੜ࢈ੑΛ্͛Δ
ΞΫγϣϯ • τϨλͷશAPIͷઃܭɾ։ൃɾӡ༻ • ͚ࣾπʔϧʢa.k.aτϨλཧʣͷ։ൃ • ͍߹ΘͤରԠ • ੳΫΤϦͷ࡞
τϨλཧ • ͚ࣾཧπʔϧ • ಋೖళฮͷτϨλར༻ঢ়گΛݟΔɾઃఆΛཧ͢Δ • ࣾһશһ͕ຖݟΔ
None
"1*։ൃ • Design Doc • Github issues • ࣮ɾςετ •
ಈ࡞֬ೝ on Shining Wizard • QA • ϦϦʔε
None
None
• ػೳ։ൃͱಉ͡ॏཁͰϦϑΝΫλϦϯά͢Δ • খ͍͞ϦϑΝΫλϦϯάػೳ։ൃͷϓϩδΣΫτͰߦ͏ • GemͷཧͳͲɺ͋Δఔ·ͱ·ͬͨλεΫվળ෦Ͱߦ͏ • େ͖͍ϦϑΝΫλϦϯάͦΕࣗମΛϓϩδΣΫτʹ͢Δ Refactoring
None
͍߹ΘͤରԠ • ͓٬༷͔Βͷతͳ͍߹ΘͤΧελϚʔαϙʔτνʔϜ ͕ରԠ • όάͷ͍ٙෳࡶͳ༷֬ೝͷ࣌ʹΤϯδχΞ͕ରԠ • ࣋ͪճΓ੍Ͱͳ͘ɺνʔϜશһͰԠͯ͠ૣ͔ͬͨਓ͕ରԠ • جຊతʹͰ͖Δ͚͙ͩ͢ରԠͦ͠ͷͰղܾ͢Δ
None
None
σʔλͱ͖߹͏ • ਖ਼͍͠՝ʹऔΓΉͨΊʹ • ࡞ͬͨػೳ͕՝Λղܾ͔ͨ͠Λ͔֬ΊΔͨΊʹ • τϨλΛಋೖ͍͍ͯͨͩͨ͠ళฮΛαϙʔτ͢ΔͨΊʹ
ਖ਼͍͠՝ʹऔΓΉ • ৽ػೳͷՁԾઆΛߟ͑Δஈ֊͔ΒσʔλΛݟͳ͕Βٞ͢Δ
None
࡞ͬͨػೳ͕՝Λղܾ͔ͨ͠Λ͔֬ΊΔ • ৽ػೳΛϦϦʔε͢Δ͚ͩͰऴΘΒͳ͍ • ࣮ࡍʹػೳ͕ΘΕ͍ͯΔ͔Λσʔλ͔Β֬ೝ͢Δ • ࣍ͷਖ਼͍͠՝ͷώϯτΛಘΔ
None
• τϨλΛಋೖ͍͍ͯͨͩͨ͠ళฮΛαϙʔτ͠ɺച্Λ࠷େԽ ͢Δάϧʔϓ • SaaSͷཁ • ʢChurmʣΛ͘͢ΔͨΊʹɺళฮʹ͚༷ͯʑͳΞΫ γϣϯΛى͜͢ • ΞΫγϣϯΛى͖͜͢ళฮΛσʔλ͔Βಋ͖ग़͢
Customer Success Group
None
σʔλͷ࣭Λ্͍͛ͯ͘ • ܧଓతͳDB Refactoring • Data Martͷ࡞ • ࠓ·ͰऔΕͯͳ͔ͬͨσʔλΛऔΕΔΑ͏ʹ͢Δ •
ྫ: τϨλϑΥϯ • ࣾͰ͍Ζ͍Ζͳਓ͕σʔλੳΛߦ͑ΔΑ͏ʹ͢Δ
None
None
• τϨλͷαʔϏεͱAPIΞʔΩςΫνϟ • αʔόαΠυνʔϜͷϛογϣϯ • Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱ ࠓ͓ͨ͜͠ͱ