採択
Lightning talk (3 mins)

レガシーシステムに自動テストを導入する第一歩

takaram71 荒巻拓哉

テスト駆動開発やビヘイビア駆動開発に代表されるように、PHPUnitなどのテスティングフレームワークを用いて開発時に自動テストを書くことは、今や当然のように行われています。
しかし一方で、長く開発が続けられてきたレガシーシステムにおいては、まだまだテストコードが書かれていないケースも珍しくないことでしょう。
そうしたシステムに一気にテストコードを書くことはできなくても、一部の機能から自動テストの導入を始めてみませんか?
このトークでは、13年続くレガシーシステムの改修案件で、PHPUnitを導入し既存ロジックをリファクタリングしながらテスト駆動で新機能を開発した事例をお話しします。

5
Lightning talk (3 mins)

急に「採用の面接出てもらえませんか」と言われたら

sobaimoo 山崎 一樹

昨今のエンジニアの採用活動においては、人事の採用担当者やエンジニアリングマネージャーだけでなく、現場で活躍するエンジニアのかたも採用活動に関わることが多いのではないでしょうか。
また、採用の精度を上げることが課題となっている会社組織も多いのではないでしょうか。

これから採用に関わるPHPerの方々に向けて、私の失敗を踏まえながら、面接において気をつけるポイントを紹介したいと思います。

8
採択
Lightning talk (3 mins)

PHPerのためのCVEデータベースの紹介

glassmonekey ナガノ

何とかペイとか何とか口座やらでセキュリティインシデントが改めて重要視される世の中になってきました。
そのための情報収集、アップデートを管理することはエンジニアにとって義務といっても過言ではないでしょう。

しかし、優先順位の問題で手をつけられてなかったり、工数の問題で本格的に着手できてないといったこともあるのではないでしょうか?
そこで今回は我々PHPerが普段使うcomposer.lockからセキュリティインシデントのうちCVEの識別子が付与されたものを見つけてくれるツール及びデータベースを紹介します。

8
Lightning talk (3 mins)

PHPUnit 9 時代のTest Doubleの作り方

hgsgtk 東口和暉

PHPUnit もバージョン 9 になりました。長年第一線で活躍し私達PHPerにテスト可能な開発環境を提供し続けてくれているPHPUnitは、その分歴史が長く、バージョンごとに これまでの使い方は deprecated になっていきます。

PHPUnit 9 では、さまざまな機能削除や非推奨勧告がありますが、その一つが表題にある MockBuilder::setMethods の deprecated です。

そこで改めてこの変更を機に、次の点をものの3分でお得に抑える時間を提供したく思います。

  • PHPUnitのTestDoubleの語彙整理の根拠 xUTP本とその該当箇所、createStub / createMockの違い
  • setMethodsからaddMethods/onlyMethodsになった使い方
  • deprecatedになった理由をissueの内容から抑えて背景思想を理解する
  • PHPUnit の内部実装ではどのような変更が行われたのか(これはPHPUnit 8でのaddMethods/onlyMethodsの話でもある)

LTっぽい内容凝縮トークになると思います。

17
採択
Lightning talk (3 mins)

PHPer のための Vim 実践入門

hamakou108 濱田 晃輔

Vim は他のエディタに代えられない素晴らしい開発体験を提供してくれます。
その一方 PhpStorm や VS Code のような IDE が持つ豊富な開発補助機能が Vanilla Vim には存在しないため、実用面では IDE の後塵を拝する状況となっています。

Vim か IDE のどちらかなんて選べない!
そんな私は Vim をいかに IDE の書き味に仕上げることができるか、その可能性を突き詰めてみました。
Neovim と各種 Vim Plugins 、 Language Server の PHP Intelephense を使ってファイラ、自動補完、スニペット、リンタなどの機能を実現する方法を紹介します。

7
採択
Lightning talk (3 mins)

めざせブレークポイントマスター

820zacky つざき

ブレークポイントを制するものがデバッグを制する。
PhpStormのブレークポイントを学び、ブレークポイントの真のチカラを解放しましょう。

PhpStormのブレークポイントには様々なオプションがあります。
「条件」、「ログ出力」、「次のブレークポイントに到達するまで無効にする」など、デバッグを便利にするオプションについて例を挙げながら解説します。

17
Lightning talk (3 mins)

やってはいけない!PHPあるある

canon1ky 村田主磨

便利メソッドが豊富で、高速に開発を行いたい時にももってこいなPHP!
しかし、アンチパターンを踏んでしまうとチームメンバーが入れ替わった際などの、技術的負債を大きく残してしまいます。

本LTでは、今までチーム開発を行う中で「ここ辛いよね」と話題に上がったパターンを、なぜ辛かったのかと共に紹介します。
また、それらの回避策も合わせてお話しします。

3
採択
Lightning talk (3 mins)

再コンパイル不要! core dump さえ吐ければ gdb デバッグできます

yamotuki 鈴木 智也

Laravel Artisan コマンドの突然の Segmentation fault。他に出力は無かった。

手がかりが無い中、core dump さえ吐ければセグフォ対応は出来るという情報だけを覚えていた。
core dump といえば gdb。gdb といえばバイナリの再コンパイル。茨の道に決まってる。
実際には再コンパイルしなくても 1. gdb コマンド、2. core dumpファイル、3. Segmentation fault を吐いたバイナリ、の三種のパーツが揃えばデバッグ可能であった。

PHPerとしてはややハードルの高いツールたちを使って問題解決にこぎつけた方法を共有します。

12
Lightning talk (3 mins)

PHP で電卓を作る

m3m0r7 めもり〜

プログラミング覚えたての時、電卓を作るといったことをした方や、今現在プログラミングを学習中で電卓を作っている方もいらっしゃるかと思います。
電卓を作るといえば「1+1」と入力したら単純に「2」が出力されるイメージでしょうか。作っているうちに、「あれ?「((1 + 2) × 3)-((1 + 2) × 3)」みたいな式はどうするんだ?」と疑問に思った方も少なくないと思います。そこで本トークでは3分間という短い時間で、複雑な式を計算できる、もう一段階上の電卓を作る方法についてお話します。

8