ほげほげ見聞録

技術メモ、備忘録、使い方はそのうち覚える

PHPerKaigi 2018前夜祭に行ってきた

行ってきた

phperkaigi.jp 行こうと思った動機は忘れたけど、面白い話が聞けたので行って正解だった!
運営の方々にはチケット買う前、会場到着前、開場後も困ってた系のTwitterの呟きをサッと拾ってもらい、本当にありがとうございました!!!


以下は発表を聞いてのメモ。
いつも通りの雑文体でざっくり書いていく。

内容

前夜祭の発表は三つ(シークレットライブ合わせると四つ)。
PHPerチョットデキルすごい人の発表ばかりで、凡才は話を追うので精いっぱいなところもあった。
といっても各所フックがあるので、どの発表も時間をかけて理解してみようと思えた。



PHPでテスティングフレームワークを実装する前に知っておきたい勘所

紹介文

スピーカー:うさみけんた(@tadsan)さん

PHPを書くと一度はフレームワークを作ってみたくなるものです。ここではテスティングフレームワークに一般的に求められる機能の概要や、プログラミング言語としてのPHP固有の事情、既存プロダクトでの実装例などを紹介します。 TDD/BDDなどの手法そのものの紹介は今回の発表での主な関心ではありませんが、PHPUnitなどの構造を知ることは実業務に活きることがあるかもしれません。(ないかもしれません)

niconare.nicovideo.jp

テスティングフレームワークを実装する話。
自分もPHPUnitを導入する際に依存パッケージが多くて面倒だったなぁと思い出した。
自前でフレームワーク作る余裕と許容はプロジェクトにないので、こういうことできる会社さんはすごいなぁ。
以前の記事でも書いたようにボチボチ自動テストは書いているが、メンテするシステムが増えたという実感がある(あまり真面目にやってないからとかはさておき)。
自前のフレームワークも合わせると、メンテは大変じゃないのかなと思ったりもした。
自動テストを書き始める前のコードのテストで悩むことが多いので、(今回発表から削られてしまった)テストしにくい状況についても聞きたかったなぁ。

サンプルコード:GitHub - zonuexe/phperkaigi-test: PHPerKaigi 2018で話したアレです



php と SAPI と ZendEngine3 と

スピーカー:do_aki(@do_aki)さん

紹介文

php のコアであるZendEngine(ZE) 。 php5 から php7 になり、ZEのバージョンも 2 から 3 にあがりました。 この発表では、ZE と php 、そしてこれらのブートストラップである SAPI の関係を整理し、 ZE2 と ZE3 とでなにが変わったのか(あるいはなにが変わらないのか)を解説したいと思います。

www.slideshare.net d.hatena.ne.jp

PHPスクリプトではなく、PHP実行環境についての話。
Server APIphpの設置するときなんかに見かけるくらいで馴染みがなかった。読みはサピだと思っていた。
普段のコーディングでは意識に上がらない、基本の部分の話で面白かった(ちゃんと知ってないとまずいだろうけど!)。
PHPのlife cycleは図になると分かりやすい。プログラミングする上でこういう部分を気にしないといけないシーンってどんなのだろうか。速度とか?
PHP7系ではコアの部分も変わったようなので、そこも含めて勉強しないとなぁと思った。

大統一PHP

スピーカー:uzulla(@uzulla)さん

紹介文

PHPは分断されていると言われる(要出典)ので、私はここらで大統一して行くしかないと思っています。今回、私の研究を発表したいと思います。 「大統一の意味がわからない」「異端」「それ意味あるの?」等の感想をいただくかもしれません。しかし、PHPerは多様性ある人たちだと思いますので勇気をだして発表します。(ここで紙面がつきた模様

speakerdeck.com

httpdになる!」「エラーは画面に出るすごい便利という世界観」
などのパワーワードが溢れてすごかった。
なんかすごかった事しか記憶にないので、資料上がったら読み直す…。
※追記
他の言語において「普通」は実行環境を用意するのが単純、バイナリも一つの場合が殆ど。
PHP使わない人にはPHPのバリエーションが多くて混乱する、そこで「普通」に合わせていく(統一)という話。
そこで、とりあえずhttpdになる(?)という話になった。

僕(httpdってApacheのアレやろアレhttpd.confとか設定面倒な、…実際何なのか考えたことないな?)
というわけで、そこから調べてみた。
httpd(HyperText Transfer Protocol Daemon)つまり HTTPデーモン、サーバへの要求の受け答え等やっている。

PHPApacheがやっているけどGoとかRubyとかetc.では「自分がhttpdになる」のだそうで(PHPのビルトインサーバーは開発用なので…httpdになれない)。

デモのコード:GitHub - uzulla/Tinitter at reactize
実行コードが失敗する、exit() or die()するとサーバも落ちる等の問題があるそうなので、PHPは「普通」に合わせずそのままでいいんじゃないかと思った。

今まではPHPApacheとセットで…という固定観念があったが、「httpdになることができる!」という事は驚きだった。
PHPは単なる仕事道具だと見ていたが、ワンバイナリや1ファイルにするという「遊び」もできると分かって良かった。



PHP7.1 is fast(?)

speakerdeck.com

uzulla(@uzulla)さんによる突然のシークレットライブ。スライドが全部英語だった!
abとかwrkとか、各種ベンチマークのツールを使ってPHP7.1のベンチを計ってみたという話。
ツールによってベンチマークがバラバラになるのはkeep-alive等の扱いがツールによって違うからかも、だそうで。
測定するツールがどのような振る舞いをしているのか把握しておかないと、測定対象の性能について断言できないんだな。
ベンチを計る機会は殆どないが、ツール毎の違いを調べてみるのも面白いと思った。

出てきた測定ツール。