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
Vue.js / Nuxt.js から React / Next.js へ移行した話と2年経っ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.4k
20171207_リテールAI研究会_株式会社キカガク.pdf
yoshizaki_kkgk
0
1.2k
Other Decks in Technology
See All in Technology
Claude Code本って、 読む必要あるの?
oikon48
2
440
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
660
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
670
20260912_スクラムにジェネラリストは必要か
ryugen04
0
390
GoにおけるFFIのこれまでとこれから
goccy
5
2.6k
AI 時代のスタートアップエコシステ厶から考究する技術的負債との向き合い方
m3m0r7
PRO
1
480
10分で知る最近のOmarchy
komagata
0
280
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
5
2.1k
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
680
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1.1k
Reactの設計論
uhyo
17
9k
Minecraft JavaのMODをSwiftで作る
1mash0
0
140
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
450
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
New Earth Scene 8
popppiees
3
2.6k
The untapped power of vector embeddings
frankvandijk
2
1.9k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Design in an AI World
tapps
1
310
Writing Fast Ruby
sferik
630
63k
The Spectacular Lies of Maps
axbom
PRO
1
990
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
530
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
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 で 編集 例)エンタープライズサーチ 開発する要件によって さらなる作り込みが 必要となりますが プロトタイプなら このぐらいから始めてみては いかがでしょうか?
キカガクではエンジニアを⼤募集! 成⻑期のプロダクト開発に関わりたい⽅、ご応募お待ちしています! 会社の雰囲気を知れば絶対に⼊社したくなる! → キカガクカンパニーデック