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
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
Claude Codeを使った情報整理術
knishioka
20
12k
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
210
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
400
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
20k
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
770
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
16
4.7k
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
390
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
Digitization部 紹介資料
sansan33
PRO
1
6.4k
AI: The stuff that nobody shows you
jnunemaker
PRO
1
160
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Un-Boring Meetings
codingconduct
0
170
Game over? The fight for quality and originality in the time of robots
wayneb77
1
76
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
590
Marketing to machines
jonoalderson
1
4.5k
Tell your own story through comics
letsgokoyo
0
780
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
61
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
420
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
73
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
1
340
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
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠