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.1k
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
最短リリースの壁を超えろ!チーム立ち上げから71営業日でプロダクトリリースした話
daisukeshinoku
1
1.2k
Ruby と Rails の小ネタ集
daisukeshinoku
3
1.4k
受託開発から人事労務SaaSに転職して1年間でやったこと
daisukeshinoku
2
1.4k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
8
6k
テンショク・ジャーニー —航海士だった僕が、SaaS企業でエンジニアとして働き始めるまで—
daisukeshinoku
1
1.4k
仕事観がアップデートされた読書体験 「エンジニアリング組織論への招待」を読んで
daisukeshinoku
2
1.3k
はじめてのアジャイル・スクラム開発での新鮮な発見
daisukeshinoku
1
2k
スクラム & アジャイル本をまとめてみた
daisukeshinoku
0
690
アジャイルな状態を追い求める ~2024年の抱負宣言~
daisukeshinoku
0
180
Other Decks in Programming
See All in Programming
Android開発以外のAndroid開発経験の活かしどころ
konifar
2
910
LangChainでWebサイトの内容取得やGitHubソースコード取得
shukob
0
160
Amebaチョイス立ち上げの裏側 ~依存システムとの闘い~
daichi_igarashi
0
230
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
100
Shinjuku.rb#95:心の技術書紹介
free_world21
1
100
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
9
2.4k
GoのIteratorに詳しくなってしまう
inatonix
1
200
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
420
Regular Expressions, REXML, Automata Learning
makenowjust
0
220
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
Desafios e Lições Aprendidas na Migração de Monólitos para Microsserviços em Java
jessilyneh
2
140
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
190
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Speed Design
sergeychernyshev
22
430
Faster Mobile Websites
deanohume
304
30k
We Have a Design System, Now What?
morganepeng
48
7.1k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
157
15k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
600
Designing for Performance
lara
604
68k
It's Worth the Effort
3n
182
27k
Large-scale JavaScript Application Architecture
addyosmani
508
110k
BBQ
matthewcrist
83
9.1k
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 ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠