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
Firebaseで ポートフォリオサイトを作ってみた / Make a portfolio s...
Search
Kentaro Matsushita
October 03, 2018
Programming
620
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebaseで ポートフォリオサイトを作ってみた / Make a portfolio site with Firebase
社内LT
Kentaro Matsushita
October 03, 2018
More Decks by Kentaro Matsushita
See All by Kentaro Matsushita
開発のアジリティ向上のためのシステムリプレイス ~DMM GAMESの事例~
kentarom
0
860
Denoで簡単なCLIツールを作ってみる / Try to make a simple CLI tool with Deno
kentarom
0
1.1k
GatsbyJSで作った個人ブログの構成を色々見直してみた / Improve my personal blog made with GatsbyJS
kentarom
1
470
Webサイトパフォーマンスを継続的に計測したい!!! / I want to continuously measure my website performance!!!
kentarom
2
610
Actions ToolkitではじめるGitHub Action開発 / Getting started creating a GitHub Action with Actions Toolkit
kentarom
2
2.1k
GitHub Gistを使って、アクティビティを可視化しよう / Let's try visualizing your activity using the GitHub Gist
kentarom
1
910
OGP画像を生成するNode.jsのライブラリを作ってみた / Create a Node.js module for generating Open Graph image
kentarom
1
7.6k
チームをよしなにする立場を経験して学んだこと / Things I have learned in leading the team
kentarom
0
840
AWSの既存サービスを活用して、 障害検知・復旧を迅速化するカラクリ / JAWS-UG Kanazawa x OpsJAWS
kentarom
2
4.9k
Other Decks in Programming
See All in Programming
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
350
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.6k
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
630
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.2k
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
430
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
190
The NotImplementedError Problem in Ruby
koic
1
1.1k
Vite+ Unified Toolchain for the Web
naokihaba
0
410
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
200
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
290
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
340
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
340
Into the Great Unknown - MozCon
thekraken
41
2.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
580
Automating Front-end Workflow
addyosmani
1370
210k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.4k
Balancing Empowerment & Direction
lara
6
1.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
340
Prompt Engineering for Job Search
mfonobong
0
360
Transcript
Firebaseで ポートフォリオサイトを作ってみた Kentaro Matsushita 2018/10/03
⾃⼰紹介 • 2016年新卒⼊社 • プラットフォーム事業本部アカウントサービスチーム • アカウント基盤の開発・運⽤を担当しています • JavaScript /
TypeScript / AWS / React / Go • かゆいところに⼿が届くツールを開発するのが好きです Kentaro Matsushita @kentaro-m @_kentaro_m
アジェンダ • ポートフォリオサイトを作る理由 • ポートフォリオサイトを作る⽅法 • 困っている点と感想
アジェンダ • ポートフォリオサイトを作る理由 • ポートフォリオサイトを作る⽅法 • 困っている点と感想
エンジニアとして2年働いて できることも少しずつ増えてきた
ブログを書いたり、 LTをしたり、 個⼈開発をしたり…
成果物があるゆる場所に散らばっていた
⼀覧性が⾼い形式で成果物をまとめたい
ポートフォリオサイトを作る 解決⽅法
None
None
None
ポートフォリオサイトの概要 • 制作期間 8⽇(9⽉16⽇〜9⽉24⽇) • 制作費⽤ 0円(Firebase無料枠内) • 機能 QiitaやGitHub、Speaker Deckなどの表⽰ • 使⽤技術 Next.js、Firebase
ポートフォリオサイトの概要 • リポジトリをForkして、設定ファイルを変更、 デプロイでポートフォリオサイトが公開できます • https://github.com/kentaro-m/portfolio • 興味ある⽅はお試しください • 動作には料⾦プランをBlazeプラン
(従量課⾦) に変更が必要
アジェンダ • ポートフォリオサイトを作る理由 • ポートフォリオサイトを作る⽅法 • 困っている点と感想
まずは技術選定から!
使ったことがない技術で構築したい ReactでSSRするアプリケーションを 構築するためのフレームワーク アプリ開発のための便利サービスを 数多く提供 (認証、DB、etc ) (詳細はググってください)
Firebaseで構築する⽅法を 調査しました
アーキテクチャ ユーザー Firebase Hosting Cloud Functions for Firebase 外部サービスから データ取得
2 リクエスト 1 SSRする 3 結果を表⽰ 4 ユーザーにページが表⽰されるまでの流れ
Firebase Hosting • 静的コンテンツをホスティングするサービス • CDNを利⽤したキャッシュ配信に対応 • SSL証明書⾃動適⽤ • アクセス制限は不可
• AWSでS3とCloudFront、ACMを組み合わせて やっていたことがこれだけでできる
リクエストをCloud Functionsで処理させる すべてのリクエストをCloud Functionsで 処理させるように記述
Cloud Functions for Firebase • イベントドリブンで関数を実⾏するサービス • HTTPSリクエストトリガーで関数の実⾏が可能 • 200万回実⾏/⽉の無料枠がある
• 無料プランでは外部ネットワークにアクセスできない • AWSで⾔うところのLambdaのようなもの
リクエストをCloud Functionsで処理する
ポートフォリオサイト公開までの流れ 1. Next.jsアプリケーションを作成 2. Firebaseに新規プロジェクト作成 3. Firebase CLIでログイン 4. デプロイ実⾏
5. サイト公開
サンプルコードを動かしてみよう • next.js/examples/with-firebase-hosting at canary · zeit/next.js · GitHub •
Next.jsをFirebase Hostingで動作させるサンプルコード • https://github.com/zeit/next.js/tree/canary/examples/with-firebase-hosting • Next.js on Cloud Functions for Firebase with Firebase Hosting • サンプルコードを作成した開発者の記事 • https://codeburst.io/next-js-on-cloud-functions-for-firebase-with-firebase- hosting-7911465298f2
アジェンダ • ポートフォリオサイトを作る理由 • ポートフォリオサイトを作る⽅法 • 困っている点と感想
困っている点 • ページの表⽰速度が遅い • Cloud Functionsがローカル実⾏できない
ページの読み込み速度が遅い • 読み込み速度が8.2秒 (10⽉3⽇測定)
ページの読み込み速度が遅い • 初期データを取得するgetInitialProps()で外部APIにアクセスしている • API呼び出し結果をキャッシュしたい • キャッシュの設定 (Cache-Controlヘッダー) ができてない •
キャッシュの設定を追加したい • Cloud Functionsのロケーション (us-central1) になっている • tokyoリージョン (asia-northeast1) で動作するようにしたい
Cloud Functionsのローカル実⾏ができない • ⼿順通りに実⾏してもエラーが出る • Next.jsアプリケーションは単体で動作するので開発には⽀障なし
Firebaseを使ってみての感想 • 導⼊が⾮常に簡単 • サンプルコードは15分もあれば、デプロイまでできる • 運⽤⾯に関してはまだよくわからないです • ⾮常に多くのサービスがあり、開発者を助けてくれる •
アプリそのものの開発に集中できる
とりあえずFirebaseを 触ってみましょう!