PHPのバージョンアップをサービスの開発と並行して進めるためにどうやったかという話
PHP 5.3 から PHP 7.0 へバージョンアップの裏側Ikezoe.makoto
View Slide
池添 誠 / Ikezoe Makoto• 2015年、ウィルゲートに新卒入社(3年目)• 開発グループ プロダクトユニット所属• サグーワークスの開発からインフラまで担当2自己紹介イメージキャラクター「さぐる」
3株式会社ウィルゲート – 事業
4株式会社ウィルゲート – 事業
5株式会社ウィルゲート – 事業
表の話• バージョンアップした話– Cake 1.3 → Cake 3.2– PHP 5.3 → PHP 7.0– ブログ記事• http://tech.willgate.co.jp/entry/3582/
裏の話• どのように進めていったか– チームに対して– 事業部に対して– 他の開発と並行して進めるための方法• バージョンアップして得られたこと
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• 社外での開発でまずは PHP 7.0 を触ってみた– まずは自分が体験してみるところから
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• 書き換え箇所の調査– 破壊的変更の箇所– 書き換えのコストがどれくらいあるか• 一括変換できるもの、できないものの洗い出し• 新機能の勉強
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• まず説得、一緒に闘う仲間を増やす– 戦闘員を増やす• 一人で進めるのは大変!バージョンアップは骨が折れる仕事• チーム全体で合意が取れてる状態にする– チームで円滑に進めるため• リニューアルに合わせてあげたいとリーダーに相談
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• 説得材料– 利便性(新しい技術)• Ex) isset 書かなくていい(`??` null合体演算子めっちゃ楽)– 技術的成長• 最新バージョンに追従してる、イケてるエンジニア• バージョンアップの経験を得られる
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• 工数の確保– 安全にバージョンアップするために必要– 受けた要望の開発は止めないように工夫して進めた– 日頃の関係性も大事
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• 説得材料– 事業部(サービス)に対するメリットを知ってもらう• 処理速度の向上、品質の担保(テストコードの導入)• ライブラリ導入の簡易化(composer 非対応だった)=開発速度の向上– より良い開発環境• サービスのブランディングにもつながる
どのように進めていったか調査期間自主利用 チーム 事業部 PHP 7.0へ• バージョンアップ用環境と人員の確保• Docker を用いて並行開発できるようにした• ブランチの管理– master ブランチから派生したバージョンアップ用の new-master– master から new-master に定期マージして新機能の漏れを防止• リリース直前の新機能開発は PHP 7.0 で開発
バージョンアップして得られたこと• サービスの成長につながった– 開発速度UP– 新しい技術・知識の獲得– ライブラリなどの対応状況• 達成感– チームメンバー全員で協力してできた → 信頼関係• 勉強会、LTなどのチャンス– 社外などでも登壇するチャンスの一つになった
まとめ• まずはやってみる。使ってみる。• 協力してくれそうな人から説得していく• 上長(決定権がある人)に懇願してみる• PHP5 系から PHP7 系へアップデートは意外と楽• 技術的なもの以外にも得られるものは多い