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
Vue.js / Nuxt.js から React / Next.js へ移行した話と2年経っ...
Search
Ryosuke Yoshizaki
July 04, 2023
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vue.js / Nuxt.js から React / Next.js へ移行した話と2年経って残った課題
Ryosuke Yoshizaki
July 04, 2023
More Decks by Ryosuke Yoshizaki
See All by Ryosuke Yoshizaki
20210122_DLLAB_講演資料_株式会社キカガク
yoshizaki_kkgk
1
2.6k
20200801_DLLAB_講演資料_キカガク
yoshizaki_kkgk
0
3.9k
【キカガク】機械学習の事業化までの道のりと社内教育のノウハウ
yoshizaki_kkgk
2
1.2k
「新規事業×AI」をはじめよう
yoshizaki_kkgk
5
2.3k
20180806_AIエンジニア育成のプロセスと落とし穴.pdf
yoshizaki_kkgk
1
270
失敗から学ぶ起業入門 ~いつの日も問題は鶏と卵~
yoshizaki_kkgk
10
35k
20180720_AIエンジニア育成のプロセスと落とし穴.pdf
yoshizaki_kkgk
0
520
20180512_キカガク_AI案件のよくある落とし穴と人材育成
yoshizaki_kkgk
1
2.3k
20171207_リテールAI研究会_株式会社キカガク.pdf
yoshizaki_kkgk
0
1.2k
Other Decks in Technology
See All in Technology
Claude Code並行開発環境の ムダ‧ムラ‧ムリを見直した話
muranakaaa
1
390
Amazon Bedrock Managed Knowledge BaseDive Deep
ren8k
0
320
Pavlokで始める電撃駆動開発
sgrsn
0
140
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
620
検索技術知識0のエンジニアが広告検索システムを内製化して運用するまで
lycorptech_jp
PRO
0
180
plamo-3-translateの開発
pfn
PRO
0
240
AIQAのナレッジ構築について
qatonchan
1
140
VPCセキュリティ対応の最新事情
nagisa53
2
350
クラウドを使う側から、作る側へ / 大吉祥寺.pm 2026前夜祭
fujiwara3
8
2k
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
720
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
240
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Curse of the Amulet
leimatthew05
2
13k
Test your architecture with Archunit
thirion
1
2.3k
Navigating Weather and Climate Data
rabernat
0
430
Balancing Empowerment & Direction
lara
6
1.2k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.7k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
310
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Writing Fast Ruby
sferik
630
63k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Transcript
リプレイスしたあと、実際どう?システム再構築への挑戦 LT ⼤会 Vue.js/Nuxt.js から React/Next.js へ 移⾏した話と2年経って残った課題 株式会社キカガク 代表取締役会⻑
吉崎 亮介
⾃⼰紹介 株式会社キカガク 代表取締役会⻑ 吉﨑 亮介 エンジニアとしての学⽣時代 出⾝:舞鶴⾼専 / 京都⼤学⼤学院 世界最⼤級の学会(化学⼯学系)にて若⼿最優秀賞を受賞
~ 23 歳 新卒で株式会社 SHIFT 配属:社⻑室(社⻑直下で新規事業/R&D を担当) 24 歳 株式会社キカガクを創業(現在:社員数 70 名超) 社会⼈向けに AI を含めた先端技術の教育を提供 現在まで累計 80,000 名を超える受講⽣ 25 歳 ~ 現在 東京⼤学で講義を担当 情報系の⼤学院⽣向けに AI の基礎から実装まで紹介 26 歳 ~ 31 歳 株式会社エイチームの社外取締役 上場企業での経営の意思決定に関与 31 歳 ~ 現在 1991 年⽣まれ 31 歳 京都府出⾝ 趣味:サウナ
今回の話の前提 ベンチャー企業がプロダクト開発を1から始める時に起きたこと • 売上は⼈⼒オペレーション(講義)で⽴っていて、それをスケールさせるための プロダクト開発であるため、時間的に余裕がある ← 本当は最重要 • リプレイスの変⾰にはトップダウンとボトムアップがあり、今回はトップダウン 先に結論
• トップダウン⽅式は現状の改善から⼊らず、新しい技術選定を使って 新しいプロダクトを横で作り、その利点をプロダクトチームに伝えて変える 起点 トップダウン⽅式 起点 起点 起点 ボトムアップ⽅式 既存 新規 詳細はこちら Vue.js & Nuxt.js から React & Next.js へ移⾏した理由
起:Vue.js/Nuxt.js で初のプロダクト開発を開始 Django (Python) や Rails (Ruby) の MTV/MVC デザインパターンとの相性
• Vue.js/Nuxt.js は社内でよく使われていたデザインパターンと相性が良かった • 社内へ知⾒のある⼈が⼊ってきた ← よくあるパターン • React の JSX は書きにくいし、読みにくい印象を持っていた ← 慣れの問題 既存 経験の少ないチームでの開発戦略 C 向け静的(SSG) → 社内向け動的(SSR)→ C 向け動的(SSR)
承:成⻑とともに⾒えてくる課題 Django (Python) や Rails (Ruby) の MTV/MVC デザインパターンとの相性 •
Vue.js/Nuxt.js は社内でよく使われていたデザインパターンと相性が良かった • 社内へ知⾒のある⼈が⼊ってきた ← よくあるパターン • React の JSX は書きにくいし、読みにくい印象を持っていた ← 慣れの問題 既存 成⻑と共に遭遇した問題* • ページ単位で SSG/SSR を切り分けたかった(SSR の LP がパフォーマンス低) • TypeScript での開発を前提としないとチーム開発でエラーが多発 → 品質低 経験の少ないチームでの開発戦略 C 向け静的(SSG) → 社内向け動的(SSR)→ C 向け動的(SSR) * Nuxt.js が Ver. 2 のときの話です
転:⼩さなプロダクトとは⾔えど… ⼀度動き始めたものを変えることは容易ではない • 技術選定を変更しても UX が改善されるインパクトが⼤きいか不明 → UX が改善されなかったときには無駄なコストと負債だけが残る最悪の展開 •
数少ないチームで新技術の調査と既存に対する新規機能開発の同時並⾏は困難
新規事業を横に⽴てて技術調査の役割も兼ねさせた • 現状とは別チームで⾛らせることでメリットの部分だけを徐々に融合させた → 半年後に既存チームも Next.js へ変更を決定 → 約1年かけて Next.js
へ移⾏を完了 • イノベーター理論の順番を守った変⾰ • 技術負債の解消は⼀朝⼀⼣ではできないため、 会社の⽂化に合わせた戦略が間違いなく必要 → 今回はエンジニアの創業者が推進したパターン 結:イノベーター理論を意識した負債の解消 ⼀度動き始めたものを変えることは容易ではない • 技術選定を変更しても UX が改善されるインパクトが⼤きいか不明 → UX が改善されなかったときには無駄なコストと負債だけが残る最悪の展開 • 数少ないチームで新技術の調査と既存に対する新規機能開発の同時並⾏は困難 既存 新規 詳細はこちら Vue.js & Nuxt.js から React & Next.js へ移⾏した理由
あれから2年:今も向き合う負債の問題 もっと難易度の⾼いところに課題があった • Firebase を前提としたことで成⻑痛に遭遇 • DB が Firestore の
NoSQL で設計や 実装がスピードダウン • Auth もプロジェクトごとに分けられない → B 向けや C 向けなど複数アプリケーションの統合がややこしい 変更の難易度 Lv. 3 DB、Auth Lv. 2 ⾔語、Web フレームワーク Lv. 1 ディレクトリ構成
あれから2年:今も向き合う負債の問題 もっと難易度の⾼いところに課題があった • Firebase を前提としたことで成⻑痛に遭遇 • DB が Firestore の
NoSQL で設計や 実装がスピードダウン • Auth もプロジェクトごとに分けられない → B 向けや C 向けなど複数アプリケーションの統合がややこしい 変更の難易度 Lv. 3 DB、Auth Lv. 2 ⾔語、Web フレームワーク Lv. 1 ディレクトリ構成 先⼈から伝えたいこと(屍を乗り越えて...!!) 最近は開発スピードを優先させるために Bubble などのノーコードもあるが コードを書く書かない問わず、DB と Auth は今後の成⻑に合わせられる 選定となるように慎重に選んでほしい...(切実) そして、開発スピードの要因はチーム⼈数が増えると⼤きく変わるのをお忘れなく
おまけ:最近ならこんなアーキテクチャーかな?(主観) AI を使うのが主流になる前提でのアーキテクチャー設計が不可⽋ メイン DB: PostgreSQL(RDB) • マルチテナント対応 • ベクトル検索サポート
推し Auth:Azure Active Directory App:App Service Azure OpenAI Service とのシームレスな連携 推し User Azure OpenAI Service 検索 Cognitive Search Grounding Chat サブ DB: Cosmos DB (NoSQL) チャット 履歴保存 FAQ ファイル Blob Storage (JSON など) コーポレート GUI で 編集 例)エンタープライズサーチ 開発する要件によって さらなる作り込みが 必要となりますが プロトタイプなら このぐらいから始めてみては いかがでしょうか?
キカガクではエンジニアを⼤募集! 成⻑期のプロダクト開発に関わりたい⽅、ご応募お待ちしています! 会社の雰囲気を知れば絶対に⼊社したくなる! → キカガクカンパニーデック