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
150
1
Share
開発メンバーから見たマナリンクFEリプレース
Kota Ogawa
April 18, 2024
Other Decks in Programming
See All in Programming
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
300
飯MCP
yusukebe
0
450
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
190
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.1k
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
250
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
650
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.3k
Symfonyの特性(設計思想)を手軽に活かす特性(trait)
ickx
0
110
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.2k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4k
20260315 AWSなんもわからん🥲
chiilog
2
180
Featured
See All Featured
A better future with KSS
kneath
240
18k
We Have a Design System, Now What?
morganepeng
55
8.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
81
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
150
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
99
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
170
Technical Leadership for Architectural Decision Making
baasie
3
300
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
500
Git: the NoSQL Database
bkeepers
PRO
432
67k
Amusing Abliteration
ianozsvald
1
150
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をどっちもさわれるの、個⼈的にはとても楽しい🤤
ご清聴ありがとうございました☺