onoです。
2015年10月3日に開始された「PHPカンファレンス2015 – #phpcon2015」に参加してきました。
聴講したセッションの感想などを残したいと思います。
@大田区産業プラザ(PiO)
今回はスポンサーとしても末席に加えて頂き、ブースも展示してセッションも聴講して、のミドルコース!(セッション枠までには至っておりません)
ブースでは多くの方々とご挨拶・交流をさせて頂きました。
運営・関係者のみなさま、ありがとうございました!
@インフィニットループのブースの様子
さて、では参加セッションとその感想を紹介したいと思います。
参加1本目 こわくないSymfony2 – 業務で使って気づいた7つの良いところ
株式会社VOYAGE GROUPの中西豪さんによる発表です。
弊社でも一部Symfony2を単体のコンポーネントとして利用しているケースがあり、安定したリリースプロセスや自由度の高さなどの恩恵を受けています。
デモの際に、「このスライドは実はSymfony2で出来ています」とそのままプロファイラが表示されてびっくりしました!
開発時にログやexplainなどの情報が、プロファイラを見るだけで手に入るのはとても魅力的でした。
また自分も気になっていたEventListenerの管理について質疑応答がありましたが、
- やりすぎると分かりづらくなるので本当に必要なものだけに数を絞る
- プロファイラで発火したイベントを確認できる
とここでもプロファイラが活躍するようです。
是非試してみたいと思います。
参加2本目 超高速WordPress〜PHP7 vs HHVM vs PHP5.6
プライム・ストラテジー株式会社の中村けん牛さんによる発表です。
なぜ高速化が必要か、どういった考えで行うのかという説明から始まり、実際に高速化する手順を分かりやすく説明されていました。
まずはページキャッシュを使わずに高速化するということで、
素のWordPressをインストールした状態から、PHP5.4 + apc、PHP5.6 + OPcache、MySqlのクエリキャッシュ、
翻訳キャッシュ(こちらはWordPressプラグイン)、PHP7RC4 + Opcache、HHVM3.9、さらにgzipによる圧縮と進み、最終的にロード時間は約8.8倍、秒間リクエスト数は約11.9倍まで向上していました。
タイトルこそ超高速WordPressとなっていますが、WordPressに限らず通常のWebサービスでも使えるテクニックになっていると思います。
残念ながら時間切れで、ページキャッシュを使う部分の話は伺えませんでしたが、PHP7のパフォーマンスの高さにも期待が膨らむ内容でした。
参加3本目 SPEEDING UP THE WEB WITH PHP 7
お昼休憩を挟んで次はいよいよPHPのパパ、Rasmus Lerdorfさんによる基調講演です!
http://talks.php.net/tokyo15#/
最初はスクリプト言語として作ったわけではなく、当時の問題解決が目的だったと言っていたのが印象的でした。
そしてPHP7の新機能についての説明です。作者から直接聞けると意義深く感じますね。
以下新機能まとめ
- OPCacheをディスクに書き込むようにでき(.php.bin)、再起動後やCLIツールの高速化される
- ASTによる静的解析が可能
- 戻り値の型宣言
- スカラー型宣言
- 強い型付け
- 無名クラス
- null 合体演算子
- 宇宙船演算子
- Fatal時の例外
- Closure::call()の追加
- 非推奨機能の削除
- 新しい予約語
- 変数やプロパティ、メソッドへの間接的なアクセスの扱いの変更
など非常にボリュームがあります。
Rasmusさん作の静的解析ツール「phan」を使えば、最後の
$obj->$method()
のような呼び出しも検出できるようです。
次いでPHP7のパフォーマンスについて。
色々なPHP製OSSのPHP5系、PHP7、HHVMのベンチマーク結果です。
一部HHVMの方がパフォーマンスが良いですが、5系からは大きく向上しているものが多いですね。
速度改善はWordPressを基準としており、WordPress4.1.1ではHHVMに負けてしまったが、gcc fdoでコンパイルすればほぼ同等になるようです。
最後に、とにかくPHP7のテストに協力して欲しいとのことでした。
Vagrantfileを使えば、バージョン違いの20個(!)のコンパイル済みのphpを使う環境がすぐに手に入るので、とにかくリリース前にテストしてバグを報告してほしいとおっしゃっていました。
なお、正式版の公開は今月末~来月初めの予定だそうです!
参加4本目 営業・運用を支える 気付ける 管理画面
続いて株式会社Zucksの前田雅央さんによる発表。
普段あまり意識せずに作ってしまいがちな、内部向けの管理画面をいかに”気付ける”管理画面にするかというお話で大変参考になりました。
- 更新履歴では変化ではなく状態を記録する
- リンクを用意せず別URLでリリースし、既存画面との比較を行う
などすぐに実行できそうなので試してみたいと思います。
エンジニアからユーザへコミュニケーションを取る、他社のサービスでも単に使うだけではなく、自分がつかいやすい/にくいポイントを考えるようにして自分が作っているものに反映していくという姿勢もとても大事ですね。
参加5本目 How to Build Efficient and Integrated Development Environment for The Team
最後は株式会社メルカリの@sotarokさんによる発表です。
VMのディレクトリ構造を本番と同じにしたり、ローカルVMへのアクセスにRoute53を使うなど、具体的な開発環境のお話がとても勉強になりました。
いかに無駄を取り除いて本質的な開発に最も集中できる環境を作るか、というのは本当にその通りですね。
この機会にもう1度普段の環境を振り返ってみようと思います。
また「優秀な人の揃うチームにこそ教育は重要」「最近新人教育にメンター制を取り入れた」と教育についても触れられていました。こちらも気になるテーマですので、いつか詳しく伺ってみたいです。
お昼のお弁当
弊社でもお世話になっているシャショクルさんがお弁当販売にいらしてました!
あとがき
大盛況でした!
全セッション終了後のLTについては本記事では触れることができていませんが、次回機会があればと思います。
次回も参加したいと思います!