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
470
成長したrailsアプリの割れ窓を防ぐCircleCI #circlecijp
m_nakamura145
2
1k
オンライン予約徹底解説 #railsdm2019
m_nakamura145
4
6.1k
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.9k
Other Decks in Programming
See All in Programming
Getting Started with Vibe Coding
miccheng
0
190
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
120
AIが生成したコードは読むべきか?抽象化設計とコードの品質保証 / abstraction-design-and-quality
minodriven
16
8.8k
Kotlinize Is Not Just Converting to Kotlin
chigichan24
1
220
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
370
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
Crash Auto Pipelines
veronikapj
1
390
Seven New Principles of Software Engineering
yegor256
0
470
ActionController meets Protocol Buffers
sorah
1
790
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
560
オーケストレーション記述言語 Katari
yukikurage
0
240
Featured
See All Featured
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
420
How STYLIGHT went responsive
nonsquared
100
6.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Making Projects Easy
brettharned
120
6.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
Leo the Paperboy
mayatellez
10
2.4k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
First, design no harm
axbom
PRO
2
1.4k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
760
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1.1k
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ΞʔΩςΫνϟ • αʔόαΠυνʔϜͷϛογϣϯ • Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱ ࠓ͓ͨ͜͠ͱ