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
SmartHRのパフォーマンス改善が 総力戦だった話
Search
DaisukeShinoku
September 11, 2023
Programming
9
4.3k
SmartHRのパフォーマンス改善が 総力戦だった話
2023.09.08 Fri. Meetup for Ruby Engineers@メドピア株式会社様オフィス
https://medpeer.connpass.com/event/292464/
DaisukeShinoku
September 11, 2023
Tweet
Share
More Decks by DaisukeShinoku
See All by DaisukeShinoku
Roppongi.rbへの会場提供を始めて1年が経ちました
daisukeshinoku
0
30
Looks Good To Me 読書会でレビューの質が向上した話
daisukeshinoku
0
120
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
530
最短リリースの壁を超えろ!チーム立ち上げから71営業日でプロダクトリリースした話
daisukeshinoku
1
1.8k
Ruby と Rails の小ネタ集
daisukeshinoku
3
2.1k
受託開発から人事労務SaaSに転職して1年間でやったこと
daisukeshinoku
2
2k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
8
6.8k
テンショク・ジャーニー —航海士だった僕が、SaaS企業でエンジニアとして働き始めるまで—
daisukeshinoku
1
2k
仕事観がアップデートされた読書体験 「エンジニアリング組織論への招待」を読んで
daisukeshinoku
2
1.9k
Other Decks in Programming
See All in Programming
Processing Gem ベースの、2D レトロゲームエンジンの開発
tokujiros
2
130
AIでLINEスタンプを作ってみた
eycjur
1
230
Deep Dive into Kotlin Flow
jmatsu
1
380
Testing Trophyは叫ばない
toms74209200
0
900
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
580
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
280
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
6.3k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
430
Tool Catalog Agent for Bedrock AgentCore Gateway
licux
7
2.6k
はじめてのMaterial3 Expressive
ym223
2
930
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
360
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
246
12k
Navigating Team Friction
lara
189
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Docker and Python
trallard
46
3.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Site-Speed That Sticks
csswizardry
10
830
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Documentation Writing (for coders)
carmenintech
74
5k
Transcript
4NBSU)3ͷύϑΥʔϚϯεվળ͕ ૯ྗઓͩͬͨ 'SJ.FFUVQGPS3VCZ&OHJOFFST!ϝυϐΞגࣜձ༷ࣾΦϑΟε ৽Ԟେհ 4NBSU)3αʔόʔαΠυΤϯδχΞ
৽Ԟେհʢ͠Μ͓͍͚ͩ͘͢ʣ ߤւ࢜ 8FCडୗ։ൃΤϯδχΞ ϲ݄ 4NBSU)3ΤϯδχΞ ϲ݄
ࣗΒધΛૢॎͯ͠ύφϚӡՏΛͬͨ །Ұͷຊਓ8FCΤϯδχΞʢଟʣ ࣗݾհ ଠฏ༸ େ༸
4NBSU)3ʹೖࣾͨͯ͠ͷࢲ͕ɺੳϨϙʔτ։ൃ νʔϜͰύϑΥʔϚϯεվળʹऔΓΜͰײͨ͡ ʮ4NBSU)3։ൃ৫ͷ૯ྗઓͿΓʯʹ͍ͭͯ ˣ ͬͯ΄͍͠ͱ͜Ζ ɾνʔϜϫʔΫతͳ૯ྗઓͿΓ ɾπʔϧతͳ૯ྗઓͿΓ ຊͷςʔϚ ։ൃऀମݧ͕ྑ͍ʂ
ੳϨϙʔτͱ ਓࣄσʔλΛूܭɾՄࢹԽ͢Δ#*πʔϧ ɾ4NBSU)3ຊମ͔Β)551௨৴Ͱσʔλऔಘ ɾՄࢹԽ࣮ݱͷͨΊͷෳࡶͳΫΤϦ ɾ͍ྺ࢙Ͱൃੜͨ͠ෛ࠴ʢ݄dʣ ˣ ύϑΥʔϚϯε໘ͰϢʔβʔͷӡ༻ʹࢧোΛ དྷ͍ͯ͠ΔڪΕ 4NBSU)3ຊମ ੳϨϙʔτ
)551
ύϑΥʔϚϯεվળͷ͖͔͚ͬ ɾେاۀͱஊ૿Ճ ɾنͷେ͖͍Ϣʔβʔاۀͷ૿Ճ ϏδωεతཁҼ #JH2VFSZ3FEBTIΛར༻ ͨ͠ʑͷੳ #J[ϝϯόʔ˱%FWϝϯόʔ Ͱͷίϛϡχέʔγϣϯ
4NBSU)3ʹ͓͚Δ#JH2VFSZͱ3FEBTI ֤ϓϩμΫτͷσʔλΛݸਓใΛϚεΫͯ͠#JH2VFSZ *NQPSU͢ΔΈΛΫϥυج൫νʔϜओಋͰߏங ˣ 3FEBTIͱ͍͏πʔϧͰੳۀʹར༻
ύϑΥʔϚϯεվળͷ͡·Γ ɾσʔλಉظͷ࣌ؒԽ ɾԿेඵ୯ҐͷϨεϙϯεͷൃੜ ٕज़తཁҼ /FX3FMJDμογϡϘʔυʹ ͯϞχλϦϯά
/FX3FMJDͷ׆༻ ҟৗࣄଶʢஶ͍͠ϨεϙϯεѱԽͳͲʣ Λݕ͢ΔͨΊ/FX3FMJDμογϡϘʔυΛར༻
૯ྗઓͰऔΓΉύϑΥʔϚϯεվળ ຊମੳϨϙʔτؒͷσʔλಉظॲཧΛվળͨ͠ࣄ ྫΛղઆ ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
ݱঢ়ੳʢଌఆ༻ςετςφϯτͷ४උʣ 4NBSU)3Ͱଟ༷ͳσʔλΛѻ͍ͬͯΔͨΊɺςετ ༻ͷςφϯτͷ࡞ʹ࿑ྗ͕͔͔Δ ˣ ࣭อূͷϓϩɺ2"άϧʔϓ͕ཧ͢Δσʔλ࡞ε ΫϦϓτͷग़൪
ݱঢ়ੳʢϦΞϧςφϯτͷੳʣ ࣮ࡍͷϢʔβʔͷ༻ײѲ͍ͨ͠ ˠ/FX3FMJDμογϡϘʔυ($1ͷ-PH"OBMZUJDT ͰϩάΛৄࡉੳ
ݱঢ়ੳʢݱঢ়ͷՄࢹԽʣ σʔλಉظʹ͔͔ͬͨ࣌ؒΛاۀنɾॴཁ࣌ؒͰྨ ͯ͠ΤϯδχΞҎ֎ʹҰͰΘ͔ΔΑ͏ՄࢹԽ ਓҎԼ dਓ dਓ ਓ
ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
ΰʔϧઃఆ ʮݱঢ়͔ΒͲͷΑ͏ͳঢ়ଶʹͳΕվળͱݴ͑Δʁʯ ։ൃϝϯόʔͷΛ͑ͯؔऀΛר͖ࠐΜͰٞ ˠΤϯδχΞͱؔऀؒͷೝࣝͷζϨΛຒΊΔ ˠϢʔβʔͱ͍ۙॴʹ͍Δ#J[ϝϯόʔͷײ֮Λฉ͘
ΰʔϧઃఆ Ϣʔβʔͱ͢Δػձͷଟ͍ʮΧελϚʔαΫηεʯ ʮνϟοταϙʔτʯϝϯόʔͷҙݟʹΑͬͯɺΑΓߴ ͍ղ૾Ͱͷΰʔϧઃఆ͕Մೳʹʂ ։ൃνʔϜ εςʔΫϗϧμʔ
ΰʔϧઃఆ zdਓنͷςφϯτzͰҎׂྃ߹ ˠϏδωε্ͷྗλʔήοτʹͬͯΒ͑Δਫ४ Ҏ Ҏ ݱঢ়
ࢦ͢ΰʔϧ
ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
ԾઆݕূʢԾ࣮ʣ -PH"OBMZUJDTʹΑΔϩάͷৄࡉੳɿ ຊମੳϨϙʔτؒͷࠩΛൺֱͤͣຖಉظͰ <আ>ˠ<৽نొ>ΛҰׅͰ͍ͯ͠ΔॲཧΛൃݟ ࣮ํɿ ಉظॲཧ࣮ߦ࣌ͷຊମੳϨϙʔτؒͷࠩʹԠͯ͡ <৽نొ>ɺ<ߋ৽>ɺ<আ>ɺ<Կ͠ͳ͍ʢߋ৽ͳ͠ʣ> Λࡉ੍͔͘ޚ͢Δ͜ͱͰߴԽ͢ΔͱԾઆ Ծ࣮ஈ֊ͰܭଌΛ࣮ࢪ
Ծઆݕূʢܭଌʣ ಈ࡞ݕূ༻ڥΛຊ൪ڥͱಉεϖοΫʹҰ࣌తʹ૿ ڧͯ͠ܭଌͨ݁͠Ռ ඵˠඵʢഒʣ ͱ͍͏݁ՌͱͳΓ֬ͷߴ͍վળҊͰ͋Δ͜ͱΛ֬৴
Ծઆݕূʢܭଌʣ ಈ࡞ݕূ༻ڥΛຊ൪ڥͱಉεϖοΫʹҰ࣌తʹ૿ ڧͯ͠ܭଌͨ݁͠Ռ ඵˠඵʢഒʣ ͱ͍͏݁ՌͱͳΓ֬ͷߴ͍վળҊͰ͋Δ͜ͱΛ֬৴ 4NBSU)3Πϯϑϥࣄ Ϋϥυج൫νʔϜओಋͰ5FSSBGPSNΛಋೖࡁ ։ൃνʔϜ͕ύϥϝʔλʔΛઃఆ͢Δ͚ͩͰڥߏங͕Մೳ
ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
࣮ɾϦϦʔε Ծ࣮ঢ়ଶ͔Β҆શੑΛ୲อ͢ΔϑΣʔζͰطଘͷςετ ίʔυෆͷཁҼ͕͋ΓϦϦʔεΛҰԆظ͕ͨ͠ɾɾ ˣ ϞϒϓϩɺίʔυϨϏϡʔΛ௨ͯ͠νʔϜશһ͕ࣗ৴Λ ࣋ͬͨঢ়ଶͰຬΛ࣋ͯ͠ຊ൪ڥϦϦʔεʂʂ ৺ʹͬͨ1E. ͷίϝϯτ ΤϯδχΞͷഽײ֮ॏཁͳͷͰ ʮςετͳ͍ͷා͍ΑͶʯͬͯ
ϦϦʔεʹͬͨΛ͔͚ͯ͘ΕΔͷ ͱͯॿ͔Δ
ΰʔϧઃఆ ݱঢ়ੳ Ծઆݕূ ࣮ɾϦϦʔε ޮՌଌఆ
ޮՌଌఆ ςετςφϯτͰͷ݁ՌɺಛఆςφϯτͰͷϩά͚ͩͰ ͳ͘ɺվળޮՌ3FEBTIΛ͔ͬͯͬ͠ΓͱՄࢹԽ͢Δ վળલ վળޙ ୭͕ݟͯվળ͕໌Β͔ʂ
CONFIDENTIAL ඪୡͰ͖ͨͷ͔ʁʁ ϥΠϯ վળલ zdਓنͷςφϯτzͰҎׂྃ߹ Ҏ
CONFIDENTIAL ϥΠϯ վળલ վળޙ zdਓنͷςφϯτzͰҎׂྃ߹ Ҏ Ҏ ඪୡͰ͖ͨͷ͔ʁʁ
CONFIDENTIAL ୡʂʂ
CONFIDENTIAL ύϑΥʔϚϯεվળରσʔ λಉظ͚ͩͰͳ͍ɾɾɾ
CONFIDENTIAL ϑϩϯτͷϨϯμϦϯάॲཧ άϥϑදࣔͷͨΊͷ42-FUDʜ
CONFIDENTIAL ԶͨͪੳϨϙʔτ։ൃνʔϜ ͷઓ͍͜Ε͔Βͩʂ
CONFIDENTIAL ͱ͍͏͜ͱͰຊͷ·ͱΊ
CONFIDENTIAL ύϑΥʔϚϯεվળͷऔΓΈํ ɾؔऀΛ͘ר͖ࠐΉνʔϜϓϨΠ ɾࣾͰར༻Ͱ͖ΔπʔϧΛ࠷େݶ׆༻ ˣ ɾνʔϜ͕ಉ͡ํΛ͍͍ͯΔҰମײ ɾվળ͕Ϣʔβʔʹಧ͍͍ͯΔͱ͍͏ࣗ৴ ։ൃऀମݧͷ্ʹܨ͕͍ͬͯΔ
CONFIDENTIAL ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠