Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
Transcript
14 slides
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ヶ月未経験ですが、話聞いていただける方、募集中です。
More Decks by Yuji Teshima
See All by Yuji Teshima
ActionCableの相手はブラウザだけじゃない — Railsでデバイス群をリアルタイム管制する
yujiteshima
1
190
名古屋Ruby会議05_LT.pdf
yujiteshima
2
350
rubykaigi2026LT_The Joy of Taking to Hardware in Ruby
yujiteshima
1
600
俺の勉強会:oss-contribution-graphで草駆動理論
yujiteshima
0
1k
Other Decks in Programming
See All in Programming
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
340
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
1
250
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
980
高橋メソッドでCVE解説シリーズ 〜CVE-2026-112816〜
hakkadaikon
0
260
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
250
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
4.2k
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
750
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
230
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
180
AI-Powered Domain-Driven Design
ziobrando
0
440
例外からRich Errorsまで Kotlinエラーハンドリングの進化を読み解く
shiita0903
0
120
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
290
Paper Plane
katiecoart
PRO
6
55k
sira's awesome portfolio website redesign presentation
elsirapls
0
510
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Facilitating Awesome Meetings
lara
57
7.2k
BBQ
matthewcrist
90
10k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
480
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
520
Being A Developer After 40
akosma
PRO
92
590k