PHPerKaigi 2020 day1 に参加しました

はじめに

前回の続きです ohshige.hatenablog.com

自分用のメモです。
ちょっとずつ追記されると思います。

午前の部

CakePHPの進化から読み解く、PHPフレームワークの"今"っぽさ

CakePHPの進化から読み解く、PHPフレームワークの"今"っぽさ by きんじょうひでき | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

今っぽさとは何か
レガシーコードについては色々言われているが、コードの寿命の観点が共通していそう
レガシー今っぽさとは方向性が逆
モダン=メンテがされている
新しい技術を使っていればモダンなのか?
ただ、メンテがしやすくなったりシュッとしたりするので新しい技術はモダンに寄与する
「今の時代に即して」「良い方向へ」と変化をし続けている

1つのフレームワークで全てうまくやりたい時代?
namespaceやcomposerでモジュールをうまく扱いたい時代?
型宣言や静的解析ツールでPHPでも固くやりたい時代?

進化を止めないための仕掛け方

PHPとEventSauceで始めるイベントソーシングアプリケーション

PHPとEventSauceで始めるイベントソーシングアプリケーション by 中榮健二 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

疎結合になるがシステム全体で複雑になる

イベントが起こるたびに時系列順にインサートしていく
履歴=イベント
すべての履歴を残しておけば、そこから再計算して最新の状態をとれる
null許容orミュータブルカラム
バトルテーブル(終了後にカラム更新)→バトル開始+バトル終了

開発者のマインドセットを変えていく必要がある

CQRSはオブジェクトレベルで分離→コマンド側をイベントソーシングにすることと相性が良い
イベントのリプレイのパフォーマンス劣化をCQRSでカバーできる

https://eventsauce.io/

ランチセッション

エキサイトの大改造を大改造!

エキサイトの大改造を大解剖! by 齋藤 匠 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

サンシャイン!

午後の部

レンサバけもの道

レンサバけもの道 by uzulla | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

レンサバでもsshできる
rootがなくても$HOMEにいれてしまえばいい
レンサバで開発してはいけない
レンサバは特別だと考えない

磯野ー、MySQLのロック競合を表示しようぜー

磯野ー、MySQLのロック競合を表示しようぜー by yoku0825 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

サーバーコアで実装されているロック
ストレージエンジンで実装されているロック

使われるインデックスによってロックの範囲は変わる

mysql 8.0 performance_schema.data_locks

(難しい内容だった)

もっと気軽にOSSにPRを出そう!

もっと気軽にOSSにPRを出そう! by DQNEO(ドキュネオ) | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

作者の関心ゾーンの外側を見る
メインコードの設計、実装、可読性の外側
PR説明欄を丁寧に書く 否定から入らない

業務で得たノウハウを横展開
バージョンアップとか一度業務でやるとそれ以降は使わないがPRで役立つ

使ってなくてもコントリビュート
読むだけ、PhpStormだけで見つかる

ダメ元でも送ってみる
難しい単語を簡単な単語に修正するPRをNG覚悟で出したら、もっと簡単な単語への修正を提示されてマージされた

まずはPRを出してみる

PHPerkaigiで登壇すると夢がかなう!

ぼくのかんがえたさいつよQueryBuilder

ぼくのかんがえたさいつよQueryBuilder by 若葉 章 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

クエリの捉え方をオブジェクトにしてみた
誰が何を持っているかをしっかり考える 委譲

知らないWebアプリケーションの開発に途中からJOINしたとき、どこから切り込むか?

知らないWebアプリケーションの開発に途中からJOINしたとき、どこから切り込むか? by 小山健一郎 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

ゼロから開発するときは、サービス→アーキテクチャ→データストア→開発環境・本番環境→どのようなコードか→開発
技術スタックがわかっても抜けがあるので途中JOINだと手が進まない理由

開発開始までのオーバーヘッド

JOINするメンバーが工夫して削減するパターン
サービスとして事前に削減しておくパターン

スコープを絞る
専用slackチャンネルを作る「私が通る道はきっと次の人も通る」
閉じた開発環境を手に入れる

https://stns.jp/ https://github.com/k1LoW/tbls

ルーキーズLT

カンファレンス初心者が全国行脚を始め、登壇するまで

カンファレンス初心者が全国行脚を始め、登壇するまで by くろ/gattoman | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

Laravelから始めるテスト駆動開発

Laravelから始めるテスト駆動開発 by Tsukahara | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

「明日からフロントもよろしく!」 と言われたとき備える Atom Design でのフロントエンド設計

「明日からフロントもよろしく!」 と言われたとき備える Atom Design でのフロントエンド設計 by 秋葉 誠一 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

Laravelで家電を操作してみよう

Laravelで家電を操作してみよう by なずな | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

PHPer茶会セッション

PHPerチャレンジ2019◯◯◯が贈る PHPerチャレンジ◯◯◯

おわりに

今年もとてもおもしろかったです! 明日も楽しみます。

ちなみに、ボドゲになりました!(カード) f:id:ohshige:20200210212845j:plain:w500