くろもワークス

しがないWebエンジニアの日記です。

PHPerKaigi 2020の参加メモ #phperkaigi

去年に引き続き、PHPerKaigi 2020 に2/11に参加してきました。
この後くらいから例のコロナウイルスでいろいろな勉強会が中止になっていたので、今思うとギリギリでした。 f:id:kuromoka16:20200227045606j:plain

簡単なまとめ

去年もノベルティはたくさんもらったのですが、今年面白かったのは↓のようなカードをもらったことです。 f:id:kuromoka16:20200227050503j:plain

カードをもらえることは自体は知っていたのですが数枚程度と思ってたので、当日少し戸惑ってましたw
だいぶ交換させて頂いたのですがまだ半分以上はあるので、他の勉強会で自己紹介代わりに撒いていきたいなーと思っています。

懇親会は相変わらず超豪華でした!
特にビールは普段ほとんど飲まないのですが、PHPerKaigiのビールはクオリティ高いので今年も何種類か頂きました。(余ったビールは持ち帰りできたので、家で開けようとしたら栓の開け方に苦戦…) f:id:kuromoka16:20200227051400j:plain

またさっきのカードのおかげで懇親会で話すきっかけを作れるという効果もあったので、その点でも良かったですね。

聞いたセッションのメモ

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

https://www.slideshare.net/KentarouTakeda/ss-227566415

  • マスターデータはフロントとバックエンドで使う
  • DB管理は管理画面いる
  • エンジニアでなくても更新できたり管理画面とかがいらないとかの条件を満たした管理方法
    • Excel😂
    • まあそうなるよね、って感じだった
  • PHPだと「PhpSpreadsheet」というパッケージでExcelを扱える
  • ExcelJSONPHP化して、最後のPHP化したマスタデータをアプリケーションから使うらしい
    • JSONだとパースがいるので少し遅い
    • PHP化することでテストコードが書けるので、無効なデータは弾く
    • マスタデータのPHPをautoloadにして、どこからも使えるようにする
  • パフォーマンス
    • OPcacheによって最初は重いが、次は早くなる
    • PHP7.4のpreloadでキャッシュに乗せる

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

https://speakerdeck.com/penguin045/phpergakorekara-xing-toofu-kihe-isiteikutameni

  • 前半は型付け言語そのものみたいな話
  • PHPの型
    • 弱い型付けの動的型付け言語
    • 最近は型に関する改修多い
  • 型宣言が性能を上げる
    • PHP8のJITで型宣言の情報を使う
    • タイプヒンティングをすると性能が悪いのは過去の話
  • ケースごとの例
    • ケース1
      • 既存システムの開発者
      • 動的型付け言語として開発されていた
      • レガシーシステムかもしれない
      • 開発環境はPHPStorm
      • 既存システムに型宣言を書くのは難しいので、PHPDocを書いてIDE側の恩恵を受けれるようにしていく
    • ケース2
    • ケース3
    • 既存システム
    • 型は意識していない
    • 型宣言されたライブラリを使うことになった
    • ケースバイケース

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

https://speakerdeck.com/tzmfreedom/phpdephpwoshi-zhuang-suru-puroguraminguyan-yu-shi-zhuang-ru-men

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

https://speakerdeck.com/blue_goheimochi/phperkaigi2020

  • 2013/5にオウケイウェイヴに入社。PHP4とPHP5が共存していた
    • こういう話が出るたびに、闇深そうだけどPHP4のプロダクション環境を一度触ってみたいなーと思う!
  • 去年Laravelにリプレースした
  • はじめの一歩の期間
    • 自己研鑽
      • 本を読む
      • ブロク記事を読む
      • ギャップをしる
      • アウトプットして知識として定着させる
        • プロダクトに影響ないところからやっていく
    • 信頼貯金
      • 目の前にあるタスクをやりとげる
      • プラスアルファとなる工夫を加える
      • 目線や視座をあげる
    • 1人目の改善仲間をみつける - なにか改善したいとおもったときに賛同者がいる状態
    • 仲間を見つけられたきっかけ
      • 自分の興味を伝えるコミュニケーションをする
  • そこから次の一歩
    • 次のゴール
      • 3人目の改善仲間をみつける
        • ランチにさそう
        • 勉強会に誘う
        • 社内に向けたアウトプットをする
  • レガシーな文化の改善には時間がかかる
    • できることを積み上げる
    • 同じ志の仲間を見つける

今だからこそ振り返る register_globals

https://speakerdeck.com/gongo/phperkaigi-2020

GitHub Actionsで始めるPHPアプリケーションのCI実践入門

https://speakerdeck.com/fortkle/ga-phperkaigi2020

  • Github Actions
    • 設定ファイルはyaml
      • CircleCIとパット見、かなり似てそう
    • publicリポジトリは無料
    • Github上のあらゆるイベントをトリガーにできる
  • ワークフロー
    • runs-onでubuntuとか指定できる
    • runでコマンドの実行
  • アクション
  • 現実的な使い方できる
  • 各種ツール
    • PHPUnit, phpstan, phpcs
    • composer installしてコマンド実行
  • Github ActionsでPHPアプリをCIするのは、十分現実的な選択肢になっている