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
Firebaseで ポートフォリオサイトを作ってみた / Make a portfolio s...
Search
Kentaro Matsushita
October 03, 2018
Programming
630
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ブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
440
開発のアジリティ向上のためのシステムリプレイス ~DMM GAMESの事例~
kentarom
0
880
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
480
Webサイトパフォーマンスを継続的に計測したい!!! / I want to continuously measure my website performance!!!
kentarom
2
630
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
920
OGP画像を生成するNode.jsのライブラリを作ってみた / Create a Node.js module for generating Open Graph image
kentarom
1
7.7k
チームをよしなにする立場を経験して学んだこと / Things I have learned in leading the team
kentarom
0
860
Other Decks in Programming
See All in Programming
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
260
モジュールの視点からSwiftを読み解く #iosdc
s_shimotori
0
350
Rでドレミ/Do-Re-Mi_with_R
florets1
0
120
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
910
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
340
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.5k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
230
contenteditable と日本語入力に向き合う
colorful12
0
140
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
150
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
480
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
700
Featured
See All Featured
Crafting Experiences
bethany
1
370
Navigating Team Friction
lara
192
16k
Are puppies a ranking factor?
jonoalderson
2
4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
Paper Plane
katiecoart
PRO
4
54k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Skip the Path - Find Your Career Trail
mkilby
1
240
New Earth Scene 8
popppiees
4
2.6k
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を 触ってみましょう!