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 2 の EOL まで 2 ヶ月ですが進捗どうですか?
Search
Kobayashi Kazuhiro
October 28, 2023
Programming
13k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vue 2 の EOL まで 2 ヶ月ですが進捗どうですか?
Vue Fes Japan 2023
Special Lunch Session
Kobayashi Kazuhiro
October 28, 2023
More Decks by Kobayashi Kazuhiro
See All by Kobayashi Kazuhiro
OpenAPI と型 | Mita.ts #1
kzhrk
0
1.3k
メドピアのサービスにおけるテスト戦略の過去と未来 〜かかりつけ化薬局⽀援サービス kakari 〜
kzhrk
0
84
Other Decks in Programming
See All in Programming
AHC070解法紹介
eijirou
0
130
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
260
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
570
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.4k
JRuby: Past, Present, and Future
headius
0
200
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
8.5k
iOSDC2026登壇資料.pdf
riofujimon
0
190
一人だけ、Kiroが静止する日
hideg
0
130
Webの地図
yosuke_furukawa
PRO
6
4.8k
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
340
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
270
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
580
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Six Lessons from altMBA
skipperchong
29
4.5k
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Design in an AI World
tapps
1
330
Making the Leap to Tech Lead
cromwellryan
135
10k
Accessibility Awareness
sabderemane
1
220
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
HDC tutorial
michielstock
2
910
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Transcript
20 2 3 / 10 / 2 8 (Sat) ⼩林和弘
Vue 2 の EOL まで 2 ヶ⽉ですが、 進捗どうですか? Vue Fes Japan 20 23 Special Lunch Session Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
⾃⼰紹介 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
メドピアグループの紹介 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
開発を⽀援する取り組み 輪読会 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc. •
Vue 3 migration guide • TypeScript Handbook • JS Primer • React 公式ドキュメント
開発を⽀援する取り組み モブプロ • playwright を利⽤した VRT • Next.js プロジェクトの技術選定 •
既存プロジェクトへの bun の適応 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc. • webpack → rspack の移⾏ • eslint のカスタムルール作成 • vite_rails の適応
開発を⽀援する取り組み スポンサー • Vue Fes Japan 2 023 ゴールドスポンサー •
Vue Fes Japan 2 022 プラチナスポンサー • Vue Fes Japan 2 019 プラチナスポンサー Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
詳細を知りたい⽅は、カジュアル⾯談へ 会社紹介はここまで Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Vue 2 の EOL まで 2 ヶ⽉ですが、進捗どうですか? Copyright(C) 2023
ALL RIGHTS RESERVED, MedPeer, Inc.
Vue 2 の EOL は 2023/12/31 End of Life を過ぎると…
• 2024 年からは Vue 2 のアップデートが⾏われません • npm や CDN からの配信は引き続き⾏われます • 逃げ道として… • HeroDevs で Vue 2 の有償サポートが提供されています Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Vue 2 を使い続けてもいいの? Stay on Vue 2 • 最新版の Vue
2 . 7 系であれば技術的には(ある程度)問題ない • script setup • Composition API • セキュリティパッチ更新がない • 社会的な規制、会社のポリシーに抵触するかも Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Vue 3 へアップデートしましょう メドピアのほとんどのサービスが Vue Copyright(C) 2023 ALL RIGHTS RESERVED,
MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
医師専⽤コミュニティサイト MedPeer medpeer.jp • Rails View 上に Vue を乗せる MPA
構成 • vue-router や vuex は未使⽤ • vue ファイルの数: 393(2023-10-13 現在) • Vue 2 . 7 へはアップデート済 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
eslint の Vue 3 エラーを解消 医師専⽤コミュニティサイト MedPeer • eslint で
Vue 3 のルールでエラーになったファイルを徐々に migrate • plugin:vue/vue 3 -recommended の Vue 3 ルールを有効化 • エラーが発⽣したファイルのルールをオフにする TODO ファイルを作成 • TODO 対象のファイルを Vue 3 の記述に migrate して TODO から削除 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
eslint の Vue 3 エラーを解消 医師専⽤コミュニティサイト MedPeer Copyright(C) 2023 ALL
RIGHTS RESERVED, MedPeer, Inc.
eslint のカスタムルールで Vue 2 記述を排除 医師専⽤コミュニティサイト MedPeer Copyright(C) 2023 ALL
RIGHTS RESERVED, MedPeer, Inc.
Vue 3 の createApp の Wrapper を作成 医師専⽤コミュニティサイト MedPeer Copyright(C)
2023 ALL RIGHTS RESERVED, MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
薬剤師のコミュニティサイト ヤクメド yakumed.jp Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
• Rails View 上に Vue を乗せる MPA 構成 • vuex は未使⽤ • vue ファイルの数: 268(2023-09-06 現在) • Vue 2 . 6 系と Vue 3 系を利⽤(2023-09-06 現在)
Vue 2 と Vue 3 を共存させて徐々に migration 薬剤師のコミュニティサイト ヤクメド Copyright(C)
2023 ALL RIGHTS RESERVED, MedPeer, Inc. • package.json のエイリアスで Vue 3 を個別にインストール • Rails View に紐づくエントリーポイント毎に Vue 3 対応を進める • Vue 3 のテストはモノレポ環境に vitest を導⼊
エントリーポイント単位で Vue 3 対応 薬剤師のコミュニティサイト ヤクメド Copyright(C) 2023 ALL RIGHTS
RESERVED, MedPeer, Inc.
Vue 3 のテストはモノレポで vitest 環境を構築 薬剤師のコミュニティサイト ヤクメド Copyright(C) 2023 ALL
RIGHTS RESERVED, MedPeer, Inc.
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
特定保健指導の効率化⽀援サービス Tonoel tonoel-mgr.fitsplus.jp Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
• Rails を API として使⽤した Nuxt の SPA構成 • ひとつのリポジトリで 2 つの Nuxt を管理するモノレポ • 初期構築時は Vuex 3 を利⽤ • 初期構築時から Composition API を利⽤ • vue ファイルの数: 163(2023-09-06 現在) • Nuxt 2 . 17 系を利⽤(2023-09-06 現在)
Vuex 3 を Pinia 化 特定保健指導の効率化⽀援サービス Tonoel Copyright(C) 2023 ALL
RIGHTS RESERVED, MedPeer, Inc. • Nuxt 2 系の状態管理ライブラリは Vuex 3 • Vuex 3 は Vue 3 に⾮対応 🤔 • 状態管理ライブラリを Pinia🍍に置き換え
Nuxt 3 の migration ブランチ 特定保健指導の効率化⽀援サービス Tonoel Copyright(C) 2023 ALL
RIGHTS RESERVED, MedPeer, Inc. • Nuxt 3 ⽤の migration ブランチを作成 • Nuxt 3 の migration ガイドに沿って破壊的変更に対応 • https://nuxt.com/docs/migration/overview • テストケースで⾒つかった細かい考慮漏れを対応
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
医療機関起点の薬局予約サービス やくばと yakubato.jp Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
• Rails を API として使⽤した Nuxt の SPA 構成 • ひとつのリポジトリで 2 つの Nuxt を管理するモノレポ • 初期構築時から Pinia🍍を利⽤ • 初期構築時から Composition API を利⽤ • vue ファイルの数: 157(2023-09-06 現在) • Nuxt 3 に migration 済
とりあえず Nuxt 3 環境をつくる 医療機関起点の薬局予約サービス やくばと Copyright(C) 2023 ALL RIGHTS
RESERVED, MedPeer, Inc. • モノレポ内の 1 つの Nuxt のトップページの表⽰担保のみ対応 • 公式の migration ガイドの通りに設定‧コードを書き換える • Nuxt 3 ⾮対応の modules は⾃前で書き直す • @nuxtjs/axios → axios を⾃前で組み込み • @nuxtjs/gtm → @gtm-support/vue-gtm • ユニットテストがコケるのも気にしない
壊れているところを⼿分けして直す 医療機関起点の薬局予約サービス やくばと Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc.
• 開発環境で発⽣している warning log、error log 対応 • テストをパスするようにする • Storybook を Vue 3 対応する(ついでに vite 化) • eslint ルールを改修 • モノレポの他の Nuxt にも同じ対応を適応
まとめ Vue 2 / Nuxt 2 → Vue 3 /
Nuxt 3 Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc. • 🐢 部分的に徐々に進める • 医師専⽤コミュニティサイト MedPeer • 薬剤師のコミュニティサイト ヤクメド • 🐜 migration ブランチを⽤意して開発と並⾏して進める • 特定保健指導の効率化⽀援サービス Tonoel • 💪 気合で⼀気に進める • 医療機関起点の薬局予約サービス やくばと
Copyright(C) 2023 ALL RIGHTS RESERVED, MedPeer, Inc. ご清聴ありがとうございました https://medpeer.co.jp/recruit/
https://tech.medpeer.co.jp/ 採⽤情報 メドピア開発者ブログ