$30 off During Our Annual Pro Sale. View Details »

[Willgate]PHP5.xから脱却する為の道のり/池添,横道

 [Willgate]PHP5.xから脱却する為の道のり/池添,横道

Z.O.E.

May 16, 2018
Tweet

More Decks by Z.O.E.

Other Decks in Technology

Transcript

  1. View Slide

  2. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  3. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  4. 導入前の状況
    • サービス稼働から 5年目
    • 開発メンバー 8人
    • CakePHP1.3
    • PHP5.3

    View Slide

  5. 導入前の状況
    • サービス稼働から 5年目
    • 開発メンバー 8人
    • CakePHP1.3
    • PHP5.3

    View Slide

  6. 導入前の状況
    • Composer 使えない
    • PHPの新しい機能が使えない
    • CakePHPのアップグレードもできない

    View Slide

  7. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  8. PHP7導入への発端
    • サービスの全面リニューアルをしたい

    View Slide

  9. PHP7導入への発端
    • サービスの全面リニューアルをしたい
    – ついでに技術のリニューアルもできるのでは?

    View Slide

  10. PHP7導入への発端
    • サービスの全面リニューアルをしたい
    – ついでに技術のリニューアルもできるのでは?
    – 最近、PHP7が出たらしい

    View Slide

  11. PHP7導入への発端
    • サービスの全面リニューアルをしたい
    – ついでに技術のリニューアルもできるのでは?
    – 最近、PHP7が出たらしい
    – これだ!

    View Slide

  12. PHP7導入への発端
    • プライベートでの開発でまずは PHP 7.0 を触ってみた
    – まずは自分が体験してみるところから

    View Slide

  13. PHP7導入への発端
    • 社外での開発でまずは PHP 7.0 を触ってみた
    – まずは自分が体験してみるところから
    • リニューアルに合わせてあげたいとリーダーに相談

    View Slide

  14. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  15. 導入検討
    • 導入メリット
    – メリットを明確にする
    検討 計画 交渉
    ※ここの情報が足りない場合は現場で調査/検討させる

    View Slide

  16. 導入検討
    • 導入メリット
    – メリットを明確にする
    • 導入しないデメリット
    – 導入するメリット以上にしないリスクも重要
    検討 計画 交渉
    ※ここの情報が足りない場合は現場で調査/検討させる

    View Slide

  17. 導入計画
    • 開発スケジュールを整理する
    ①数カ月かかる開発プロジェクトがある場合
    • プロジェクトの検証期間を有効活用
    ②小さい開発が続いている場合
    • PHPバージョンアップを別途プロジェクト化
    検討 計画 交渉

    View Slide

  18. 導入計画
    • 開発スケジュールを整理する
    ①数カ月かかる開発プロジェクトがある場合
    • プロジェクトの検証期間を有効活用
    ②小さい開発が続いている場合
    • PHPバージョンアップを別途プロジェクト化
    検討 計画 交渉

    View Slide

  19. 導入計画
    • 開発スケジュールを整理する
    ①数カ月かかる開発プロジェクトがある場合
    • プロジェクトの検証期間を有効活用
    ②小さい開発が続いている場合
    • PHPバージョンアップを別途プロジェクト化
    検討 計画 交渉

    View Slide

  20. 導入計画
    • 開発スケジュールを整理する
    ①数カ月かかる開発プロジェクトがある場合
    • プロジェクトの検証期間を有効活用
    ②小さい開発が続いている場合
    • PHPバージョンアップを別途プロジェクト化
    ※今回は①で導入
    検討 計画 交渉

    View Slide

  21. 導入交渉①
    • 事業部サイドを説得する材料
    検討 計画 交渉

    View Slide

  22. 導入交渉①
    • 事業部サイドを説得する材料
    – サポート期限
    検討 計画 交渉

    View Slide

  23. 導入交渉①
    • 事業部サイドを説得する材料
    – サポート期限
    – 速度比較
    • 説明用に速度比較資料を用意する
    検討 計画 交渉

    View Slide

  24. 導入交渉①
    • 事業部サイドを説得する材料
    – サポート期限
    – 速度比較
    • 説明用に速度比較資料を用意する
    – 採用
    • PHP7.x系の方が進んでる感を出せる
    検討 計画 交渉

    View Slide

  25. 導入交渉①
    • 事業部サイドを説得する材料
    – サポート期限
    – 速度比較
    • 説明用に速度比較資料を用意する
    – 採用
    • PHP7.x系の方が進んでる感を出せる
    – フレームワーク
    • サポートしていないPHPバージョン 検討 計画 交渉

    View Slide

  26. 導入交渉②
    • 導入スケジュールを開発側で検討
    – 現場にスケジュールを提示させる
    • 現場で導入方法を考えさせる
    • 具体的に理由を説明させる
    検討 計画 交渉

    View Slide

  27. 導入交渉②
    • 導入スケジュールを開発側で検討
    – 現場にスケジュールを提示させる
    • 現場で導入方法を考えさせる
    • 具体的に理由を説明させる
    • 導入スケジュールを提示
    – 導入イメージをさせる
    – プロジェクトを開始してる錯覚
    検討 計画 交渉

    View Slide

  28. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  29. PHP7導入推進
    • バージョンアップ用環境と人員の確保

    View Slide

  30. PHP7導入推進
    • バージョンアップ用環境と人員の確保
    • Docker を用いて並行開発できるようにした

    View Slide

  31. PHP7導入推進
    • バージョンアップ用環境と人員の確保
    • Docker を用いて並行開発できるようにした
    • ブランチの管理
    – master から派生したバージョンアップ用の new-master

    View Slide

  32. PHP7導入推進
    • バージョンアップ用環境と人員の確保
    • Docker を用いて並行開発できるようにした
    • ブランチの管理
    – master から派生したバージョンアップ用の new-master
    • PHP7 対応リストを作成

    View Slide

  33. PHP7導入推進
    • バージョンアップ用環境と人員の確保
    • Docker を用いて並行開発できるようにした
    • ブランチの管理
    – master から派生したバージョンアップ用の new-master
    • PHP7 対応リストを作成
    • 新機能開発は PHP7 で開発

    View Slide

  34. PHP7導入推進
    • メインの載せ替え
    – 互換性のない変更の読み込み、リストアップ
    – 2人で2週間、2時間くらいずつ
    – 対象ソースは約40万行、エラーの箇所は5,000個以上
    – オレオレルーティングを挟み Cake1.3 と Cake3.2 を併用
    – ※ http://tech.willgate.co.jp/entry/3582/

    View Slide

  35. PHP7導入推進
    • メインの載せ替え
    – 互換性のない変更の読み込み、リストアップ
    – 2人で2週間、2時間くらいずつ
    – 対象ソースは約40万行、エラーの箇所は5,000個以上
    – オレオレルーティングを挟み Cake1.3 と Cake3.2 を併用
    – ※ http://tech.willgate.co.jp/entry/3582/
    • 他メンバーには PHP7 までの変更点をインストール

    View Slide

  36. アジェンダ
    • 導入前の状況 @池添
    • PHP7導入への発端 @池添
    • PHP5脱却の判断と調整 @横道
    • PHP7導入推進 @池添
    • まとめ

    View Slide

  37. まとめ
    • まずはやってみる。使ってみる。
    • 上長(決定権がある人)に懇願してみる
    • PHP5 系から PHP7 系へアップデートは意外と楽

    View Slide

  38. まとめ
    • メンバー(現場)の成長を意識しつつ検討する
    • 導入しないリスクを周囲や上長に理解させる
    • 現実的な導入計画を立てる
    • 事業部サイドにイメージさせる

    View Slide