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
20181017_spa_ssr.pdf
Search
ozaki25
October 17, 2018
Technology
0
34
20181017_spa_ssr.pdf
ozaki25
October 17, 2018
Tweet
Share
More Decks by ozaki25
See All by ozaki25
20210526_a11y.pdf
ozaki25
0
170
20210525_react_next.pdf
ozaki25
0
130
Webフロントエンドはなぜ複雑なのか
ozaki25
1
130
utility first css
ozaki25
0
96
20201225_how_to_learn_technology.pdf
ozaki25
0
160
20201124_blitz.pdf
ozaki25
0
89
20200727_liff_app.pdf
ozaki25
1
640
20200721_web_vitals.pdf
ozaki25
0
100
20200624_web_otp_api.pdf
ozaki25
1
130
Other Decks in Technology
See All in Technology
KotlinConf 2025_イベントレポート
sony
1
120
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
350
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
160
サンドボックス技術でAI利活用を促進する
koh_naga
0
200
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
100
JTCにおける内製×スクラム開発への挑戦〜内製化率95%達成の舞台裏/JTC's challenge of in-house development with Scrum
aeonpeople
0
200
AWSで始める実践Dagster入門
kitagawaz
1
600
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
1
210
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
370
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
130
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
0
300
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Context Engineering - Making Every Token Count
addyosmani
1
34
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
We Have a Design System, Now What?
morganepeng
53
7.8k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Automating Front-end Workflow
addyosmani
1370
200k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Documentation Writing (for coders)
carmenintech
74
5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Transcript
41"Ͱ443͢Δ
41"ͱԿͷུশͰ͠ΐ͏͔
41"ͱԿͷུশͰ͠ΐ͏͔ 㱺4JOHMF1BHF"QQMJDBUJPO
443ͱԿͷུশͰ͠ΐ͏͔
443ͱԿͷུশͰ͠ΐ͏͔ 㱺4FSWFS4JEF3FOEFSJOH
ͱ͍͏༁ͰࠓͷςʔϚ ʮ4JOHMF1BHF"QQMJDBUJPOͰ 4FSWFS4JEF3FOEFSJOH͢Δʯ Ͱ͢
ࠓͷΰʔϧ w ϑϩϯτΤϯυͷจ຺Ͱʮ443ʯͱݴΘΕͨ࣌ʹ ʮ͋͊͋Εͷ͜ͱͶʯͱࢥ͑ΔΑ͏ʹͳΔ w ͳͥ41"Ͱ443Λ͢Δͷ͔ཧ༝Λཧղ͢Δ
࣍ w ୈҰ෦ w 41"ʹ͍ͭͯ w ୈೋ෦ w 443ʹ͍ͭͯ
ୈҰ෦ɿ41"ʹ͍ͭͯ
41"ʹ͍ͭͯ 41"ͱ 41"ͱඇ41"ͷॲཧͷྲྀΕ ΫϥΠΞϯταΠυʹ͓͚ΔύϑΥʔϚϯεࢦඪ 41"·ͱΊ
41"ͱ
41"ͱ w 4JOHMF1BHF"QQMJDBUJPOͷུ w 8FCϖʔδ+BWB4DSJQUΛ͏ͱಈతͳ)5.-ͷॻ͖͕͑Ͱ ͖Δ w ϖʔδભҠؚΊ)5.-ͷߏஙΛશͯ+BWB4DSJQUͰߦ͏͜ͱͰ 69Λ্ͤ͞Δ
41"ͱඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ w Έͳ͞ΜʹೃછΈਂ͍ํͷύλʔϯ w 4QSJOH#PPU 5IZNFMFBG K2VFSZ w
1MBZ'SBNFXPSL 4DBMB5FNQBMBUF K2VFSZ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ
ඇ41"ͷॲཧͷྲྀΕ w 5IZNFMFBG+41ͷΑ͏ͳςϯϓϨʔτΤϯδϯͰ)5.-Λߏங͠ +BWB4DSJQUͰಈతͳ)5.-ͷॻ͖͑Λ࣮ݱ͢Δύλʔϯ w ϖʔδભҠ࣌αʔόʹΞΫηε͠)5.-Λऔಘ͢Δ w ϖʔδͰ+BWB4DSJQUͰΠϯλϥΫςΟϒͳॲཧΛ࣮ݱ͢Δ
41"ͷॲཧͷྲྀΕ
41"ͷॲཧͷྲྀΕ
41"ͷॲཧͷྲྀΕ
41"ͷॲཧͷྲྀΕ
41"ͷॲཧͷྲྀΕ ※ϔЄό΄ݐ΅API䌏ͭͼ㳨᭔ᶋݶ๗᭗מΨᤈ͜
41"ͷॲཧͷྲྀΕ w αʔό͔ΒCPEZ͕ۭͬΆͷ)5.-Λऔಘ͠ )5.-ͷߏஙΛશͯ+BWB4DSJQUͰߦ͏ύλʔϯ w ϖʔδભҠ࣌ͷը໘ͷॻ͖͑+BWB4DSJQUͰߦ͏ w ϖʔδͷಈ࡞͚ͩͰͳ͘ϖʔδભҠؚΊͯΠϯλϥΫςΟϒ ͳಈ࡞Λ࣮ݱͰ͖Δ
ΫϥΠΞϯταΠυʹ͓͚ΔύϑΥʔϚϯ εࢦඪ
ϖʔδ͕දࣔ͞ΕΔ·Ͱͷஈ֊ https://havelog.ayumusato.com/develop/performance/e744-performance_metrics.html 'JSTU1BJOU Կ͔͕දࣔ͞Ε࢝Ίͨ࣌ 'JSTU$POUFOUGVM1BJOU ίϯςϯπ͕දࣔ͞Ε࢝Ίͨ࣌ 'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌
5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌
ύϑΥʔϚϯεࢦඪʹ͋ͯΊͯߟ͑Δ w ඇ41"ͷ߹ w )5.-Λฦ٫͞Εͨ࣌Ͱ '$1͕࢝·Γ'.1·Ͱୡ͢Δ w ͦͷޙ+BWB4DSJQUͷಡΈࠐΈ ͕ྃͨ͠λΠϛϯά͕55*
'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌ 5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌
ύϑΥʔϚϯεࢦඪʹ͋ͯΊͯߟ͑Δ w 41"ͷ߹ w )5.-+BWB4DSJQUͰߏங͢ ΔͷͰ'.1+4ͷ࣮ߦ͕ ྃͨ͠ޙʹͳͬͯ͠·͏ w '.1ͱ΄΅ಉ࣌ʹ55*Λܴ͑ Δ
'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌ 5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌
ύϑΥʔϚϯεࢦඪʹ͋ͯΊͯߟ͑Δ w 41"ͷ߹ w )5.-+BWB4DSJQUͰߏங͢ ΔͷͰ'.1+4ͷ࣮ߦ͕ ྃͨ͠ޙʹͳͬͯ͠·͏ w '.1ͱ΄΅ಉ࣌ʹ55*Λܴ͑ Δ
'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌ 5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌ શϖʔδͷॲཧΛؚΉͷͰ +4ϑΝΠϧͷαΠζ͕େ͖͘ͳΓ͕ͪ
ύϑΥʔϚϯεࢦඪʹ͋ͯΊͯߟ͑Δ w 41"ͷ߹ w )5.-+BWB4DSJQUͰߏங͢ ΔͷͰ'.1+4ͷ࣮ߦ͕ ྃͨ͠ޙʹͳͬͯ͠·͏ w '.1ͱ΄΅ಉ࣌ʹ55*Λܴ͑ Δ
'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌ 5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌ ͜ͷ௨৴͕͍ͱ'.1·Ͱͷ ͕ͪ࣌ؒ͘ͳͬͯ͠·͏
41"·ͱΊ
ඇ41"ͱ41"ͷಈ͖Λൺͯ w ϖʔδભҠΛΠϯλϥΫςΟϒʹ࣮ߦͰ͖Δͱ͍͏Ͱ41"ͷํ ͕ύϑΥʔϚϯε্ѹతʹ༏Ґ w ॳظϖʔδͷදࣔʹؔͯ͠'JSTU.FBOJOHGVM1BJOU·Ͱͷ͞ ͱ͍͏ҙຯͰඇ41"ͷํ͕༏Ґ w 㱺41"͍͚ͲॳظදࣔͷύϑΥʔϚϯε͕՝
ୈೋ෦ɿ443ʹ͍ͭͯ
443ʹ͍ͭͯ 443ͱ 443ͷΈ 443ͷॲཧͷྲྀΕ 443ͷϝϦοτɾσϝϦοτ
ؔ࿈ٕज़ 443·ͱΊ
443ͱ
443ͱ w 4FSWFS4JEF3FOEFSJOHͷུ w 41"ͷॳظදࣔͷύϑΥʔϚϯε্ςΫχοΫͷҰͭ w ॳظද͚ࣔͩαʔόαΠυͰϨϯμϦϯά͠ɺ ͦͷޙΫϥΠΞϯταΠυͰϨϯμϦϯά͢Δͱ͍͏ͷ 㱺41"ͱඇ41"ͷ͍͍ͱ͜ͲΓʂ
443ͷΈ
443ͷΈ w 41"ͷॲཧ w )5.-+BWB4DSJQUʹΑͬͯߏ ங͞Ε͍ͯΔ
443ͷΈ w 41"ͷॲཧ w )5.-+BWB4DSJQUʹΑͬͯߏ ங͞Ε͍ͯΔ 㱺+BWB4DSJQUαʔόαΠυͰ ಈ͘ /PEFKT
443ͷΈ w 41"ͷॲཧ w )5.-+BWB4DSJQUʹΑͬͯߏ ங͞Ε͍ͯΔ 㱺+BWB4DSJQUαʔόαΠυ Ͱಈ͘ /PEFKT
㱺αʔόαΠυͰ+4Λಈ͔͠ ͯ)5.-Λߏஙͯ͠͠·͑ʂ
443ͷॲཧͷྲྀΕ
443ͷॲཧͷྲྀΕ
443ͷॲཧͷྲྀΕ
443ͷॲཧͷྲྀΕ 'JSTU.FBOJOHGVM1BJOU ҙຯͷ͋Δදࣔʹͳͬͨ࣌
443ͷॲཧͷྲྀΕ
443ͷॲཧͷྲྀΕ 5JNFUP*OUFSBDUJWF ૢ࡞͕Մೳʹͳͬͨ࣌
443ͷϝϦοτɾσϝϦοτ
443ͷϝϦοτɾσϝϦοτ w ϝϦοτ w 'JSTU.FBOJOHGVM1BJOU·Ͱͷ࣌ؒΛॖͰ͖Δ w σϝϦοτ w ΞʔΩςΫνϟ͕ෳࡶԽ͠։ൃɾϝϯςͷෛՙ্͕͕Δ
ؔ࿈ٕज़
443࣮ݱͷͨΊͷϥΠϒϥϦ w 41"ϑϨʔϜϫʔΫ͝ͱʹϥΠϒϥϦ͕͋Δ w 3FBDU/FYUKT w 7VF/VYUKT w "OHVMBS"OHVMBS6OJWFSTBM
443͚ͩΕྑ͍༁͡Όͳ͍ w 443ύϑΥʔϚϯεվળͷखஈͷҰͭʹ͗͢ͳ͍ w ଞʹ৭Μͳٕज़ཁૉ͕͋ΔͷͰΩʔϫʔυΛฒ͓ͯ͘ w 4FSWJDF8PSLFS w -B[Z-PBEJOH w
$PEF4QMJUJOH w IUUQ
443·ͱΊ
443·ͱΊ w ΞʔΩςΫνϟ͕ෳࡶʹͳΔ͚ͲύϑΥʔϚϯεʹͩ͜ΘΔͨΊ ʹඞཁͳςΫχοΫ w ύϑΥʔϚϯε্ͷͨΊͷςΫχοΫͷҰͭʹա͗ͳ͍ͷͰଞ ͷςΫχοΫซ༻͍ͯ͘͠ͱΑΓྑ͍
%FNP
σϞ w ಉ͡ػೳͰ443͋Γͱͳ͠ͷ41"Λ༻ҙ w ॳظදࣔͷΛൺֱ͢Δ w ܭଌ-JHIUIPVTFΛ͏ https://developers.google.com/web/tools/lighthouse/?hl=ja
σϞ w -JHIUIPVTFͷܭଌ݁Ռ SSRͭ SSR͘Π 'JSTU.FBOJOHGVM1BJOU ͕վળ͍ͯ͠Δʂ
·ͱΊ w 41"ϖʔδભҠ͠ͳ͍ͷͰಈ࡞͕͍ w ͨͩ͠ॳظද͍ࣔ w 443Λ͏ͱॳظදࣔͷ͞ΛվળͰ͖Δ
ࠓͷΰʔϧͷ͓͞Β͍ w 443ͬͯԿ w 41"ͰॳظදࣔͷύϑΥʔϚϯεΛ্ͤ͞ΔςΫχοΫ w ͳͥ41"Ͱ443͢Δͷʁ w 41"ॳظදࣔͷύϑΥʔϚϯε͕՝͔ͩΒ
͋Γ͕ͱ͏͍͟͝·ͨ͠