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
DX(Developer Experience) x React x SPA 気持ちよく開発を...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Nakagawa Koh
October 16, 2019
Technology
0
35
DX(Developer Experience) x React x SPA 気持ちよく開発をするためのフロントエンド開発環境
Nakagawa Koh
October 16, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
Greatest Disaster Hits in Web Performance
guaca
0
290
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
260
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
520
22nd ACRi Webinar - ChipTip Technology Eric-san's slide
nao_sumikawa
0
100
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.3k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
390
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
今日から始めるAmazon Bedrock AgentCore
har1101
4
420
Context Engineeringの取り組み
nutslove
0
380
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
950
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
57
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
The SEO identity crisis: Don't let AI make you average
varn
0
330
Abbi's Birthday
coloredviolet
1
4.8k
GitHub's CSS Performance
jonrohan
1032
470k
Unsuck your backbone
ammeep
671
58k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Transcript
DX(Developer Experience) x React x SPA ؾ࣋ͪΑ͘։ൃΛ͢ΔͨΊͷϑϩϯτΤϯυ։ൃڥ Koh Nakagawa
None
อݥཧళ͚ͷސ٬ཧγεςϜΛ SPAͰ։ൃ͍ͯ͠·͢
Copyright ©2019 hokan, Inc. All rights reserved. େ·͔ͳϓϩμΫτհ 4 -ސ٬ཧ
-Ұཡ, ৄࡉ, ސ٬Ϛʔδ, ސ٬෮ݩ -ܖཧ -Ұཡ, ৄࡉ, ܖΠϯϙʔτ -Todoཧ -εέδϡʔϧཧ -ҙѲཧ -ઃఆ, ࣮ࢪ, ཧ -ΞϓϦέʔγϣϯઃఆ -άϧʔϓཧ, ϝϯόʔཧ, Ϛελཧ -…etc
ΞϓϦέʔγϣϯن͕ େ͖͘ͳΔʹͭΕͯ
૿͑ͯ͘ΔComponent atomicσβΠϯΛ࠾༻͍͕ͯͨ͠ ࠶ར༻͞Ε͍ͯͨΓɺ͠ͳ͔ͬͨΓ͢ΔOrganismୡ
ґଘؔͺͬͱΈ͔Βͣɺຖ֬ೝ… ։ൃͷؾ࣋ͪྑ͞ ↘↘︎
৳ͼ͖ͯͨBuild࣌ؒ - Production Build: 4 - Development Build: 3
γϯϓϧʹਏ͍… ։ൃͷؾ࣋ͪྑ͞ ↘↘︎
ͳΜͱ͔͠Α͏
~ ࠓ͢͜ͱ ~ - σΟϨΫτϦߏ͔ΒґଘؔΛ໌֬ʹ - webpackͷύϑΥʔϚϯενϡʔχϯά - ͓·͚ -
DLLόϯυϧͰ༻සͷߴ͍ϥΠϒϥϦΛϏϧυର֎ʹ - redux-dynamic-modulesͰɺactionsɺreducermoduleʹแ - aliasΛ࡞͠ɺimport࣌ͷύεࠈΛεοΩϦ
~ ࠓ͢͜ͱ ~ - σΟϨΫτϦߏ͔ΒґଘؔΛ໌֬ʹ - webpackͷύϑΥʔϚϯενϡʔχϯά - ͓·͚ -
DLLόϯυϧͰ༻සͷߴ͍ϥΠϒϥϦΛϏϧυର֎ʹ - redux-dynamic-modulesͰɺactionsɺreducermoduleʹแ - aliasΛ࡞͠ɺimport࣌ͷύεࠈΛεοΩϦ
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 13
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 14
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 15 ྫ͑ɺ͜ͷComponent
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 16 ྫ͑ɺ͜ͷComponent
͜ͷComponentͰ͔͠༻͞Ε͍ͯͳ͍
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 17 ྫ͑ɺ͜ͷComponent
͜ͷComponentͰ͔͠༻͞Ε͍ͯͳ͍ ͜ͷComponentͰ͔͠༻͞Ε͍ͯͳ͍
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 18 ྫ͑ɺ͜ͷComponent
͜ͷComponentͰ͔͠༻͞Ε͍ͯͳ͍ ސ٬ҰཡϖʔδͰ͔͠༻͍ͯ͠ͳ͍ ͜ͷComponentͰ͔͠༻͞Ε͍ͯͳ͍
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 19 ࠶ར༻͞Ε͍ͯͳ͍
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 20 -
࠶ར༻ੑͷߴ͍atomsɺmoleculesɺorganisms…etc packagesσΟϨΫτϦԼͷcomponentsʹ·ͱΊͯɺ ଞϓϩδΣΫτͰ͍ճͤΔΑ͏ʹ͢Δ - ΞϓϦέʔγϣϯґଘ͕ڧ͘࠶ར༻͕͍͠ͷ ֤ػೳϞδϡʔϧʹஔ͢Δ - ࠶ར༻͞ΕΔͷɺ͞Εͳ͍ComponentΛ໌֬ʹ͚ ͯɺӨڹൣғͷେ͖͕͞ஔ͞Ε͍ͯΔσΟϨΫτϦ͔ ΒஅͰ͖ΔΑ͏ʹ͢Δ
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 21 -
࠶ར༻ੑͷߴ͍atomsɺmoleculesɺorganisms…etc packagesσΟϨΫτϦԼͷcomponentsʹ·ͱΊͯɺ ଞϓϩδΣΫτͰ͍ճͤΔΑ͏ʹ͢Δ - ΞϓϦέʔγϣϯґଘ͕ڧ͘࠶ར༻͕͍͠ͷ ֤ػೳϞδϡʔϧʹஔ͢Δ - ࠶ར༻͞ΕΔͷɺ͞Εͳ͍ComponentΛ໌֬ʹ͚ ͯɺӨڹൣғͷେ͖͕͞ஔ͞Ε͍ͯΔσΟϨΫτϦ͔ ΒஅͰ͖ΔΑ͏ʹ͢Δ
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 22 -
࠶ར༻ੑͷߴ͍atomsɺmoleculesɺorganisms…etc packagesσΟϨΫτϦԼͷcomponentsʹ·ͱΊͯɺ ଞϓϩδΣΫτͰ͍ճͤΔΑ͏ʹ͢Δ - ΞϓϦέʔγϣϯґଘ͕ڧ͘࠶ར༻͕͍͠ͷ ֤ػೳϞδϡʔϧʹஔ͢Δ - ࠶ར༻͞ΕΔͷɺ͞Εͳ͍ComponentΛ໌֬ʹ͚ ͯɺӨڹൣғͷେ͖͕͞ஔ͞Ε͍ͯΔσΟϨΫτϦ͔ ΒஅͰ͖ΔΑ͏ʹ͢Δ
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 23 -
࠶ར༻ੑͷߴ͍atomsɺmoleculesɺorganisms…etc packagesσΟϨΫτϦԼͷcomponentsʹ·ͱΊͯɺ ଞϓϩδΣΫτͰ͍ճͤΔΑ͏ʹ͢Δ - ΞϓϦέʔγϣϯґଘ͕ڧ͘࠶ར༻͕͍͠ͷ ֤ػೳϞδϡʔϧʹஔ͢Δ - ࠶ར༻͞ΕΔͷɺ͞Εͳ͍ComponentΛ໌֬ʹ͚ ͯɺӨڹൣғͷେ͖͕͞ஔ͞Ε͍ͯΔσΟϨΫτϦ͔ ΒஅͰ͖ΔΑ͏ʹ͢Δ
Copyright ©2019 hokan, Inc. All rights reserved. σΟϨΫτϦߏͷݟ͠ 24 -
࠶ར༻ੑͷߴ͍atomsɺmoleculesɺorganisms…etc packagesσΟϨΫτϦԼͷcomponentsʹ·ͱΊͯɺ ଞϓϩδΣΫτͰ͍ճͤΔΑ͏ʹ͢Δ - ΞϓϦέʔγϣϯґଘ͕ڧ͘࠶ར༻͕͍͠ͷ ֤ػೳϞδϡʔϧʹஔ͢Δ - ࠶ར༻͞ΕΔͷɺ͞Εͳ͍ComponentΛ໌֬ʹ͚ ͯɺӨڹൣғͷେ͖͕͞ஔ͞Ε͍ͯΔσΟϨΫτϦ͔ ΒஅͰ͖ΔΑ͏ʹ͢Δ ސ٬ҰཡϖʔδͰ͔͠༻͍ͯ͠ͳ͍ Componentͨͪ͜͜
~ ࠓ͢͜ͱ ~ - σΟϨΫτϦߏ͔ΒґଘؔΛ໌֬ʹ - webpackͷύϑΥʔϚϯενϡʔχϯά - ͓·͚ -
DLLόϯυϧͰ༻සͷߴ͍ϥΠϒϥϦΛϏϧυର֎ʹ - redux-dynamic-modulesͰɺactionsɺreducermoduleʹแ - aliasΛ࡞͠ɺimport࣌ͷύεࠈΛεοΩϦ
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 26 1ճ
2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 27 1ճ
2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before Chunkଟ͘ͳΔͱɺ ϏϧυύϑΥʔϚϯε͓ͪΔΑ
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 28 1ճ
2ճ 3ճ Production Build 4:51.91 → 3:35.98 2:31.80 → 1:43.90 2:28.97 → 1:39.57 Development Build 3:02.79 → 2:03.73 1:28.87 → 1:06.30 1:38.34 → 1:07.52 After: ػೳϞδϡʔϧ͝ͱʹCodeSpliteͱLazyLoad - ෆཁͳCodeSplite͞Ε͍ͯͨ෦Λमਖ਼: 52 js chunks → 23 js chunks
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 29 1ճ
2ճ 3ճ Production Build 3:08.93 1:39.87 1:00.54 Development Build 2:04.49 1:06.30 → 00:28.78 1:07.52 → 00:25.93 After: HardSourceWebpackPluginͷಋೖͱCacheGroupઃఆ -Ϗϧυ݁ՌΛHardSourceWebpackPluginCacheGroupͰcache
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 30 1ճ
2ճ 3ճ Production Build 3:08.93 1:39.87 1:00.54 Development Build 2:04.49 00:28.78 00:25.93 After: HardSourceWebpackPluginͷಋೖͱCacheGroupઃఆ 1ճ 2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 31 1ճ
2ճ 3ճ Production Build 3:08.93 1:39.87 1:00.54 Development Build 2:04.49 00:28.78 00:25.93 After: HardSourceWebpackPluginͷಋೖͱCacheGroupઃఆ 1ճ 2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 32 1ճ
2ճ 3ճ Production Build 3:08.93 1:39.87 1:00.54 Development Build 2:04.49 00:28.78 00:25.93 After: HardSourceWebpackPluginͷಋೖͱCacheGroupઃఆ 1ճ 2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before
Copyright ©2019 hokan, Inc. All rights reserved. webpackͷύϑΥʔϚϯενϡʔχϯά 33 1ճ
2ճ 3ճ Production Build 3:08.93 1:39.87 1:00.54 Development Build 2:04.49 00:28.78 00:25.93 After: HardSourceWebpackPluginͷಋೖͱCacheGroupઃఆ 1ճ 2ճ 3ճ Production Build 4:51.91 2:31.80 2:28.97 Development Build 3:02.79 1:28.87 1:38.34 Before
~ ͓·͚ ~ - DLLόϯυϧͰ༻සͷߴ͍ϥΠϒϥϦΛϏϧυର֎ʹ - redux-dynamic-modulesͰɺactionsɺreducermoduleʹแ - aliasΛ࡞͠ɺimport࣌ͷύεࠈΛεοΩϦ
ࠂ
None
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠