いやー書くのが遅れちゃいますね!!6月29日に開催されたPHPカンファレンス福岡に参加しておりましたので遅ればせながらブログに書いていこうと思います。
はじめての遠征
都内の勉強会とかカンファレンスはそこそこ行っていたのですが遠征はしたことが無く、「はじめての遠征」という格好でした。
実は独りで遠出すること自体初めてだったりするので割と緊張気味でしたね…LCCも初めてだったし。
旅程
金曜日の午後から東京駅から空港バスに乗って夕方の便で福岡に向かいました。 さっくりホテルにチェックインも出来たし
土曜日のカンファレンス本番もちゃんと朝から参加も出来ました!
日曜は天気の心配もありつつちょっとした遅延で帰れたのではじめての遠征としては良かったなという感じですね。
カンファレンスのながれとか
実際のカンファレンスは2つの会場で並行して行われるので幾つか発表を選んで聞いてました。 聞いた中ですごく印象的だった発表の感想を書いてみようと思います。
PHP型検査・夢と理想と現実
Pixivの方の発表、普段からGo言語を使っていて画像を扱う時はPixivさんのテックブログを読んだりもするのでいつもお世話になっていますという感じです。
PHP7からそこそこの型安全なコーディングが出来るようになった。( 参考) そんなPHP7の型解析について万能では無いよっていう話がメインでした。今まで動的な型付けだったのでAliasに対応していなかったりPHPDocに書かれるようなマジックメソッドやユニオン型なんかは種類や記述がまちまち過ぎてなかなか検査出来ないようです。
またPSR-5には型の記述方法のルールもあるようなのでそれを参考にしながらPHPStanやPhanで解析してみるのも良さそうですね。
ただやはり一番重要なのは大本の実装を適切な実装に寄せて行くのが一番近道かもなぁという感じです。
少し駆け足だったのでもうちょっとじっくりお聞きしたいなぁという感じでした。
3ヶ月で20万行を消すためにやったこと
スライド:https://speakerdeck.com/naopr/3keyue-de20mo-xing-woxiao-sutameniyatutakoto
メルカリ社の方の発表。 mercari.go 、いつも楽しんでみております。 存在するものを削除するってすごく難易度の高い行為を有志でやれるって環境は素直に憧れます。
運用業務やってると削除することへの抵抗がすごく高くなるの、分かってくれる人いるのかなぁw
しかし349個のAPIを三ヶ月で消すというのはホントすごいよねっていう。
メルカリ社さんと同じように現職でもPHPとGo言語を使っているので見習いたいなぁという気持ちでいっぱいです。
エンジニア同士実力が高くて雰囲気がいいんだろうなぁというのがスライドなどを見ていると感じるところではあります。
あとすごくスライドが見やすくて時間の使い方も良かったなぁという感じ。すごく練習されたんじゃないですか。
PHPでURLルーティングを自作する
スライド:https://speakerdeck.com/bmf_san/phpdeurlruteinguwozi-zuo-suru
ルーティングを自作された話。 Go言語とかのWebルーティンみたいなあんな感じのものを想像している感じでしょうか…
r.Get("path/to/get/content", contentHandler)
↑こんな感じの
Goでは馴染み深い記法ですがPHPに置き換えるとなるとやっぱり…というかルーティングを作ること自体すごく難しいよなと思うので
(むかーし自作WaFを作ろうとして挫折した苦い記憶を遡及しつつ)
実際のソースを見てみると1ファイルでメインで利用される関数が2つだけというすごくシンプルな構成で驚きました(多機能にしないとは言えここまでスッキリしてるのは素直にすごいなと。)
内部でWhileとForeachを使って頑張って木構造を解読してるなぁというのが垣間見えててとっても「形態素解析っぽいなぁ(^ q ^」とか思いながら説明を聞いていたのを覚えています。
内容もちゃんとシンプルに紹介されていてうまくまとまっているなぁと聞いていました。
PHPStanでCustomRuleを作る
スライド:https://speakerdeck.com/nazonohito51/make-phpstan-customrule-d596e237-6692-4e6b-b83b-f5fac3618797
PHPStanってあまり触れる事が無くて(基本そういうことをやる立場だったり推進だったりすることがなかった)、 あんまり知らなかったのですがかなり深くまで静的解析をしてくるんですね。
その上でカスタムルールをかなりしっかり作れるとのことで仕組みの解説がメインでした。
絶対30分じゃ終わらないだろうってくらいに詳しい解説を沢山見れました。 PHPStormの静的解析よりも詳しいし単体で動作するのでCIに組み込んでテストしやすい環境作ったりとなるほど使えるやつじゃんみたいに聞いてました。
何よりphpdoc tagを元に検査が出来るというのがまた面白いなぁと。
詳細についてはスライドに譲りましたがもっと字句解析系の詳細は勉強していかないとなと気づきを得られたものでした。
終えてみて
もう1ヶ月も前の話なんで今さら終えてみてどうよって話をすべきではないかもですが、 コードへの立ち向かい方について少し考える事が多かった日でした。日々プロダクトの成長の為に働いていますがプロダクトだけでなく プロダクトの中身、コードの健全性ももっと考えていかなくてはなと。当たり前の話ではあるんですが忙しさにかまけて疎かになりがちな部分ではありますし 自動化してみたり少し気にしてみたりとやれることは普段からあるはずだよねーという感じです。
(なんの因果か、この後に古くなって健全ではなくなってきたコードを直すタスクを割とやっているので今では毎日考えているテーマでもあります)
とまぁ、色々ありましたがやっぱり福岡飯がうまい。刺身醤油が甘いのは未だになれないけど(2回目)、らーめんもうまけりゃ海鮮物もうまい。 次回は食べるのをメインに来てもいいかもしれないですね。
今年どれだけ遠征出来るかはまだ分からないですが出来るだけまわりたいなと思います。