はじめに
php conference japan 2024 (通称:ぺちこん)に参加してきました。
他言語やフレームワークと比べてベテランエンジニアが多いためか、他のweb系セッションと比べても比較的落ち着いた雰囲気で実施されていました。
体調不良でやや出遅れてしまいましたが、何とか基調講演の途中から参加することができました。
魅力的なセッションがたくさんありましたが、自分が見たセッションの中で最も学びが多かったセッションを3つ紹介しようと思います。
ちなみに今回、Postmanのバブルヘッドを頂きました!
statudCode530は初めて見ました。ShopifyのCloudflare解決エラーとPantheon特有のエラーらしいです。
最近トレーナー(メンター)業務がなくなったので、しばらくはPostmanコーディングができそうです(笑)
セッション紹介
良いテストコードを書くためのガイドライン〜作成から運用まで〜 by rikuto
一番初めに聞いたセッションです。
発表者のrikutoさんが社内向けテストガイドラインを作成したときに意識したことや大変だったことなどについて話されていました。
最も面白かったのは、「テストガイドライン」ではなく「テストスタイルガイド」として公開していた点です。
テストスタイルガイドには「必ずしてほしい」「できればしてほしい」「できるとよくなる」といった重要度が振られていて、すべての項目を必須にはしなかったそうです。
また、各項目にはできる限り実装コードのサンプルを書いているらしく、非常にユーザーフレンドリーなガイドライン(スタイルガイド)に感じました。
ガイドラインは様々な参考書をもとに作ったそうですが、中でも「単体テストの考え方/使い方」を最も参考にしていたようです。
実装の詳細ではなく、ふるまいをテストすることが重要であり、テストガイドラインにもその考え方を取り入れたそうです。
実際にふるまいをテストするようなコードを書くと実装の詳細が隠蔽されるので、テストがしやすい以外にも様々な良い効果が出てきそうだと思いました。
プロダクトの寿命を延ばすためにエンジニアが考えるべきこと 〜バージョンアップってなんのためにやるのか〜 by 牧 良摩
カオナビの牧さんがシステムアップデートの重要性と実際にやってみて大変だったことについて話されていました。
バージョンアップはセキュリティリスクと開発効率の悪化を招くため、バージョンは会社のためでもあり、エンジニアのためでもあると話されていました。
また、カオナビでは開発とバージョンアップを並行して行ったため、バージョンアップが終わるまでは終始いたちごっこのような状態が続いていたようです。
他チームとの折衝や依頼が大変なことは自分も普段の業務で経験しているので、話を聞いていて少し胃が痛くなりました笑
テストコードを書いたり、余計なパッケージはインストールしなかったと基本は大切なことをあたらめて実感しました。増やすことより、減らすことのほうが大変なので、普段の業務で余計なものは極力入れていかないようにしたいです。
EC2からECSへ:念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築 by 江口 純矢
コドモンの江口さんが、LaravelのアプリケーションをEC2からECSに移行した際のお話です。
江口さんが「巨大システムの移行は総力戦」というお話をされていましたが、私もその通りだと思います。システムは大きくなれば大きくなるほど、依存システムも大きくなっていきまが、それ以上に関係者が増えていきます。そのため、ここでいう「総力戦」は「システムの開発を行っている人」だけではなく「システムを使ってい利益を上げている人、ひいてはシステムの利用者」も含まれているのだと思います。
移行の流れとしては以下のように行っていました。
- 開発環境のコンテナ化
- 開発環境をステージング環境で動作するようなコンテナイメージづくり
- ステージング環境と本番環境の環境差分を環境変数に切り出し
- ステージング環境での動作確認
- 本番環境へデプロイ、ロードバランシングの振り分けをEC2からECSに向けていく
しかも、これを2サービス行っているそうです。気が遠くなりますね。
このセッションに関しては、各移行フェーズでどんなことをしてどんな障壁にぶつかったか、そしてそれをどうやって乗り越えたのかが書かれており、今後の移行の参考にしようと思いました。
特にデプロイ周りはBlueGreenデプロイ周りの制約や加重ルーティングを活用したデプロイ方法などが書かれていたので、AWSを使っている環境ならどこでも利用できるナレッジでした。
本当に50分間移行のためにやったことを離されていたので、終始その熱量に圧巻されていました…。
まとめ
今回はぺちこんで聞いたセッションの中で、最も印象深かった3つのセッションについて紹介し増した。
ここで紹介していないセッションや私が見られていないセッションもあるので、気になる方はSpeacker DeckやYouTubeアーカイブを見てみてください!