コーヒー休憩

ちょっと休んでいきませんか。

#PHPerKaigi 2019 本編 二日目だけ参加した感想

PHPerKaigi 2019 の二日目の本編のみ参加してきまして、素晴らしかったので参加した感想を書きます *1

書き手

こんな人が参加記書きましたっていう参考情報 (バイアス) です。

  • PHPerKaigi 初参加。今まで参加したテックカンファは builderscon 2018 のみで、登壇経験はなし *2
  • PHP はアルバイトでレガシーな5系を一年ぐらい雰囲気で書いてました
  • 4/1 より新卒ソフトウェアエンジニア。恐らく今後 PHP は使っていきます

セッションごとの感想

それぞれタイトルは PHPerKaigi へのリンクになっています。

感想を書いててどうしてもなんか上から目線?っぽくなってしまったのですが、そういうつもりは全然ないのでご了承頂けると…。

マニュアルにない引数を与えるとどうなる?php-srcへのバグ報告をした時の話 by てきめん

前半: 未定義動作の挙動がいつの間にか変わっていた

やはりマニュアル*3 にない未定義動作は使うのはまずいないなぁと。 知らずに未定義動作も含んだコードを書いてしまいそうなのが怖いので、強い型付け*4 などの7系の機能を積極的に使っていきたいですね。

後半: バグ報告による PHP への貢献

スライドで下記の文が印象に残りました。

PHP のバグを発見した場合は、報告してください。あなたがそのバグを報告しない限り、 PHP の開発者がそのバグを知ることは恐らくなく、修正されることもないでしょう。 (PHP: バグ報告 - Manual より)

世界中の人々が、私の踏んだバグを済まなくて済む。嬉しい (発表スライドの「感想など」より)

PHP だけに限った話ではなく、「誰かがやるだろう」と流さず「気づいたらやろう」というマインドは大切にしていきたいですね。

バグ報告の過程も、バグ報告の心得的なものはあるものの *5 、英語が苦手な日本人の報告のハードルを上がるのがツラいなあと同時に、一次情報は英語がほとんどなのである程度は使えるように伸ばしていきたいですね。

報告することが大事、貢献するという気持ちが大事 (発表スライドの「英語はできるべきだが」より)

忘れずに大事にしていきたいです。

PHPでURLルーティングをつくる by bmf_san

PHP でルーティングをシンプルに実装しました、というお話でした。

ルーティングマップは多分木を用いるというシンプルな設計で、 ハンドラの追加と検索合わせて150行程度 *6 なのは、 お手軽ですごいなあと。

車輪の再発明ではありますが、やる価値のある再発明だと感じました。

Hack HTTP Request and Response Interfaces by ytake

PhpStorm より VSCode 派だったのでなんとなくでこちらを拝聴したのですが、本当にニッチな話でした。

まず PSR-7、HHVM、Hack 言語などの世界自体知らなかったので、ただただこういう世界もあるのだなあと。正直お話に全然ついて行けなかったのがすごく悔しい…。

機会があれば触れてみたいですね。

ランチセッション by 株式会社メルカリ

メルカリさんによる美味しいお弁当とともに熱いお話でした。

3つの VALUE とそれを体現するための方法、明日から新卒SWEでまさに自分の成長を加速させたいのでめっちゃありがたいです。 まだ自分の中に落とし込めていないので、後日また時間を取って振り返りたいです。

質疑応答もすごく良い回答でした。

帰ってきた!平成最後のオレオレフレームワークの作り方 by うずら

bmf_san さんのはルーティングを作ったお話でしたが、こちらはオレオレフレームワーク (以下オレオレFW) を作ってしまったというお話でした *7

ちょっと前に他人が残したオレオレFW (PHP製) を触ってツラい経験をしたり、Laravel の中身に興味があってソースを覗いたら分からなすぎて絶望した僕にとっては、すごくタイムリーな内容でした。

発表中に紹介していた、作成したオレオレFWですが発表ではあんまり仕組みの理解ができなかったので時間をとって読みたいですね。

github.com

あとは場の盛り上げがうまくて、熱量がすごかったです。

PHP監視、サービスを守る為に行う不測の事態への努力 by 清家史郎

今のところまだインフラ系の分野について知識も経験もなく、監視についてはサッパリだったので雰囲気でしか聞けませんでしたが、面白かったです。

ただタイトルに「PHP 監視」という文言がありつつも監視そのもののお話だったので、ちょっとだけ面食らいました。

なんのために監視をするのか、監視のアンチパターンなどは大事なんだろうなあと感じたので、監視の世界に踏み入れる機会があれば学びたいと思いました。

LT枠

PHPerKaigi 2019 には初めて登壇する方向けのルーキーズLT枠というものがあるみたいで、それがまた良かったです。 どうやら事前に運営の方による特訓を仕込まれているらしく、初めてながらもみなさん発表が分かりやすくてすごかったです。

途中から PC のバッテリーがやばくてちゃんとメモ取れてないのが痛かったですね…。

レガシーコードに最低限の秩序をもたせる by ユーベ

多少なりともレガシーコードに向き合った経験がある身としては、スライドの初っ端の「きっかけ」ですごくお気持ちになりました。

発表内容はレガシーコードにちゃんと向き合っていて、CI と php -l によるシンタックスチェックという、できる範囲の最低限の秩序から改善していくというアプローチは素晴らしいと思いました。

逆境でもめげずにできることから改善していく姿勢、見習いたいですね。 まあレガシーコードに向き合う必要がないことを祈ってはいますが…。

エンジニアインターンが1年間でソースコードレビューの指摘が365回を超えた話 by 小川将輝

今まであんまりがっつりソースコードレビューを受けたことはないのですが、これからはがっつりレビューを受けれる機会が多いので、どんどん良い指摘をもらえるようにしてより成長していきたいな、と思いました。

review 貯金みたいな取り組みも面白そうなので機会があれば。

CTFで学ぶPHPセキュリティ by Ryoto

CTF、名前はちょこちょこ聞いたことがあった程度だったのですが、 CTFに興味が湧きました。

特に PHP は歴史が長いせいか未定義動作でよく分からない挙動も多いということもあって、予期せぬバグを生みやすそうな気配がプンプンするので、セキュリティにも配慮した堅牢なコードを書けるようになっていきたいです。

TikTokでプログラミング勉強コンテンツを作ってみた by Kaoru

映像、音楽、リズムでテンポよくプログラミングを TikTok の動画にするのが、純粋に面白かったです。

LT/登壇でマサカリに備えるたった一つの心得 by 果物リン

テックカンファでの登壇経験はまだないですが、学会発表したことある身としてはマサカリ系の質問怖さはすごく分かるのでありがたいLTでした。

質問者は (基本的には) 敵ではないんだという認識と、想定できうる準備するだけ準備して分からないことは潔く「分からない」と言える勇気を忘れずに持っていきたいなと。

PHPerチャレンジ 「徳丸 浩の挑戦状」解説

今回初めて徳丸先生を生でお見かけしたのですが、Twitter のアイコンにすごく似ていてびっくりしました (それはそう) 。

僕は二日目から参加して、セッションを理解&メモするので精一杯で、実はお昼ぐらいまで企画をよく分かっていませんでした… *8

解説を聞いた感じだと、比較的シンプルな内容だったのかなあという印象を受けました。 現時点での自分だとSQLインジェクションディレクトリトラバーサルなどの知識としては知っていても、どう知識と結びつけて答えを導くかまでの手を動かすところまではいけなかったと思います。 この辺りが「知っている」と「理解している」の差じゃないかなあと感じました。 徳丸本などで実際に手を動かしていきたいっという感じですね。

徳丸先生は落ち着いた口調ながらもわかりやく丁寧に解説してくださっていて、かなり理解しやすかったです。

全体的な感想

PHPerKaigi 初参加で二日目本編しか参加していませんが、すごく楽しかったです。 特に全体を通して良いなあと思ったのが、老若男女問わずみんなでより良い場を作っていこう残していこう、という思いを強く感じられたことです。 運営のみなさん、おつかれさまでした!

次回のLT枠出来たら良いなあと密かに思いつつ、ひとまず新卒一年目を精進して参ります。

*1:就職に伴う引越しや卒業などでドタバタしていて、気づいたときには本編一日目夜でした。

*2:学会、研究会を除く

*3:https://www.php.net/manual/ja/

*4:https://www.php.net/manual/ja/functions.arguments.php#functions.arguments.type-declaration.strict

*5:https://bugs.php.net/how-to-report.php

*6:https://github.com/bmf-san/ahi-router/blob/master/src/Router.php

*7:今回作成したオレオレFWにはルーティング機能はないっぽいみたいですね

*8:PC のバッテリー的にも余裕はなかったです