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
開発メンバーから見たマナリンクFEリプレース
Search
Kota Ogawa
April 18, 2024
Programming
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
開発メンバーから見たマナリンクFEリプレース
Kota Ogawa
April 18, 2024
Other Decks in Programming
See All in Programming
HTML-in-Canvasで作る未来のWeb UI表現
clockmaker
5
5.1k
Railsバージョンを4倍にした話
optim
0
350
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
SREの越境 / SRE Collaboration
y0hgi
2
310
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
390
ChromeでローカルLLM
ryu1013
0
140
sbt 2.0: takeoff
eed3si9n
0
160
JIS keyboard support in Omarchy
lef237
0
110
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
8
6.6k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.9k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
The browser strikes back
jonoalderson
0
1.8k
Building Adaptive Systems
keathley
44
3.2k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Side Projects
sachag
456
43k
The World Runs on Bad Software
bkeepers
PRO
72
12k
GitHub's CSS Performance
jonrohan
1033
470k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Transcript
開発メンバーから⾒たマナリンクFEリプレース 株式会社NoSchool / kou
• ⾃⼰紹介 • Nuxt2からNext.jsへの移⾏⼿順 • Nextリプレースについて⼊社当時に思っていたこと • 今改めて振り返る、Nextリプレースしていて良かったこと • Nextリプレースの⼤変なところとか苦労
• まとめ ⽬次
⾃⼰紹介
• kou(X:@ogakuzuko) ◦ NoSchoolに⼊社して1年9ヶ⽉ぐらい(2022年8⽉⼊社) • NoSchoolでの開発 ◦ オンライン家庭教師マナリンクの開発を担当 ◦ フロントエンド(Nuxt,
Next) / アプリ(RN) / バックエンド(Laravel) • その他 ◦ ⼈⽣初のLT登壇です…! ◦ aikoが好き(今公開しているコナンの映画の主題歌歌ってます😻) ⾃⼰紹介
Nuxt2からNext.jsへの移⾏⼿順
• NuxtからNextへのリプレース作業は、⼀度に全ての画⾯/機能をNext移⾏するのではな く、画⾯のパス単位で段階的に移⾏する⽅針で進めていった ◦ このあたりの詳細な意思決定の判断はCTOの発表の通り • NuxtとNextの画⾯の振り分けは、ローカルの開発環境ではNginxコンテナが、ステージン グ環境以降ではAmazon CloudFrontがその振り分けを担っている ◦
詳細は次のスライド以降 Nuxt2からNext.jsへの段階的なリプレース
• ローカルの開発環境では、 Docker上のNginxコンテナ をリバースプロキシとして ⽤いることで、 Nuxtの画⾯とNextの画⾯の 振り分けを実現している 段階的リプレースの作業⼿順(Local)
• ステージング環境以降では、 Amazon CloudFrontのビヘイビア 設定を⽤いて、Nuxtの画⾯と Nextの画⾯の振り分けを実現 • また、このCloudFrontの設定は、 AWS CDKで管理されているため、
インフラに詳しくなくとも Nextへの移⾏作業を進めることが 可能 段階的リプレースの作業⼿順(Staging/Production)
• 以下のことやそれ以外で気になることがある⽅は、ぜひ懇親会等でお話しましょう! より詳細な話は社内勉強会などでできるかも🤭 ◦ ローカル開発環境ではNginxコンテナでNuxtとNextの振り分けを⾏なっているって 具体的にどういうこと? ◦ Nuxt.jsとNext.jsはそれぞれどこにデプロイしているの? ◦ パス単位で移⾏ってより具体的にはどういうこと?
◦ 実際のNext移⾏作業の際にあったミスの話とかあれば聞きたい! ◦ などなど とはいえここで全て説明するには余⽩が狭すぎるので…
Nextリプレースについて⼊社当時に思っていたこと
(正直)とくになにも思ってませんでした…☺ (というかそこまで意識が回ってなかった…)
• というのも…、Nextリプレースの時系列は以下のような感じだった Nextリプレースの時系列
• 😹 マナリンクのドメイン知識を覚える⽅がまずは⼤事〜〜〜 • 😹 ⼊社1ヶ⽉で⽇々の技術キャッチアップでいっぱいいっぱい〜〜〜 • 😹 Vue2はまだわかるけどNuxt2とVue3(Composition API)の書き⽅ワカラン〜〜
• 😻 React/Next関係は個⼈で触っていたのでこのあたりのキャッチアップは⼀旦省けるの 嬉しい〜〜〜 • 😻 Reactの⽅がまだ慣れているのでReact書けるの嬉しい〜〜〜 • 😻 ⽣CSS書くの苦しいマンなのでTailwindありがたい〜〜〜〜 • 😻 NginxとかCDKとかよくわからないけどNextに移⾏したいパスを追加指定するとNext に向くのすごい〜〜〜〜〜〜 • 😹 それよりもサーバーサイドがやばい〜〜〜〜〜〜 当時の気持ち(⼊社1ヶ⽉とか)
今改めて振り返る、Nextリプレースしていて良かったこと
• 新規に作る機能はNext(React)で初めから開発することができる! ◦ このおかげで、⽐較的⼤規模な新機能開発の際にもNext(React)を使⽤して開発することができた ◦ また、Webとアプリで同じ機能を実装する際の開発効率が爆上がりした • 社内勉強会の際にReactの話題を話すことができる ◦ Reactだと⾃分でも技術記事を書いたこともあるので、話題に出しやすいので嬉しい。笑
• 移⾏を積み重ねながら少しずつ改善をしていくことができる(いきなりベストプラクティ スを求めなくていい) • 移⾏に際しての⼼理的な⾯での負担がフルリプレースよりも軽い 段階的なリプレースであったからこその良かったこと
Nextリプレースの⼤変なところとか苦労
• 普段の機能開発の際にNuxt2(Vue2)とNext(React)両⽅のキャッチアップが必要になる ◦ Vue2系とReactでは書き⽅以前に考え⽅にも違いがあり、コードを読む際の認知負荷も⾼い ◦ ただ、基本的には改修頻度の⾼い箇所からNextへリプレースが進められているので、リプレースが進む につれてNuxt(Vue)を触る頻度は減っていく傾向にはある • 移⾏し終わったからとすぐにNuxtの画⾯を削除できるわけではない ◦
nuxt-routerなどでの遷移が残っている場合などに404になってしまう(実際に漏れる) • Nuxt(Vue)とNext(React)の双⽅を修正しないと変更が漏れる場合がある(ヘッダーとか) • ESLintなどの設定や、aspidaの型など、NuxtとNextで2重管理になるファイルが出てしまう 段階的リプレースであることによる⼤変なところ
まとめ
VueとReactをどっちもさわれるの、個⼈的にはとても楽しい🤤
ご清聴ありがとうございました☺