去年に引き続き、PHPerKaigi 2020 に2/11に参加してきました。
この後くらいから例のコロナウイルスでいろいろな勉強会が中止になっていたので、今思うとギリギリでした。
簡単なまとめ
去年もノベルティはたくさんもらったのですが、今年面白かったのは↓のようなカードをもらったことです。
カードをもらえることは自体は知っていたのですが数枚程度と思ってたので、当日少し戸惑ってましたw
だいぶ交換させて頂いたのですがまだ半分以上はあるので、他の勉強会で自己紹介代わりに撒いていきたいなーと思っています。
カードって数枚って思ってたらデッキくらいもらってワロタ #phperkagi
— くろもか / kuromoka (@kuromoka16) 2020年2月11日
懇親会は相変わらず超豪華でした!
特にビールは普段ほとんど飲まないのですが、PHPerKaigiのビールはクオリティ高いので今年も何種類か頂きました。(余ったビールは持ち帰りできたので、家で開けようとしたら栓の開け方に苦戦…)
またさっきのカードのおかげで懇親会で話すきっかけを作れるという効果もあったので、その点でも良かったですね。
聞いたセッションのメモ
マスタデータの管理と運用について
https://www.slideshare.net/KentarouTakeda/ss-227566415
- マスターデータはフロントとバックエンドで使う
- DB管理は管理画面いる
- エンジニアでなくても更新できたり管理画面とかがいらないとかの条件を満たした管理方法
- Excel😂
- まあそうなるよね、って感じだった
- PHPだと「PhpSpreadsheet」というパッケージでExcelを扱える
- https://github.com/PHPOffice/PhpSpreadsheet
- 関数の計算結果とかセル色とかも取れるらしい(?)
- Excel→JSON→PHP化して、最後のPHP化したマスタデータをアプリケーションから使うらしい
- パフォーマンス
- OPcacheによって最初は重いが、次は早くなる
- PHP7.4のpreloadでキャッシュに乗せる
PHPerがこれから「型」とお付き合いしていくために
https://speakerdeck.com/penguin045/phpergakorekara-xing-toofu-kihe-isiteikutameni
- 前半は型付け言語そのものみたいな話
- PHPの型
- 弱い型付けの動的型付け言語
- 最近は型に関する改修多い
- 型宣言が性能を上げる
- PHP8のJITで型宣言の情報を使う
- タイプヒンティングをすると性能が悪いのは過去の話
- ケースごとの例
PHPでPHPを実装する 〜プログラミング言語実装入門〜
https://speakerdeck.com/tzmfreedom/phpdephpwoshi-zhuang-suru-puroguraminguyan-yu-shi-zhuang-ru-men
- ブログ blog.freedom-man.com
- ASTよく分からないけど、「PHP Parser」はなんか面白そうと思った
ぼっちからはじめるレガシーカルチャー改善ガイド 〜はじめの一歩編〜
https://speakerdeck.com/blue_goheimochi/phperkaigi2020
- 2013/5にオウケイウェイヴに入社。PHP4とPHP5が共存していた
- こういう話が出るたびに、闇深そうだけどPHP4のプロダクション環境を一度触ってみたいなーと思う!
- 去年Laravelにリプレースした
- はじめの一歩の期間
- 自己研鑽
- 本を読む
- ブロク記事を読む
- ギャップをしる
- アウトプットして知識として定着させる
- プロダクトに影響ないところからやっていく
- 信頼貯金
- 目の前にあるタスクをやりとげる
- プラスアルファとなる工夫を加える
- 目線や視座をあげる
- 1人目の改善仲間をみつける - なにか改善したいとおもったときに賛同者がいる状態
- 仲間を見つけられたきっかけ
- 自分の興味を伝えるコミュニケーションをする
- 自己研鑽
- そこから次の一歩
- 次のゴール
- 3人目の改善仲間をみつける
- ランチにさそう
- 勉強会に誘う
- 社内に向けたアウトプットをする
- 3人目の改善仲間をみつける
- 次のゴール
- レガシーな文化の改善には時間がかかる
- できることを積み上げる
- 同じ志の仲間を見つける
今だからこそ振り返る register_globals
https://speakerdeck.com/gongo/phperkaigi-2020
- register_globals
- https://www.php.net/manual/ja/ini.core.php#ini.register-globals
- PHP4.0 ~ 5.3に存在
- 5.2や5.3のアプリは触ったことあるけど、たぶん使われてなかった記憶…なのでregister_globals自体を正直知らんかった
- フォームのname属性がそのままグローバル変数になる(
$_GET
とかを経由しない) - 動的なwebページになれてないユーザにとってはよい
- 安全でないコードを書くのが容易
- 判定で使われている変数と同じキーを渡すとか
- register_globalsのアプリは残っている
- 生き残る方法
- register_globals依存をなくす
- なにもせずに、PHP5.3までのアップデートに留める
- register_globalsを再現するコードを書く
- これもこれでいろいろと考慮することがあり難しい
- 生き残る方法
- register_globalsを再現するコードを書くのは難しいので、ライブラリを作った
- https://github.com/gongo/merciful-polluter
- PHP7.2まで動作確認