WebComponentとSSGで作る 個人開発Webフロントエンド / TechTalk #69
by
mazrean
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
WebComponentとSSGで作る 個人開発Webフロントエンド @mazrean TechTalk #69
Slide 2
Slide 2 text
若松俊介 / mazrean ■ IT本部IT基盤部第二G ● Web フロント本職ではない ■ Frontend Up! / Go Day ■ 強制デジタルデトックス中 ● スマホが壊れた… @mazrean22 マズリーン 2
Slide 3
Slide 3 text
「とりあえずNext.js」 していませんか?
Slide 4
Slide 4 text
Next.jsは大抵Better以上の選択肢 Next.jsは何でもできて優秀 ■ レンダリング 方法の選択肢の多さ ■ 強力なエコシステム 4
Slide 5
Slide 5 text
レンダリング方法の選択肢の多さ ■ 大抵の方法を選択可能 ● CSR(Client-side Rendering) ● SSR(Server-side Rendering) ● PPR(Partial Prerendering) ■ そもそもNext.jsが潮流を作っている 5 Header Sidebar Footer 購入数選択 商品説明
Slide 6
Slide 6 text
強力なエコシステム ■ Reactの豊富なライブラリ 群を使用可能 ■ 大抵の周辺ツール がサポートしている ● バンドラ ● Linter ● 開発サーバー 6 …
Slide 7
Slide 7 text
個人開発でBestか? 個人開発でBestとは限らない ■ 不要なレンダリング の複雑性 ■ ライブラリ更新 が大変 7
Slide 8
Slide 8 text
不要なレンダリングの複雑性 ■ SSRは不要な場合も多い ● 初期表示に動的コンテンツがないと意味がない ■ 手間を生む ● サーバー運用 ● AIが最適解を選ばない ● 脆弱性も生みやすい(React2Shell) 8 Header Sidebar Footer 購入数選択 商品説明 不要 AIが誤用
Slide 9
Slide 9 text
ライブラリ更新が大変 ■ 使ったライブラリ は更新が必要 ● 少なくとも脆弱性対応は必要 ● 一度サボると更に大変に… ■ Reactはライブラリ使用前提な部分もある ● 特に状態管理 9 … 使ったら更新必須
Slide 10
Slide 10 text
Web Components 使いませんか?
Slide 11
Slide 11 text
Web Componts Web標準で構成されたコンポーネント機構 ■ 素のブラウザ上で動作 ● template + Shadow DOM ■ CSR相当の役回りが可能 11 Web Components
Slide 12
Slide 12 text
Lit Web Componentsの薄いラッパーライブラリ ■ 記述の煩雑さを軽減 ● デコレーター による記法提供 ● 簡易的な状態管理機構の提供 ■ 外部依存がない ● Litのみの更新でok 12
Slide 13
Slide 13 text
デプロイ時のレンダリング PPRは好きなテンプレートエンジンでok ■ ejs ■ tmpl ● Goのテンプレートエンジン ■ PHP 13 テンプレートエンジン
Slide 14
Slide 14 text
この構成のメリット ■ 依存が極めて少ない ● 基本的にLitとテンプレートエンジンのみ ● 加えてLinter、バンドラが入る程度 ■ 維持コスト が低い ● 静的配信だけなら無料で済む ■ CSR・PPRのコード上での区別が容易 ● AIの書いたコードの読解が楽 14
Slide 15
Slide 15 text
採用例
Slide 16
Slide 16 text
Go Proposal Weekly Digest ■ Go言語本体への機能提案まとめ ■ 週次更新 16 https://go-proposal-weekly-digest.mazrean.com/
Slide 17
Slide 17 text
まとめ ■ Next.js、個人開発には複雑過ぎない? ■ Web Componentsで最小限の構成が可能 ● テンプレートエンジンを組み合わせる ● Litで記述も容易にできる ■ 実際にいくつか開発してみている ● Go Proposal Weekly Digest ● もっと動的なサービスも作れる 17