Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サービスにSvelteを採用した経緯とその理由 - レバレジーズ x ココナラ x ニフティ ...
Search
ニフティ株式会社
PRO
July 21, 2023
Resources
Programming
600
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービスにSvelteを採用した経緯とその理由 - レバレジーズ x ココナラ x ニフティ 合同フロントエンド勉強会
ニフティ株式会社
PRO
July 21, 2023
Resources
レバレジーズ x ココナラ x ニフティ 合同フロントエンド勉強会
https://nifty.connpass.com/event/288706/
More Decks by ニフティ株式会社
See All by ニフティ株式会社
microCMS移行をいまならAIでどう進めるか - microCMS Meetup 2026
niftycorp
PRO
0
480
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
4.1k
ニフティ株式会社 エンジニア向け Company Deck 2026年版
niftycorp
PRO
0
1.1k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
370
CS教育のDX AIによる育成の効率化
niftycorp
PRO
0
420
AI 開発合宿を通して得た学び
niftycorp
PRO
0
420
なぜISPでオリジナルカードゲームを作ったのか?制作者と対談 - NIFTY Tech Talk #25
niftycorp
PRO
0
140
「なぜかネットが遅い」を“見える化”する 〜マイ ニフティが繋ぐサポートと暮らし〜 - NIKKEI Tech Talk #39
niftycorp
PRO
0
690
InnerSource Summit 2025 Three points that promoted innersource activities
niftycorp
PRO
0
360
Other Decks in Programming
See All in Programming
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
420
FreeBSDでZabbixを動かす
kenkino
0
310
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
120
WebAssembly in Android Apps 〜 WASMはJNIの夢を見るか
keiji
1
110
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
260
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
610
setup-vp GitLab対応の裏側
naokihaba
0
110
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
340
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
460
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
730
Featured
See All Featured
The Curse of the Amulet
leimatthew05
3
15k
30 Presentation Tips
portentint
PRO
1
400
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
580
From π to Pie charts
rasagy
1
370
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
We Are The Robots
honzajavorek
0
380
Raft: Consensus for Rubyists
vanstee
142
7.7k
How to train your dragon (web standard)
notwaldorf
97
6.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
680
Test your architecture with Archunit
thirion
2
2.4k
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へ