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
進化し続けるプロジェクト ~バージョンアップを円滑に進める方法~
Search
wadakatu
August 26, 2024
Programming
0
87
進化し続けるプロジェクト ~バージョンアップを円滑に進める方法~
wadakatu
August 26, 2024
Tweet
Share
More Decks by wadakatu
See All by wadakatu
Serena MCPのすすめ
wadakatu
4
1k
Other Decks in Programming
See All in Programming
詳しくない分野でのVibe Codingで困ったことと学び/vibe-coding-in-unfamiliar-area
shibayu36
3
5.1k
EMこそClaude Codeでコード調査しよう
shibayu36
0
220
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
480
技術的負債の正体を知って向き合う
irof
0
200
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
170
Six and a half ridiculous things to do with Quarkus
hollycummins
0
180
品質ワークショップをやってみた
nealle
0
570
One Enishi After Another
snoozer05
PRO
0
130
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.4k
CSC305 Lecture 08
javiergs
PRO
0
250
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
510
Foundation Modelsを実装日本語学習アプリを作ってみた!
hypebeans
0
120
Featured
See All Featured
The Language of Interfaces
destraynor
162
25k
How to Ace a Technical Interview
jacobian
280
24k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
A Tale of Four Properties
chriscoyier
161
23k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
4 Signs Your Business is Dying
shpigford
185
22k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Designing for Performance
lara
610
69k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Transcript
バ ー ジ ョ ン ア ッ プ を 円
滑 に 進 め る 方 法 進化し続けるプロジェクト エージェント事業開発本部 MENTA担当 磯野 公耀 26 August, 2024
自己紹介 名前: 磯野 公耀(いその こうよう) 生息地: 大阪府 好きなもの: HHKB ,
カメラ GitHub: wadakatu アレルギー30種類持ってます(よく生きてる、えらい)
プログラミング言語 / フレームワーク バージョンアップしてますか?
バージョンアップって 中々進まないものですよね
影響範囲広すぎ ライブラリの互換性調べるのめんどくさい 時間とリソースが足りねえ! ??「今動いてるんだから いいじゃん」 現行バージョンと最新バージョンの差分デカすぎる!!
その気持ちわかります。
でも、バージョンアップは必要不可欠 逃げちゃダメだ、逃げちゃダメだ、逃げちゃダメだ!
バージョンアップを怠ると、 、 、 セキュリティの脆弱性増加 パフォーマンスの劣化 エンジニア採用への悪影響
なので、Mentaは
PHP 8.1 -> PHP 8.2 Laravel 10 -> Laravel 11
Vue2 -> Vue3 同じ悩みを抱えながらも、 、 、 のバージョンアップをしました! 4ヶ月でやったった!
バージョンアップを 円滑に進めるためのTips5選
1. 周辺ライブラリの断捨離をしよう お家の断捨離もしないとな。 。 。
言語やフレームワークのバージョンアップは 周辺ライブラリのバージョンアップも含まれる
それなら、バージョンアップ対応する ライブラリの数はなるべく少ない方が楽できる
昔使ってたけど、今使ってないライブラリって意外と多い
Mentaでは PHP / Laravelバージョンアップ:15個削除 Vue.jsバージョンアップ:7個削除
適切に断捨離して、無駄なアップデート作業を省こう!
2. ドキュメントと親友になろう
メジャーバージョンアップデートの際には、専用の公式 ドキュメントが用意されていることが多いです。
ブログ記事などを読む前に、絶対に 公式ドキュメントを先に読みましょう
英語版しかなくても、ChatGPTやDeepLなど 駆使して諦めず読んでみよう この業界にいる限り、英語からは逃げられないんですから...
自分たちのコードと照らし合わせながら読むと、 大体の影響範囲が予測できるのでおすすめ
3. バージョンアップは一歩ずつ
バージョンアップに焦りは禁物
PHPで例えると
PHP7.2 → PHP8.2 みたいなのは 絶対やめてください
セマンティックバージョニングを理解して 無理のないバージョンアップを行おう
セマンティックバージョニングとは X.Y.Z のようなバージョン表記 例:PHP8.1.19 / Vue3.4.12 X = メジャーバージョン 大きな機能変更、削除(後方互換性なし)
Y = マイナーバージョン 新機能追加、パラメータ追加(後方互換性あり) Z = パッチバージョン バグ修正(後方互換性あり) 詳しい説明はこちら
セマンティックバージョニングを使った場合 現行バージョン:PHP7.2.0 目標バージョン:PHP8.2.22 PHP7.2.0 -> PHP7.2.34 -> PHP7.3.33 -> PHP7.4.33
-> PHP 8.0.30-> PHP8.1.28 -> PHP8.2.22 あくまでも一例です
4. GitHubを有効活用しよう
公式ドキュメントがない場合、次に頼れるのはGitHub
GitHubのリポジトリページのREADMEにバージョンアップの 変更点や注意点が記載されていることもある
GitHubのIssueやDiscussionにも アップデートに関して有益な情報がよく転がっている
雑訳:このライブラリのVue3サポート頼むで〜〜〜
雑訳:Vue3サポートあったらワイも嬉しいわ〜 Vue3用に作ったフォークがあるみたいやけど、 製作者の@sipecさんがほんまにやる気あるかわからんのよな〜
雑訳:残念やけど、そのフォークもうメンテされてないっぽいで〜
雑訳:せやねん、色々忙しくてやめたんよ。ごめんやで。 。 。
雑訳:このプラグインのVue3対応しといたで〜 GitHub見といてよかった〜〜〜 🎉
IssueやDiscussionにまだ存在しない題材に関しては 自分で投稿してみるのも大事
5. ツールを使って楽しよう
Rector
PHPStanを用いた静的解析 + PHP-ParserベースのAST操作 = 超強力リファクタリングツール 引用元:Rector ではじめる "運用を止めない" PHP アップグレード
Rectorとは
MentaでもRector活用して 楽に安全にアップデートしました!
None
None
お金が潤沢に使える場合は...
有料サービスを使って 楽をするのもありかも。 。
まとめ バージョンアップは色々辛い
まとめ 効率よくバージョンアップしよう
まとめ ・1歩ずつバージョンアップを進めていこう ・バージョンアップ時はライブラリ断捨離チャンス ・ドキュメントをよく読もう ・GitHubにはバージョンアップを助けてくれる仲間がいる ・無料、有料ツールを使って楽をしよう
ご清聴ありがとうございました。