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.2k
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
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
330
最短リリースの壁を超えろ!チーム立ち上げから71営業日でプロダクトリリースした話
daisukeshinoku
1
1.5k
Ruby と Rails の小ネタ集
daisukeshinoku
3
1.8k
受託開発から人事労務SaaSに転職して1年間でやったこと
daisukeshinoku
2
1.7k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
8
6.4k
テンショク・ジャーニー —航海士だった僕が、SaaS企業でエンジニアとして働き始めるまで—
daisukeshinoku
1
1.7k
仕事観がアップデートされた読書体験 「エンジニアリング組織論への招待」を読んで
daisukeshinoku
2
1.6k
はじめてのアジャイル・スクラム開発での新鮮な発見
daisukeshinoku
1
2.4k
スクラム & アジャイル本をまとめてみた
daisukeshinoku
0
730
Other Decks in Programming
See All in Programming
Findy Team+ Awardを受賞したかった!ベストプラクティス応募内容をふりかえり、開発生産性向上もふりかえる / Findy Team Plus Award BestPractice and DPE Retrospective 2024
honyanya
0
130
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
360
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.3k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
590
htmxって知っていますか?次世代のHTML
hiro_ghap1
0
400
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
220
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.2k
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
890
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
200
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.1k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
26
5.8k
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
270
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Automating Front-end Workflow
addyosmani
1366
200k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
BBQ
matthewcrist
85
9.4k
Six Lessons from altMBA
skipperchong
27
3.5k
Gamification - CAS2011
davidbonilla
80
5.1k
How to Ace a Technical Interview
jacobian
276
23k
Code Reviewing Like a Champion
maltzj
521
39k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Producing Creativity
orderedlist
PRO
343
39k
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 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠