PHPerKaigi 2020 day2 に参加したら PHPerチャレンジで2位になれました

はじめに

PHPerKaigi 2020 2日目です。

ohshige.hatenablog.com
ohshige.hatenablog.com

午前の部

ジェネレータで無限を手玉に取る術

ジェネレータで無限を手玉に取る術 by うさみけんた | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

マスターデータの管理運用と実装について

マスターデータの管理運用と実装について by 武田 憲太郎 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

データベース管理+管理画面
管理画面には工数がかかる

データのためのテスト

変更要件、本当に必要なのか? アンチパターン「触ってはいけない管理画面」

PHPerがこれから「型」とお付き合いしていくために

PHPerがこれから「型」とお付き合いしていくために by やなせ たかし | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

エラー検知(裏の顔)
柔軟性をもたせるには工夫が必要
絶対に守らないといけない

自身が抽象化した操作を保護できる
安全の定義は色々あるが...

「安全性と実行時の効率」と「柔軟性」のトレードオフ

アノテーションのモチベーション
静的型付け 自明なものを書かないでいいようにしていきたい
動的型付け 安全のために型を書きたい

型推論 コンパイル時点で型が決まる
動的型付け 実行時に型検査する

優劣はない!

型宣言が性能をあげる
開発効率があがる

レガシーならPHPDoc+PhpStormで良いかも
新規ならどんどん使おう
既存+型宣言のある新しいライブラリならDTOなどで使用する前に型を揃えていく

ランチセッション

クリーンな実装を目指して

クリーンな実装を目指して by Hamee株式会社 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

午後の部

PHPPHPを実装する 〜プログラミング言語実装入門〜

PHPでPHPを実装する 〜プログラミング言語実装入門〜 by ふりーだむ | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

ASTを実行 ←これをやる
バイトコードに変換、実行
機械語に変換、実行

AST = 抽象構文木

PHP Parser https://github.com/nikic/PHP-Parser

PHPHP

継承やアクセサの実装はめちゃ大変

実行せずにバリデーションだけしたのが静的解析

PHPを超えるPHPを作れる!?

ぼっちからはじめるレガシーカルチャー改善ガイド 〜はじめの一歩編〜

ぼっちからはじめるレガシーカルチャー改善ガイド 〜はじめの一歩編〜 by 大橋 佑太 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

はじめの一歩
自己研鑽 世の中と自分の間にあるギャップを知る
信頼貯金 愚直に目の前のタスクをやってそこに自分の色をいれる

はじめの一歩のゴール
1人目の改善仲間を見つけること
見つけられたきっかけは興味を伝えるコミュニケーション

docker化や便利ツールを作ってみるとか輪読会とか

仲間が増えると自発的に改善していく気持ちになれる

勉強会いっていない人はアンテナの感度が違ったりして理解はできるけど納得できないということがある
この人が言ってるから大丈夫となるまで信頼を貯める

ドアなのか壁なのか、壁ならさっさと離れる

1人しかいない→本当に1人?

Webアクセシビリティを支えるための技術

Webアクセシビリティを支えるための技術 by 有木 詩織 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

誰でも隔たり無く、平等に使えること

UXピラミッド

web content accessibility guideline

ハイパーメディア+インターネット=WWW

サーバーサイドとしてWebアクセシビリティを自分ごと化する

HTTPメソッドを適切に
HTTPステータスコードを適切に
アクセス速度、キャッシュ、タイムアウト
マスター定義、alt管理、フロントで扱いにくいデータを持たない管理とか

LT

PHPでもVTuberになりたい!

PHPでもVTuberになりたい! by ひかる | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

同僚のえんどう君が作った

faceosc
php-osc

PHPでleetCodeのeasyレベル100問ノック

PHPでleetCodeのeasyレベル100問ノック by yamotuki | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

読み書きが楽に
他の言語も触れる
テストファーストが身につく
なんとなくの速度感覚がつく

PHP未経験者を育てる独自フレームワークの作り方

PHP未経験者を育てる独自フレームワークの作り方 by カンボ@沖縄 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

生のPHPで独自フレームワークでブログ制作
ルーティング、モデル、MVC

フレームワークに依存しないでPHPを深く理解するために独自フレームワークをつくる

RFCの歩き方

RFCの歩き方 by 加納悠史 | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

RFC = request for comment

前書きが大事

PHPerKaigi2019への参加がきっかけで社内勉強会の主催するようになった話

PHPerKaigi2019への参加がきっかけで社内勉強会の主催するようになった話 by MasaKu | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

PHPerKaigiで公開されているYouTubeの上映会

いろんな視点の理解が得られる
関連領域の知見が得られる
モチベーションの維持

PHPデザインパターンを学ぶ会

集客も立派なテクニック

PHPとRustを組み合わせて音声ファイルをエンコードする話

PHPとRustを組み合わせて音声ファイルをエンコードする話 by meteor | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

FFI PHP以外で実装されたコードを呼び出す

php-mp3-encoder

ffi.enable=preloadがデフォルト

計算量の多いアルゴリズムFFIで読み込めるといいかもしれない

自分の名前を"ちゃんと"入力したい人生だった

自分の名前を"ちゃんと"入力したい人生だった by hamaco | トーク | PHPerKaigi 2020 #phperkaigi - fortee.jp

異体字 同じ意味で字形が違うもの

shift_jisの時代からutf8の時代へ
絵文字の「絵文字+スキントーン」を使って異体字を表現

PHPerチャレンジ

2位になることができました!
ありがとうございました!

趣旨を間違っているんじゃないかと思いながらも、上位者との交流にもなるので頑張りました。

ただ、1位の @chatii0079 さんが強すぎました。
去年のように1位とそれ以下の接戦になって面白いゲームになっていれば良かったのですが、強すぎましたね。

ちなみに、こんな感じでした。
f:id:ohshige:20200212142913p:plain

公式アイテムの残り5.2%...
コードゴルフも途中で探すのをやめてしまっていたので悔しいです...

でも、来年は頑張りたくない!

怖い

おわりに

全体的にとても楽しい会でした!
セッションはもちろんアンカンファレンスでのLTや色々な方との交流、そしてPHPerチャレンジ。

来年開催されればまた参加したいです。

スタッフの皆さん、ありがとうございました!