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
noteのフロントエンドApp分割
Search
kozo yamagata
June 21, 2021
Programming
35k
15
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
noteのフロントエンドApp分割
noteでの大きくなりすぎたNuxt.jsのアプリケーションを分割する取り組みについて
kozo yamagata
June 21, 2021
More Decks by kozo yamagata
See All by kozo yamagata
コーヒー好きのエンジニアが自宅で焙煎を始めた話
kozo002
0
210
Other Decks in Programming
See All in Programming
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
360
APNsからLive Activityを開始する話
yumnumm
0
160
ジョジョの世界をXRで再現する
mofurune
0
150
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
4
4.6k
なぜCTOを降りてFDEを選んだのか?〜なぜプロダクト企業がFDEで顧客の現場に踏み込むのか〜
gonta
1
190
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
130
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
370
パスワード再設定メールのURLについて知っておこう
uyuki234
0
140
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
110
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
170
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
580
Featured
See All Featured
Fireside Chat
paigeccino
43
4.1k
Speed Design
sergeychernyshev
33
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
450
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Everyday Curiosity
cassininazir
0
350
First, design no harm
axbom
PRO
2
1.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
None
noteのフロントエンドApp分割 2021-06-21(mon) 山形孝造
3 受託開発会社でエンジニア、フリーランスを経て 2020年3月にnote入社 ☕コーヒーを自宅で焙煎したり、農園に行ったりするくらいにスキ フロントエンド・エンジニア
山形孝造 (やまがた こうぞう) note.com/zochang twitter.com/kozo002 github.com/kozo002
note フロントエンド Appの課題 4
note inc. 初期:Ruby on Rails + AngularJS 5 Railsのassets上に実装されたSPA
なつかしのCoffeeScriptで書かれていた
note inc. - SSRできない - Headless browser で html生成してSEO対策 -
動作が遅い - WebpackではなくSprockets - CoffeeScriptで書かれている - モダンなJSに追いつけない => Nuxt.jsへ乗り換え 2018年夏頃から 6 問題点
note inc. - AngularJSはほんの一部残っている - 全て移行するのは時間の問題 - Nuxt移行チームは解散 - 僕が入社したのはこの後
=> AngularJS時代の問題は全て解決 Nuxt移行ほぼ完了 🎉 7
note inc. 新たな課題発生 😇
note inc. - AngularJS実装の機能+新機能がNuxt上に存在 - コード量が凄まじいことに - 😈ビルドが長い -
ローカルで開発着手できるまで時間がかかる - 途中で落ちる - デプロイが遅い - 影響範囲が広い - バタフライエフェクトのような障害が発生したことも - パフォーマンスが低下 - SEOにも悪影響 - パフォーマンス対策は別軸で進めている 9 Nuxt実装による現在の課題 💀
フロントエンド App分割 10 2021年2月から開始
note inc. - 新しい機能はNext.jsで実装中 - そのうち本体も分割していく - Nuxtを今すぐ捨てるわけではない - 🔥共通Componentsをどう解決するか
- 共通スタイル - Router問題 => これらの問題を解決していく 💪 フロントエンドApp分割 11
note inc. - Web Componentsを検討した - Stencil.jsを使ってみた - バンドルサイズがでかい -
SSRできない - Svelteを採用 🎉 - バンドルサイズが小さい - 試しにButtonを実装してみた - Stencil.js 36.8KB - Svelte 5.5KB(React adapterを含む) 共通Componentsをどう解決するか 12
note inc. - Svelteを採用 🎉 - TypeScript が気持ちよく書ける - Webpack
config を書けば Nuxt.js/Next.js 上で動く - SSR/Hydrationも簡単にできる => Github Packagesでライブラリ化 共通Componentsをどう解決するか 13
note inc. SvelteをReactで動かす例 14 svelteファイルがimportのために Webpack loaderを追加する 基本的にはtargetに要素を与えて
newするだけで動く ※実際にはもう少し対応が必要です ※これはSSRに対応していません
note inc. SvelteをVue(ver2系)で動かす例 15 svelteファイルがimportのために Webpack loaderを追加する 基本的にはtargetに要素を与えて
newするだけで動く ※実際にはもう少し対応が必要です ※これはSSRに対応していません
App分割をやって 見えてきたこと 16
note inc. - 新しいFramework/Libraryの知識 - 課題解決の引き出しになる - ビルドシステムを読み解く力 - 問題解決能力に直結
- 実装力 - コードを書くスピード、習熟度 - フットワーク - 分析力 - 成果物が求めていたものかを確かめられる 求められる技術と知識 17
note inc. - 個人的な想いから、アイデアを作る - 歯磨きしてる時、頭を洗っている時、散歩している時 - 仲間に相談すると同意を得られる - 単純にSlackでつぶやくだけ
- アイデア+αされてブラッシュアップされる - 上長に相談すると時間が得られる - 残業しなくて済む - お墨付きで改善を進められる - 小さく始めて少しずつ周りを巻き込む - すばやく試そう、つねにリーダーシップを、おおきな視点で考えよう まわりの協力が不可欠 18
19 noteの フロントエンドエンジニアを 募集中です 採用情報 https://open.talentio.com/1/c/note/requisitions/det ail/11493
None