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
Astro の pros / cons
Search
hashiba daiki
April 21, 2023
Programming
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Astro の pros / cons
Vercel * Astro を使った開発を行い気づいた点を共有します。
hashiba daiki
April 21, 2023
More Decks by hashiba daiki
See All by hashiba daiki
ストックマークのAI推進について|AI Nativeな業務設計者として、組織のOSを再設計する
hashibadaiki
0
300
プロダクトアウトから価値探索へ:生成AIが加速させたエージェント開発の実践録
hashibadaiki
0
1.4k
補足資料:LLMとは?
hashibadaiki
0
45
苦しんで向き合うLLM時代の開発
hashibadaiki
13
5k
フロントエンドの大規模開発におけるTips
hashibadaiki
3
1.5k
Other Decks in Programming
See All in Programming
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
140
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
Press start. Python's next generation.
willingc
PRO
2
100
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
590
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
360
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
700
Android CLI
fornewid
0
230
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
340
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
100
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
560
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Un-Boring Meetings
codingconduct
0
390
Crafting Experiences
bethany
1
260
How GitHub (no longer) Works
holman
316
150k
Agile that works and the tools we love
rasmusluckow
331
22k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
30 Presentation Tips
portentint
PRO
1
370
Accessibility Awareness
sabderemane
1
180
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
YesSQL, Process and Tooling at Scale
rocio
174
15k
Skip the Path - Find Your Career Trail
mkilby
1
190
Transcript
Vercel * Astroで気づいた Astro のpros / cons Serverless Frontend Meetup
#2 「Vercel」 2023/4/21 はしば
自己紹介 - 羽柴 大生(はしば だいき) - chot Inc. 所属 -
Web フロントエンドエンジニア - 大阪出身→香川在住 - (世界一)可愛い娘がいます
今回話すこと # Astroのこと - 概要 - できること - 実際にやったこと -
pros / cons - まとめ
何を伝えたいか - フロントエンドは流行り廃りがしんどい - できることは見つけられても、できないことはなかなか見 当たらない - できることと、できないこと、実際に触って気づいたことを ベースに話します
概要(公式引用) - Astro is the all-in-one web framework designed for
speed. Pull your content from anywhere and deploy everywhere, all powered by your favorite UI components and libraries. - zero-JS - Content-focused https://astro.build/
できること - blog - portfolio - corporate - EC
できること? - blog - portfolio - corporate - EC
できる範囲 - blog - portfolio - corporate - EC
- blog … all pre-renderであれば - portfolio … all pre-renderであれば
- corporate - EC できる範囲
- blog … all pre-renderであれば - portfolio … all pre-renderであれば
- corporate … ぎりぎり - EC できる範囲
- blog … all pre-renderであれば - portfolio … all pre-renderであれば
- corporate … ぎりぎり - EC … 🥺 できる範囲?
demo(blog) / : Top page … pre-render /search : 検索ページ
… SSR /blog/[blogId] : ブログ詳細 … pre-render
実際にやったこと - HTML / CSSが静的なassetとして欲しい - JSを不用意に吐き出さない - human readableなコードが欲しい
- previewを見せる必要がある - 非エンジニアでも確認できる環境 → Vercel * Astro
良かったこと - jQueryをぬるっと入れれる - それがアンチパターンかどうかは一旦おいておいて - jsxのお作法や、v-forみたいな呪文を覚えなくても素のHTML の知識があれば対応できる - モダンフロント初めての人でも障壁が少ないように感じた
(TSもmustではない)
つらかったこと① 沢山の getElementById, addEventListener useState1行でも使うとn千行のjs fileが爆誕してしまうため、islands architecture が導入できない。 (zero-JSという特徴が死ぬ) 最初は書きやすいと思った
.astro fileが敵に見えてくる。
つらかったこと① 公式には「こう書いたらuseStateなくてもいけるで」って書いてますが、こう書きた くないから皆 React やら Vue やらを使ってるんやで https://docs.astro.build/en/guides/client-side-scripts/
つらかったこと② script, style tagが独特 - 暗黙的にglobalかinlineかが決まっている - コンポーネントの出し分けなどで中々意図した挙動にさせずらい - <script>タグにtype="module
"またはsrc以外の属性を追加すると、 Astroのデフォルトのバンドル動作が無効になり、is:inlineディレクティ ブがあるかのようにタグが扱われる
つらかったこと② script, style tagが独特 - 一応front matterから変数を渡すこともできるが、渡せる変数も 限られている(JSONでシリアライズ可能な値のみ)
つらかったこと③ いつも通りの eslint, TS ではない 当然と言えば当然ですが、 - JSX.IntrinsicElements['div'] - CSSProperties
- ReactNode などは存在しない。ReactがTSと親和性がありすぎる
つらかったこと④ 謎の挙動がある - 開発サーバーが急にこける - たまにeslintが通らない(同じコードで確認したら通るとかも ある) - buildも同様
つらかったこと④ 謎の挙動がある - 開発サーバーが急にこける - たまにeslintが通らない(同じコードで確認したら通るとかも ある) - buildも同様 →総じてReactに比べると開発者体験が辛かった🥺
ワンポイント ※特に静的なassetが欲しい場合 ・distされたデータをよく確認する ・npm scriptに頼る ・Vercelにdeployされている時とlocalの distされるデータは違う
まとめ ①静的なfileを手に入れたい ②all pre-render で簡素なサイト ③ejsの代わり(未検証)
まとめ ①静的なfileを手に入れたい ②all pre-render で簡素なサイト ③ejsの代わり(未検証) →これ以外は React, Vue などが使えるなら素直にそっち
参考 なんだかんだ公式 https://astro.build/ script tagの挙動について https://hiroppy.me/blog/astro-script-issue Astroのサンプルコードやversion2の紹介動画 https://www.youtube.com/watch?v=gi4c7fbeURc
ご視聴 & ご清聴 ありがとうございました!!!