なずなログ

ただのSIer系SEが思ったことや色々書く感じのアレです

#PHPerKaigi 2020参加レポ day1

PHPerKaigi2020 day1(本編1日目)に参戦してきました。

phperkaigi?

PHPerによるPHPerのためのお祭りです。
PHPerKaigi 2020

聞いたトーク

  • E2Eテストに向き合う
    • 自動化されたE2Eテストはテスティングピラミッドの頂点ではない
    • E2Eテストはなんで失敗したのかわかりにくいから失敗すると原因を突き止めるに時間がかかる
    • E2Eはコストが高いので最小限に抑えた方が良い
    • パフォーマンスの観点を忘れずに
    • ブラウザ自動化ソリューション Puppeteer
      • 便利
      • 軽い
      • ブラウザ側に判定ロジックを持っているので壊れづらい
  • PHPとEventSauceで始めるイベントソーシングアプリケーション
    • イベントとイベントリスナ=〇〇したときxxするという要件を実現するためのパターン
    • イベントを利用すると直接の依存が排除できるので、処理を追加・変更しやすくなったり非同期にできるが、複雑さとトレードオフ
    • 状態は履歴の積分、履歴は状態の微分のようなもの。すべての履歴を残しておけば再計算して最新の状態を得ることができる
    • null許容やミュータブルなカラムを減らすとイベントのようになることが多い
  • エキサイトの大改造を大解剖!
    • エンジニアが働きやすくなるように制度を改革した
    • 給与テーブルを変更して「ここまでしか上がらないのか」と思わせないようにしてモチベーションが下がらないようにした
    • 週3で働ける正社員「サンシャイン制度」などを検討中
    • 働きやすい環境を整えてから採用にアクセルを踏むようにしたいと考えている
  • AWS Lambda にCustom RuntimeでPHPを導入したシステムに改修を加えてUT導入まで行った話
    • 紹介するプロダクトがペンディングになった
    • アーキテクチャへの理解が不足した状態だったため中途半端な実装になった
    • 最上位層で処理が行われ可読性が低下していた
    • 様々な提案をしてみたものの「予算がないから」と却下された
    • モンキーテストみたいなものしかなくテストのコストが高い
    • DockerでLambdaもどきを作ってPHPUnitを使える環境を作った
    • DockerでLambdaもどきを作ってPHPUnitを使えるように
  • カンファレンス初心者が全国行脚を始め、登壇するまで
    • カンファレンス行ってみたら楽しかった
    • スタッフやるのも楽しい
    • 遠征するのも楽しい
    • 懇親会ぼっちはあるあるだから気にしない
  • Laravelから始めるテスト駆動開発
    • 機能追加でテストケースが増加
    • バグで霊圧が消えた
    • かけないところはE2Eテストでカバー
    • 小さく始めていく
  • 「明日からフロントもよろしく!」 と言われたとき備える Atom Design でのフロントエンド設計
    • Atomic Designでコンポーネントの責務を分ける
    • UIはパーツの集合体
    • 開発保守がやりやすい
    • テストが書きやすい
    • 分離の基準を決めるのは原著にはあまり書かれていないので自分自身で

PHPerチャレンジ

PHPerたちの戦い PHPerチャレンジ
本日の戦績は42,050pt, 現在2位。
トップのちゃちいさんと差が中々埋められない….。成瀬さんの攻略法を参考にがんばります

ルーキーズLT登壇しました。

めちゃくちゃ緊張しました。
[PHPerKaigi2020]Laravelで家電を操作してみよう

何人かにお声かけていただいて、おもしろかったと言っていただけてうれしいです。
そのうちobnizネタでQiitaかブログでも書こうかな…。

明日もがんばりましょう!