こんにちは!ドイです。
10/8(日)、大田区産業プラザPiOで開催されたPHPカンファレンスに参加しました。
今回は、初のオフライン参加をした感想をまとめたいと思います。
PHPの今とこれから 2023
廣川類さんによるお話です。
例年通り、今後のPHPについてどう変化していくのかというお話でした。
初のオフライン参加だったので、PCの前で聞くのとは違う「PHPカンファレンスに来たのだ!」という実感を持てて嬉しかったです。
Laravelのコードとわたしたちのコードとの距離を保つ
大橋佑太さんによる発表です。
セッションの構成
- Laravelの概要
- Laravelの便利機能
- Laravelに依存しないために取り組んでいること
Laravelからの依存を避ける例として
app以下にあるLaravelに依存する機能を、lib以下で管理。メール機能など簡単なコードを元に説明してくださいました。
ディレクトリ構成の例
app/Http/Controllers => interfaceを呼ぶ
lib以下にinterfaceを配置
このディレクトリ構成に変えてからのメリットについてもお話を聞きましたが、
実際享受するメリットは、プロジェクトの大きさによっても違うのかなと思いました。
良いテストとは何か:持続可能で保守性の高いテストを書く
当田昇さんによる発表です。
セッションの構成
- なぜ良いテストが必要なのか
- 良いテストの指標
- 良いテストの書き方
お話を聞いて、テストを導入すべき箇所や、今まで弊社が抱えていた技術的負債を解決する上でテストを導入する必要性などを実感できました。 場合によっては、テストによる恩恵 < テスト導入にかかるコストになってしまうので、テストを導入するべき箇所の見極めが必要だと思いました。
ユニットテスト環境整備~みんながテストを書ける環境へ
堀川慶太さんによる発表です。
セッションの構成
- なぜテストを導入するのか
- テスト導入のためにしたこと
- 良かったこと
先ほどの「良いテストとは何か:持続可能で保守性の高いテストを書く」は、テスト導入後の話でしたが、こちらはテストの環境がほとんど整っていない状態から、導入するまでの0→1のお話でした。
弊社と状況が似ているので、同意と納得の意味を込めて、うんうん頷きながら聞いておりました。
案件の規模や、会社の規模によっては、テスト導入のコストが、テストによるメリットを上回らないこともあります。テスト導入のメリットを理解しつつも、案件を回すことに時間を取られ、テストを導入できずにいる状況に、とても共感しました。環境の整備の0→1はどうしても気合と根性になるので、テコ入れをしたのは素晴らしいなと思いました。弊社の今後進む道なので、参考になりましたし、このセッションを聞けて良かったなと思いました。
良いコードを書けるようになるコツは「エラーを気にする」 〜プログラマにとってエラーとは何なのか〜
きんじょうひできさんによる発表です。
セッションの構成
- エラーは怖くないよ
- PHPのエラーの種類
- よくなさそうなコードを避ける
- エラーのPRO
- PHPとエラーたち
「違う!エラーは敵じゃない、友達なんだ!!」と強くおっしゃっていたのが印象的でした。
エンジニアになりたての頃、エラーが出ると、内容を理解せずに狼狽えていましたが、その度に「エラー内容をググった?」と言われたものです。
もしかしたら、このセッションをエンジニアになりたての頃に聞けていたら、エラーともっと早く友達になれていたかもしれません。
安全にPHPでWebアプリ開発するために実践していること
篠田北斗さんによる発表です。
セッションの構成
- 年々型安全になりつつあるPHPの言語仕様
- テストをさらに堅牢するテスト戦略
- 静的解析で、テストされていない部分の不安を減らす
- MTTRで縮めるエラートラッキングツールの活用
- エラーの見落としを防ぐ週次エラー確認イベント
私がPHPの勉強を始めたのは4〜5年前で、その時は何もベースのない状態だったので「PHPはゆるい言語だ」と言われても理解できなかったことを覚えています。
今考えると、PHPの言語としての変化の過渡期をPHPerとして過ごしているのではないかと、ちょっと大袈裟に考えました。
セッション後に「問題解決の場を設けていると話したが、どうしても責任追求の場になる。対策はあるのか?」と質問されて、回答に詰まっていたのが面白かったです。
規模はどうあれ、抱える社内の問題は似ているのだなと思いました。
PhinxによるDBマイグレーションとサービス運用
ヒエイカザトさんによる発表です。
セッションの構成
- Phinxによる独立したマイグレーション管理
- 運用途中からのマイグレーション管理
- GitHub ActionsとECSを利用したRDS環境へのマイグレーション実行
- 実行テスト・ルール設定・テスト環境にマイグレーション利用など運用アレコレ
よく聞く、マイグレーション管理していない案件にどう対応するのかを聞けて面白かったです。
マイグレーション管理をすることによって、複数の開発者で開発しても同様のDB環境を用意できます。しかし、マイグレーションがなくCREATE文を共有して環境を構築している、マイグレーションはあるのにサーバー上でテーブルを書き換えてしまい開発者の中でも環境に差異が出るなど、噂では聞くけど耐えるしかない開発環境にどう対応するのか、環境整備が整っていない場合大変参考になるのではと思いました。
Twitter(現 Xですね)を追っていると、どうしても最新技術 = 正義になりがちですが、「ユニットテスト環境整備~みんながテストを書ける環境へ」やこちらの「PhinxによるDBマイグレーションとサービス運用」などでお話されていた、開発環境の整備は大切ですし、技術的負債を未来に残さないためにも取り組むべき課題なのですよね。継続可能な開発環境の整備に取り組んでいるエンジニアさんがいるのだなと思うと、嬉しいですし、私も頑張ろうという気になりました。
PHP略語クイズ!!
加納悠史さんによる発表です。 こちらはLTの中でも、特に気になったものです。
勢いがあってとっても面白かったです。 略語ってなかなか覚えられないんですよね。「[略語] 意味」で調べてもすぐに忘れてしまうのです。
ちゃんと略語の正式名称を調べようと思いました。
まとめ
こういったイベントに地方から参加する場合、移動に時間を取られますし、ちょっと気が重いのですよね。。
参加する前は「オンラインで後から見れば良いのでは?」と思いましたが、今回現地に出向いて参加できて本当によかったです。
次回はLTに参加してみたいなと思いました。良いお話ができるように、今後も成長していきます。
主催者の方や運営の方、セッション、LTで発表された方々、「参加すれば?」と背中を押してくれた弊社社長、本当にありがとうございました!