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
Svelte をプロダクトに導入した話
Search
Kazuma Oe
February 04, 2022
Programming
3
900
Svelte をプロダクトに導入した話
Svelte Meetupで発表した資料です!
mkin
X:
mkin
oekazuma
X:
oekazuma
GitHub:
oekazuma
Qiita:
oekazuma
Kazuma Oe
February 04, 2022
Tweet
Share
More Decks by Kazuma Oe
See All by Kazuma Oe
採用事例の少ないSvelteを選んだ理由と それを正解にするためにやっていること
oekazuma
3
1.5k
Svelte/SvelteKitを採用した理由とその魅力
oekazuma
4
2.8k
Histoireを使ってSvelteコンポーネントを管理しよう
oekazuma
4
910
Other Decks in Programming
See All in Programming
GoのGenericsによるslice操作との付き合い方
syumai
2
580
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
10
1.8k
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
3
1.9k
Parallel::Pipesの紹介
skaji
2
910
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
400
セキュリティマネジャー廃止とクラウドネイティブ型サンドボックス活用
kazumura
1
170
アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
andpad
0
190
Using AI Tools Around Software Development
inouehi
0
1.2k
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
140
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
650
赤裸々に公開。 TSKaigiのオフシーズン
takezoux2
0
130
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
We Have a Design System, Now What?
morganepeng
52
7.6k
Optimizing for Happiness
mojombo
379
70k
GitHub's CSS Performance
jonrohan
1031
460k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Become a Pro
speakerdeck
PRO
28
5.4k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Docker and Python
trallard
44
3.4k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Code Review Best Practice
trishagee
68
18k
Transcript
0 株式会社エイチームライフデザイン Svelte をプロダクトに導入した話 2022. 02. 03 加藤 / 大江
1 © 2022 Ateam Inc. 1 自己紹介
• 名前:加藤 真 (かとう まこと) • 所属:エイチームライフデザイン • 業務内容: ◦ フロントエンド開発 ◦ バックエンド開発 @mkin
2 © 2022 Ateam Inc. Svelte を導入した経緯
3 © 2022 Ateam Inc. 3 •
結婚式場情報サイト「ハナユメ」の結婚指輪情報サービス ◦ https://hana-yume.net/ring/ 導入したサイト
4 © 2022 Ateam Inc. 4 •
どのフロントエンド技術も一長一短 技術選定
5 © 2022 Ateam Inc. 5 技術選定
• 学習コストが低い Svelte に決定 ◦ 自分たちの組織に一番合っているものは何か?
6 © 2022 Ateam Inc. 6 準備期間
• Svelte への心理的障壁をなくす ◦ Qiita執筆、勉強会、ステッカー配り、社内用アプリの開発
7 © 2022 Ateam Inc. 7 準備期間
• Svelte への心理的障壁をなくす ◦ Qiita執筆、勉強会、ステッカー配り、社内用アプリの開発
8 © 2022 Ateam Inc. 8 Svelte
導入の懸念点(2020年当時) • エコシステムが未成熟 ◦ デファクトスタンダードがない ◦ 保守されていない
9 © 2022 Ateam Inc. 9 •
調査コストの増大 ◦ ネット情報が少ない ◦ 日本語ドキュメントがない Svelte 導入の懸念点(2020年当時) • エコシステムが未成熟 ◦ デファクトスタンダードがない ◦ 保守されていない
10 © 2022 Ateam Inc. 10 •
爆速で翻訳作業が進んだ ◦ 2021年2月3日〜2月10日完成 ◦ https://svelte.jp/ 日本語ドキュメント
11 © 2022 Ateam Inc. 11 •
調査コストの増大 ◦ ネット情報が少ない ◦ 日本語ドキュメントがない(今はある https://svelte.jp/ ) Svelte 導入の懸念点(2020年当時) • エコシステムが未成熟 ◦ デファクトスタンダードがない ◦ 保守されていない
12 © 2022 Ateam Inc. 12 Svelte
導入の懸念点(2020年当時) • 未検証技術への不安 ◦ SSR、TypeScript、Testing tool、SEO、IE11対応...!! ◦ 自分たちのベストプラクティスが作れていない • エコシステムが未成熟 ◦ デファクトスタンダードがない ◦ 保守されていない • 調査コストの増大 ◦ ネット情報が少ない ◦ 日本語ドキュメントがない(今はある https://svelte.jp/ )
13 © 2022 Ateam Inc. 13 リードエンジニアからのアドバイス
• エコシステムは自分たちで作れ ◦ 時間が経てば成熟していく ◦ 難しいことはしていない
14 © 2022 Ateam Inc. 14 •
未検証のリスクを過大評価するな ◦ 恐れすぎない ◦ 隣の芝生は青く見える(React、Vue でも同じ) リードエンジニアからのアドバイス • エコシステムは自分たちで作れ ◦ 時間が経てば成熟していく ◦ 難しいことはしていない
15 © 2022 Ateam Inc. 15 •
未検証のリスクを過大評価するな ◦ 恐れすぎない ◦ 隣の芝生は青く見える(React、Vue でも同じ) リードエンジニアからのアドバイス • エコシステムは自分たちで作れ ◦ 時間が経てば成熟していく ◦ 難しいことはしていない • 早く試して早く失敗しろ ◦ 失敗を許容する文化 ◦ クリティカルな問題なら方向転換
16 © 2022 Ateam Inc. 16 導入サービスの決定
• 小さく始められるサービスを選択 ◦ サービスの規模、仕様の難易度、導入効果の向上の見込み 前撮りフォ ト 結婚式 準備ガイド ハナユメ フェスタ 結婚指輪 婚約指輪
17 © 2022 Ateam Inc. 17 自己紹介
• 名前:大江 和摩 (おおえ かずま) • 所属:エイチームライフデザイン • 業務内容: ◦ フロントエンド開発 ◦ バックエンド開発 @oekazuma
18 © 2022 Ateam Inc. Svelte を実際に導入してから
19 © 2022 Ateam Inc. 19 最初に作ったサイトの技術スタック
• Svelte • TypeScript • Rollup • Routify - ルーティングライブラリ • Tailwind CSS - CSSフレームワーク • Jest - テスティングツール • npm - パッケージマネージャー • rendertron - SEOやOGP対策
20 © 2022 Ateam Inc. 20 Svelte
で作ってみて辛いところ • ライブラリが充実していない😂 ◦ ライブラリを探すときは... ▪ 検索エンジンで検索する ▪ Svelte Societyで調べる ▪ Made with Svelteで調べる
21 © 2022 Ateam Inc. 21 Svelte
で作ってみて辛いところ • ないならライブラリを自作しよう! ◦ svelte-meta-tags ◦ SEO のメタタグや構造化マークアップを管理するライブラリ ◦ SvelteKit + TypeScript で構築 ◦ semantic-release を使って自動リリース
22 © 2022 Ateam Inc. 22 Svelte
で作ってみて嬉しいところ • 開発体験がとてもいい! ◦ 記述量が少なく、直感的に書ける ◦ HTML ライクで書けるから、初心者でも抵抗感なく書ける ◦ デザイナーとのコラボレーションがしやすい
23 © 2022 Ateam Inc. SvelteKit への移行
24 © 2022 Ateam Inc. 24 SvelteKit
への移行 • Svelte • TypeScript • SvelteKit • Windi CSS - CSSフレームワーク • Vitest - テスティングツール • pnpm - パッケージマネージャー
25 © 2022 Ateam Inc. 25 •
SvelteKit 移行前(スマートフォン) SvelteKit への移行 • SvelteKit 移行後(スマートフォン)
26 © 2022 Ateam Inc. 最後に
27 「みんなで幸せになれる会社にすること」 「今から100年続く会社にすること」