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を採用した経緯とその理由 - レバレジーズ x ココナラ x ニフティ ...
Search
ニフティ株式会社
PRO
July 21, 2023
Resources
Programming
0
490
サービスにSvelteを採用した経緯とその理由 - レバレジーズ x ココナラ x ニフティ 合同フロントエンド勉強会
ニフティ株式会社
PRO
July 21, 2023
Tweet
Share
Resources
レバレジーズ x ココナラ x ニフティ 合同フロントエンド勉強会
https://nifty.connpass.com/event/288706/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
会員管理基盤をオンプレからクラウド移行した時に起きた障害たち - asken tech talk vol.13
niftycorp
PRO
0
2.5k
モニタリング統一への道のり - 分散モニタリングツール統合のためのオブザーバビリティプロジェクト
niftycorp
PRO
1
910
2025-07-08 InnerSource Commons Japan Meetup #14 【OST】チームの壁、ぶっ壊そ!壁の乗り越え方、一緒に考えよう!
niftycorp
PRO
0
92
2025-04-25 NIFTY's InnerSource Activites
niftycorp
PRO
0
320
外コミュニティ活動や登壇活動が技術 広報として大事だよ、と改めて周囲に伝 えられた件 - EM Oasis 特別会
niftycorp
PRO
0
190
Dify触ってみた。
niftycorp
PRO
1
290
Amazon Bedrockを使用して、 運用対応を楽にしてみた
niftycorp
PRO
1
310
自社製CMSからの脱却:10件のWebサイト再構築に学ぶ運用重視の技術選定 - NIFTY Tech Day 2025
niftycorp
PRO
0
140
エンジニアの殻を破る:インナーソースと社外活動がもたらした成長 - NIFTY Tech Day 2025
niftycorp
PRO
0
110
Other Decks in Programming
See All in Programming
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
33k
CSC305 Lecture 06
javiergs
PRO
0
270
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
520
なんでRustの環境構築してないのにRust製のツールが動くの? / Why Do Rust-Based Tools Run Without a Rust Environment?
ssssota
2
2.8k
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.5k
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
350
contribution to astral-sh/uv
shunsock
0
450
なぜGoのジェネリクスはこの形なのか? - Featherweight Goが明かす設計の核心
qualiarts
0
230
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.4k
CSC305 Lecture 10
javiergs
PRO
0
220
Devvox Belgium - Agentic AI Patterns
kdubois
1
140
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
180
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Context Engineering - Making Every Token Count
addyosmani
7
290
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Music & Morning Musume
bryan
46
6.9k
Navigating Team Friction
lara
190
15k
Being A Developer After 40
akosma
91
590k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Statistics for Hackers
jakevdp
799
220k
Transcript
サービスにSvelteを 採用した経緯とその理由 三社合同フロントエンド勉強会 By たけろいど
Hello!
ニフティからきました たけろいどです
お客様に最も近く、 感動されるISPへ
None
None
None
None
Svelteとは? コンポーネントをコンパイルすることで、 パフォーマンスの向上とコードのサイズを 小さくしている。 直感的かつシンプルな構文が特徴で、学 習曲線が緩やか。
早速開発!
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
FlaskとJinja2がたちはだかった! > たたかう にげる
お客様への 価値提供スピード低下
よりよいUXを提供するために よりよいUIが求められる
WEB開発へのコストは 増加傾向
Jinja2はPythonでつかえる テンプレートエンジン
一方で WEB開発の王道は JavaScript
エコシステムが使えないため 開発者の負担増加
加えて Flask+Jinja2は コンポーネント指向でない
E2Eテストが増え テストに対するコストが増加
提供価値を良くしていくには 時間がかかる エコシステムやテストを使い スピード・品質を向上
FlaskとJinja2がたちはだかった! > たたかう にげる モダンフロントエンドで 価値提供スピードをあげる
なぜSvelte なのか
お客様に最も近く、 感動されるISPへ
お客様に寄り添い わかりやすいUIを提供する
Svelteのモットーは シンプルであること
Svelteのモットーは シンプルであること
Jinja2(テンプレートのみ抜粋) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Hello, {{
name }}!</title> </head> <body> <main> <h1>Hello, {{ name }}!</h1> <main> </body> </html>
Svelte <script> let name = 'World'; </script> <main> <h1>Hello {name}!</h1>
</main>
React import React, { useState } from 'react'; function CounterButton()
{ const [count, setCount] = useState(0); function handleClick() { setCount(count + 1); } return ( <button onClick={handleClick}> Clicked {count} {count === 1 ? 'time' : 'times'} </button> ); } export default CounterButton;
Svelte <script> let count = 0; function handleClick() { count
+= 1; } </script> <button on:click={handleClick}> Clicked {count} {count === 1 ? 'time' : 'times'} </button>
関わる全員に 優しいフレームワーク と感じた
関わる全員に 優しいフレームワーク と感じた
課題
JavaScript だれが作るの問題
デザイナー エンジニア
デザインシステムを みんなで学ぶ会
お客様に最も近く、 感動されるISPへ