phpcon2018に参加してきた

phpcon2018 に参加してきました。

PHP Conference 2018 - #phpcon2018

以下4セッションを拝聴させていただきました。

ランサーズのCakePHP1.3→Cake2.8移行

スライド: CakePHP1.3 → CakePHP 2.8バージョンアップ - Speaker Deck

PHPCakePHPのバージョンアップに、2,3名体制で、おおよそ2年かかったとのこと。

PHPよりも、フレームワークのバージョンアップのほうが辛そうな印象。

CakePHP1.3 => CakePHP2.8 を同居する(コントローラをindex.phpでスイッチする)作戦は、リソースが取れなくガッとバージョンアップできないかつ平行で開発が進んでいる場合でも、少しずつリリースできるので、よさそうと思った。

ユニットテストが入れられないレガシーなソースでCIが回せるようになった

スライド:

ユニットテストが入れられないレガシーなソースでCIが回せるようになった - Speaker Deck

codeception, Seleniumを使って、受け入れテスト(End-to-Endのテスト)をCIで回すようにしたお話。

Codeception はPHPのテストフレームワークとのことですが、知らなかったので今度調べてみよう。 https://codeception.com/

PHPを検査するPHPを書く

スライド:

PHPを検査するPHPを書く / Write PHP inspection by PHP - Speaker Deck

Linterが内部でどのようにソースコード解析を行っているのか、仕組みの発表だった。 GitHubのコードレビューを自動化できるサービスを作られている Siderさんのお話。

phpは触り始めたのが、最近なのですが、 こういう観点からも学んでいけると良さそうと思った。

PHPバージョンアップと決済テストを支えたユニットテスト

スライド:

PHPバージョンアップと決済リプレイスを支えたユニットテスト #phpcon - Speaker Deck

レガシーコードの改善に積極的に取り組まれているBASEさん レガシーコードの課題としてよくあるのが、 ユニットテストを導入したいがそもそも、そういう構造になっていない。 ということ。 それをどう乗り越えてきたかがわかる発表だった。 ユニットテストがないロールにガッと導入するようなタイミングがあれば、このスライドを改めて見直すようにしよう。

まとめ

PHPカンファレンスは実はSIer時代に一度来ていて、今回2回目なのですが、前回よりも現場の苦労やつらみ(しかし楽しいみたいな)が気持ちがわかる分、色々なことが身に沁みた一日だった。