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
開発メンバーから見たマナリンクFEリプレース
Search
Kota Ogawa
April 18, 2024
Programming
1
140
開発メンバーから見たマナリンクFEリプレース
Kota Ogawa
April 18, 2024
Tweet
Share
Other Decks in Programming
See All in Programming
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
460
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 2
philipschwarz
PRO
0
140
HTTPプロトコル正しく理解していますか? 〜かわいい猫と共に学ぼう。ฅ^•ω•^ฅ ニャ〜
hekuchan
2
620
SQL Server 2025 LT
odashinsuke
0
130
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.3k
Deno Tunnel を使ってみた話
kamekyame
0
310
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
110
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
220
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.6k
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
770
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
160
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Technical Leadership for Architectural Decision Making
baasie
0
200
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
The Invisible Side of Design
smashingmag
302
51k
4 Signs Your Business is Dying
shpigford
187
22k
The browser strikes back
jonoalderson
0
300
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
52
Information Architects: The Missing Link in Design Systems
soysaucechin
0
740
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をどっちもさわれるの、個⼈的にはとても楽しい🤤
ご清聴ありがとうございました☺