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
create_tableをしただけなのに〜囚われのuuid編〜
daisukeshinoku
0
470
最短リリースの壁を超えろ!チーム立ち上げから71営業日でプロダクトリリースした話
daisukeshinoku
1
1.7k
Ruby と Rails の小ネタ集
daisukeshinoku
3
2k
受託開発から人事労務SaaSに転職して1年間でやったこと
daisukeshinoku
2
1.9k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
8
6.7k
テンショク・ジャーニー —航海士だった僕が、SaaS企業でエンジニアとして働き始めるまで—
daisukeshinoku
1
1.9k
仕事観がアップデートされた読書体験 「エンジニアリング組織論への招待」を読んで
daisukeshinoku
2
1.8k
はじめてのアジャイル・スクラム開発での新鮮な発見
daisukeshinoku
2
2.6k
スクラム & アジャイル本をまとめてみた
daisukeshinoku
0
770
Other Decks in Programming
See All in Programming
インターフェース設計のコツとツボ
togishima
2
680
XSLTで作るBrainfuck処理系
makki_d
0
140
プロダクト開発でも使おう 関数のオーバーロード
yoiwamoto
0
130
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
Blueskyのプラグインを作ってみた
hakkadaikon
1
440
2度もゼロから書き直して、やっとブラウザでぬるぬる動くAIに辿り着いた話
tomoino
0
140
Passkeys for Java Developers
ynojima
2
800
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
1
150
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
210
「兵法」から見る質とスピード
ickx
0
240
💎 My RubyKaigi Effect in 2025: Top Ruby Companies 🌐
yasulab
PRO
1
130
iOSアプリ開発もLLMで自動運転する
hiragram
6
2.3k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
180
53k
Designing Experiences People Love
moore
142
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
A better future with KSS
kneath
239
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
We Have a Design System, Now What?
morganepeng
52
7.6k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
770
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 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠