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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
0
440
Vite+ Unified Toolchain for the Web
naokihaba
0
710
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
初めてのKubernetes 本番運用でハマった話
oku053
0
120
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.7k
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
240
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
830
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.1k
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
370
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
200
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.3k
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
7
3.1k
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
432
67k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Ruling the World: When Life Gets Gamed
codingconduct
0
280
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
The Pragmatic Product Professional
lauravandoore
37
7.4k
Making the Leap to Tech Lead
cromwellryan
135
10k
Tell your own story through comics
letsgokoyo
1
990
The Cost Of JavaScript in 2023
addyosmani
55
10k
Building Adaptive Systems
keathley
44
3.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
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を 触ってみましょう!