hypermkt blog

PHPカンファレンス2017で「できるPHP7アップグレード」を発表してきました

October 09, 2017

はじめに

2017年10月8日(日) に開催されたPHPカンファレンス2017で、「できるPHP7アップグレード」を発表してきました。発表資料はこちらです。

2年連続スピーカーとして参加できて良かったです。11:00と朝早くの時間だったにも関わらず、80名の会議室は満員で、サテライト部屋が2部屋も追加される盛況ぶりに驚きました。多数の方に視聴頂きましてありがとうございます。

質疑応答

発表後にいくつか質問をいただきました。

Q. チーム全員検証はどのような環境で行ったのか?

ユーザーさんは閲覧できないステージング環境のサーバーをPHP7.1環境に切り替え、それをチームメンバーに利用してもらいました。

Q. PHP5.2で開発しているが、チームメンバーがComposerの必要性を理解していないのでアップグレードにも興味を示しません。どうしたらComposerの必要性が伝わりますか?

長年同じ環境で開発をしているとそれが当たり前になってしまい、疑問すら持たなくなります。Composerが無いことで、チームの誰かが車輪の再発明をし、余計な開発コストを掛けている可能性があります。開発スピードが下がることはユーザーデメリットでしかありません。そのチームメンバーの方には、Composerが無いことでチーム全体の開発スピードが下がり、ユーザーさんに機能提供出来る回数が減っている現状について、良いことかどうかを聞いてみると良いと思います。

Q. E2Eテストを全画面分実装するのはかなり大変な印象です。デザイン変更時にテスト落ちが頻繁に起きませんか?

起きませんでした。E2Eテストの実装方針として、必須項目のみにテキストボックスに文字列を入れて、登録ボタンを押し、成功メッセージが表示されるかなど

  • 簡易的な*

テストケースのみでした。薄く広く実装する方針でしたので、INPUTタグを消す、name属性名を変えるなどの変更がない限りテストが落ちることはありませんでした。

PHPアップグレード関連が5本!

今年は特に多かった印象です。PHPカンファレンス2017福岡でもアップグレード関連の発表がいくつかあり、重い腰を上げ始めた会社さんが増えてきたのだと思います。

  • PHP7アップグレード

  • バージョンアップ施策について

  • 広告配信管理システムを支えるPHP ~ レガシーシステムからの段階的移行戦略

  • PHPで作るサービスの、これまでの10年とこれからの10年

  • ChatWorkとPHPと私

  • PHP Version Up と AWS への移行

発表を聞いていて、いくつか感じたことがありました。

アップグレードの必要性は認識していたが、売上・KPIのためサービス開発を優先

弁護士ドットコムさんの発表が印象的でした。サービス開始から8年間赤字で、最近売上が急増したころにより、今後のサービス拡大を見据えてアプリケーション環境の改善に着手できるようになったと仰ってました。自分の担当サービスも赤字ではないですが、KPIが急成長した点では同様な境遇でした。また、ランサーズさんの発表時に「開発者以外がアップグレードの必要性を理解してもらえないがどうしたらいいか?」という質問もあがっていました。

エンジニア視点ではセキュリティ対応や開発スピード・モチベーション改善というのがありますが、なかなか理解してもらえない現状もあります。やはり、売上・KPIの成長などのきっかけは必要で、そこでさらなる成長のためにアップグレードの訴えをすると納得もし易いと考えます。

サービス・アプリケーション状況により対応コストが全く異なる

当然ではありますが、サービスによってアプリケーション状態、フレームワーク有り無し、インフラ規模も千差万別です。特にGREEさんのような大規模なゲームやプラットフォームですと、パートナー企業向けに提供しているAPIなどもあり、エラー一つも許されない状況だと思います。また、CakePHPなどの汎用的なフレームワークの有り無しでも作業コストが変わる印象でした。フレームワーク無しであれば、下位互換性のない変更点など一般的な修正のみですが、フレームワークがあると、フレームワークのアップグレードに伴うファイル名や実装の変更も追加され、更に作業コストが増えます。

個人的にはフレームワークは必要だと考えているので、それに伴う作業コストは致し方ないと感じますが、フレームワークのバージョンアップ時は設計方針が大きく変わる可能性があるので、PHPのアップグレード以上になるはやの対応が必要だと感じました。

チームワークという財産を得た

GREEさんの発表で、PHPアップグレードという大きな技術的な課題を乗り越えるため、チームの枠を超え様々な職種の方と積極的なコミュニケーションを取り、一致団結して取り組む、そしてそれが財産になると。話を聞いていて本当にそうだなぁ・・・うんうん、としみじみ感じていました。(資料のストーリーも分かりやすくてうまい。)

特に自分の場合は、インフラエンジニアの @hfmと密に連携して作業を進める中で、困った時に助けてもらったり、時に厳しい指摘をもらったり、お互いが各々の技術フィールドを信頼しあって進めていました。いろいろ辛かったこともありましたが、協力無くして5.2から7.1へのアップグレード目標の達成はできなかったことでしょう。PHPカンファレンスで発表する機会も生まれました。@hfm に大変感謝です。

さいごに

今年もスピーカーとして参加できて良かったです。何よりチームの同僚と一緒に登壇できたのが嬉しかったです。また、会社からもスタッフ参加や一般として参加する人もおり、いろんな形で関わっている人が多いイベントでした。

去年の中盤から色んな所で登壇することで、徐々に顔見知りが増え、過去に自分の発表を見てくれた人や名前を覚えてくれた人も何人もいました。これも継続的な発表をした成果だと思います。

やっぱりPHPカンファレンスはPHPerにとって最高のイベントなので、来年も参加したいです。

#phpcon2017 で発表してきました!サテライト2部屋増設とたくさんの方に視聴頂いてありがとうございます!来年も参加するぞー!

Makoto Chibaさん(@hypermkt)がシェアした投稿 - 2017 10月 7 11:52午後 PDT


都内で働くWebアプリケーションエンジニア。主にサーバーサイド。最近はRuby/Railsでコードを書くのが楽しい。