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
Nuxtで作ったBlogサイトを高速化しようと頑張った話
Search
Yuji Teshima
October 05, 2019
Programming
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxtで作ったBlogサイトを高速化しようと頑張った話
Blogサイトを高速化しようと頑張った話です。
Yuji Teshima
October 05, 2019
More Decks by Yuji Teshima
See All by Yuji Teshima
rubykaigi2026LT_The Joy of Taking to Hardware in Ruby
yujiteshima
0
500
俺の勉強会:oss-contribution-graphで草駆動理論
yujiteshima
0
1k
Other Decks in Programming
See All in Programming
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
210
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
110
Foundry Localでエージェント開発
seosoft
0
120
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
AIエージェント時代のコードレビューを設計する
nogu66
5
2.5k
初めての模倣学習とVLA
natsutan
0
460
高専キャリア LT 発表内容
crysta1221
6
5.5k
Deep dive into the select statement (GopherCon UK)
jespino
0
170
FDEとは、何者なのか?
masapyon1212
0
140
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
670
Oxlintはいいぞ(続)
yug1224
1
540
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Producing Creativity
orderedlist
PRO
348
41k
Claude Code のすすめ
schroneko
67
230k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Ethics towards AI in product and experience design
skipperchong
2
360
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Transcript
Nuxt と FirebaseでBlogサイトを 作って高速化を頑張った話 2019.10.05 名古屋初心者LT大会 #1 手島裕司
自己紹介 顔写真 39歳 未経験プログラマ 手島裕司 / Yuji Teshima つまりアマチュアです。 ・三重県四日市市生まれ →広告代理店セー
ルス→住宅設備メーカーの施工管理 →プロ グラミング面白いな→Webエンジニアなりた い→仕事辞める→9ヶ月間色々Webの勉強 する職業訓練行く(Javaが多め)→一人で好き なように勉強する(今ココ)
話す内容 ・Nuxt.js でBlogサイト作りました。 ・LightHouseでPerformanseがグリーンにならない。 ・原因の推測 ・色々試してみる ・結果発表 ・まとめ
Blog作りました https://nuxt-deploy-test-teshima.appspot.com https://github.com/yujiteshima/nuxt_blog_LT
アーキテクチャ 初期表示はSSR 初期表示以降はSPA、且 つ必要なデータは、直接 APIを叩く GraphCMS 普段のBlogのコンテンツ 管理は GraphCMSで管 理する。
初期画面表示の為 にCloudFunctionから GraphCMSへデータを 取りに行く
LightHouseしてみる
はじめに思いついたのが、Firebaseと GraphCMSのリージョンについて GraphCMSはAsiaEast(Tokyo) FirebaseFunctions & FirebaseHosting はUScentral 世界一周してるかも。
パフォーマンス改善の為にやった事、流れ ・Google Font無くす ・FontAwesomeを使っているものだけにする ・GraphCMSのリージョンをUSEastに変える ・GraphCMSからのJsonデータをFirebaseStorageに キャッシュする ・StorageのデータをGoogle Cloud Storageに直接見
に行く ・Vue-Apolloを使わなくてよくなる。 ・Imageを遅延読み込みする ・CMSで管理されている、画像データの保存先が USEastへ行ってしまった事に気づく。 ・デプロイ先をGCPの東京リージョンに変更する ・PWA対応する。
時間のかかる所はストレージに キャッシュしておく GraphCMS コンテンツ管理はCMS 画像データもCMS Blog cli で refresh commandoを叩く
無料版では変更をフッ クしてリクエストを飛ば したりできない。
現在のアーキテクチャ GraphCMS Blogのコンテンツ管 理は今まで通り。 画像の管理は GraphCMSの DB(AWS Tokyo) Blog cli
で refresh commandoを叩く Json Data gcpに直接見に 行く(JsonData) GAE(Tokyo)で SSR
結果
このBlogサイトで次にやってみたい事 ・BootStrap-vueが重い、JSを含まないBulma等のフレームワークに置き換えたい。 ・もう少しコンテンツを増やして、データ駆動でページデザインを変える試みをしてみたい。 ・CMS側を自分で作りたい。変更を保存したのイベントで、ストレージを書き換えたい。
まとめ ・ファイルサイズを減らすとFIOには効果的。 ・キャッシュすると早くなる。 ・キャッシュすると、フロントエンドサーバーで APIを叩きにいく処理を減らす事が出来る。 ・さらにGraphQLクライアントなどを全てバックエンドにもっていけばその分ファイルサイズ が軽く出来る。 ・ファイルサイズの圧縮の事ばかり考えていたら、ファイルサイズの重い物を使いたくなく なった。 ・BootStrap-vueが重い、次はBootStrap-vueをBulmaに置き換えたい
ご静聴ありがとうございました 初心者LT大会開催して頂いてありがとうございました。 39歳2ヶ月未経験ですが、話聞いていただける方、募集中です。