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
Server-Side Team in Toreta
Search
Masato Nakamura
August 08, 2017
Programming
440
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
900
プロダクト開発におけるライブラリアップデートのタイミング #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
290
Maintain our records correctly #first_english_presentation
m_nakamura145
1
970
グローバルサービスを作る時に考えておくこと #railsdm
m_nakamura145
4
4k
What material do you use in DMM eikaiwa? #DMM英会話 #clem_jp
m_nakamura145
1
4.8k
Other Decks in Programming
See All in Programming
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
480
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
110
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
340
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
190
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1k
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
380
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
250
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
7
2.9k
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
13k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
260
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Odyssey Design
rkendrick25
PRO
2
730
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
340
The untapped power of vector embeddings
frankvandijk
2
1.8k
Code Review Best Practice
trishagee
74
20k
The agentic SEO stack - context over prompts
schlessera
0
840
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Building Applications with DynamoDB
mza
96
7.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ΞʔΩςΫνϟ • αʔόαΠυνʔϜͷϛογϣϯ • Ϣʔβͷ՝Λղܾ͢ΔͨΊʹ͍ͬͯΔ͜ͱ ࠓ͓ͨ͜͠ͱ