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
PHPバージョンアップをプロダクト横断PJで進めた話
Search
YS
September 25, 2020
Programming
340
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPバージョンアップをプロダクト横断PJで進めた話
PHPのメジャーバージョンアップを、社内のPHP系サービスで協力して進めた件について共有させていただきました。
YS
September 25, 2020
More Decks by YS
See All by YS
サポートチャットサービスをローンチしてから5年間で発生した負債と対策
ysakai
0
1.5k
チャットボットシステムのスマートフォン対応について
ysakai
0
1.5k
Other Decks in Programming
See All in Programming
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
contenteditable と日本語入力に向き合う
colorful12
0
200
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
1
440
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.6k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
5
3.9k
ChromeでローカルLLM
ryu1013
0
140
Domain-Driven Transformation
hschwentner
2
2.3k
R8 の設定見直しでアプリサイズ削減
andpad
0
220
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
180
Jetpack Compose Mechanisms
skydoves
3
820
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
【加筆修正版】Laravel のアプリケーションをどこにデプロイするか #phpcon_ehime
akase244
0
150
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
Bash Introduction
62gerente
615
220k
WCS-LA-2024
lcolladotor
0
890
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
Prompt Engineering for Job Search
mfonobong
0
520
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
The Invisible Side of Design
smashingmag
301
52k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
From π to Pie charts
rasagy
1
400
The Language of Interfaces
destraynor
162
27k
Mobile First: as difficult as doing things right
swwweet
225
10k
Transcript
©2020 RAKUS Co., Ltd. ©2020 RAKUS Co., Ltd. PHPバージョンアップを プロダクト横断PJで進めた話
酒井 幸教
©2020 RAKUS Co., Ltd. 自己紹介 名前 酒井 幸教 所属 株式会社ラクス
チャットディーラーの開発を担当しています。
©2020 RAKUS Co., Ltd. 今回の内容 PHPのメジャーバージョンアップを 社内のPHP系サービスで協力して 進めた件について話させていただきます。
©2020 RAKUS Co., Ltd. 経緯 社内にはPHPベースのサービスが複数あり 今までは個別でPHPバージョンアップ作業を進めていました。 このやり方だと重複した作業について無駄があったり 品質を担保する水準が決まっていないという 課題がありました。
©2020 RAKUS Co., Ltd. 経緯 今回、品質と効率を向上させるために 全PHPプロダクト横断PJを組織して PHPのメジャーバージョンアップを 進めていくことになりました。 ・備考
PHP7.1→7.3へのバージョンアップ作業
©2020 RAKUS Co., Ltd. PHPバージョンアップPJのメンバ • PHP系サービスは下記の5サービス メールディーラー チャットディーラー 配配メール
クルメル 楽楽販売 • 各サービスに対し1名が担当 ※一部2名のサービスもあり
©2020 RAKUS Co., Ltd. PHPバージョンアップの作業フロー 1. PHPの仕様変更についての調査(情報収集) ※全サービスで共通の作業なので、今回のPJで作業分担して効率化しています。 2. 各サービスに特化した影響調査(情報収集)
- 各サービスに特化したライブラリ、フレームワーク等に関する影響調査 3. 新しいPHPを開発環境に適用(開発準備) - php.iniの作成 - PHPのインストール
©2020 RAKUS Co., Ltd. PHPバージョンアップの作業フロー 4. アプリへの影響調査(設計) - 影響のある箇所を抽出し、修正箇所を選定する 5.
実装・単体テスト 6. 全機能テスト 今回は、共通の作業である「1. PHPの仕様変更についての調査」と 品質担保に関する「6. 全機能テスト」について話させていただきます。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について PHPの仕様変更の内容を調査し、 アプリに影響を与えうる変更点を洗い出します。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について ▪進め方 ①調査・レビューの担当割り振り ②調査の実施 調査結果は共有資料にまとめていく
③レビューの実施 ※今後の作業に影響する重要な調査なので 調査結果のレビューも行っています。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について ▪調査する対象 ・PHPマニュアルのPHPX.X.XからPHPX.X.Xへの移行( https://www.php.net/manual/ja/migration73.php 等
) ・チェンジログ( http://php.net/ChangeLog-7.php ) ※情報が多いので、ステータスがRemoved/Deprecatedについて調査する。 ・php.iniディレクティブ( http://php.net/manual/ja/ini.list.php ) ・セッション関連 Sessions インストール/設定( http://php.net/manual/ja/session.configuration.php ) ※以前セッション関連でバージョンアップ時の差異の検知漏れがあったので調査対象に含めています。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について ▪調査を行う観点について ・下位互換の無い変更点 変更点に関する内容がコードに含まれていると不具合に発展する可能性があります。 ・デフォルト値の変更
PHPの設定や関数呼び出し等でデフォルト値を利用している箇所に影響します。 ・新しい定数・変数・関数 アプリ内の変数・定数・関数と重複する可能性があります。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について ▪調査を行う観点について ・推奨されなくなる機能 非推奨の機能は使用しないほうが良いです。 また、今後のバージョンで廃止になる可能性が高くなります。
・新機能 既存システムに影響を与えそうなものをピックアップします。
©2020 RAKUS Co., Ltd. 「1. PHPの仕様変更についての調査」について ▪アウトプット ・PHP変更内容の把握 メインの調査です。 こちらの内容にしたがって、アプリの影響調査を進めます。
・php.ini 新バージョンのphp.iniを作成するために使用します。 ・PHPのコンパイルオプション(configure) 新しいバージョンのPHPをインストールする際に使用します。
©2020 RAKUS Co., Ltd. 「6. 全機能テスト」について PHPバージョンアップによる修正は影響範囲が広く アプリの品質担保のため、全機能テストを実施します。 また重要機能については、全機能テストでの カバレッジを100%にします。
全機能テスト:アプリ内の全機能を網羅したテスト
©2020 RAKUS Co., Ltd. 「6. 全機能テスト」について 実際に進めてみるとカバレッジ100%は 現実的ではないことがわかりました。 ・エラーケース等を通すためには無理やり エラーを発生させる必要がある。
・重要機能の中にも、重要度の低いコードが含まれている。 ・負の遺産で、現在通す事ができないケースがある。
©2020 RAKUS Co., Ltd. 「6. 全機能テスト」について カバレッジの達成度を下記に変更 ・見直し後の達成度 ファイルベースでのカバレッジ100%は厳しいため 重要なロジック部分のカバレッジが100%
になっていればOKとする。
©2020 RAKUS Co., Ltd. まとめ ・サービスに依存しない共通部分の調査を効率化 情報収集ステップの一部を集約して実施することによる工数削減(約1.5人月削減) ・品質を担保するため水準を統一 テスト内容、達成度等を統一し品質担保の既定値を設けられた。 ・情報共有による効率化・品質担保
- 作業する中で見つかった問題点の共有 - 各サービスで行った調査手順・ツールの共有 →こちらは共有資料とし今後のバージョンアップでも利用する。
©2020 RAKUS Co., Ltd. ご清聴ありがとうございました。