これは2019年6月14日に開催したPHPerイベントYYPHP#88のイベントレポートです。
YYPHPは一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ毎週、高田馬場にて。
今回の配信動画
YYPHP#88 https://t.co/ZSyEyF0sJp
— suin❄️PHPでオブジェクト指向 (@suin) 2019年6月14日
過去回の配信動画
雑談
mpywさんのLT (10分弱)
Laravelがやってくれないこと
- Model上でバリデーションしたい
- 2段階バリデーション
- Valoquent
mpywさんのLTの動画はこちら: https://youtu.be/aMHiSL38XWI?t=1974
どんなバリデーションをどこでやる? (みっきー)
フロントエンドでのバリデーションとバックエンドでのバリデーションが2つあるが、
両方で同じバリデーションをかけるのか、バックエンドはそこでしかできないバリデーションをしたらいいのか?
- バリデーションの基軸としてあるべきはバックエンド(バックエンドのバリデーションは必須)
- 最小限のやつはフロントエンドでやることも
- 共通化したいが、PHPとJSだと言語が違うのでJSでもう一度書くことになる。
- ある程度、JSON Schemaで共通化することも可能
- UI/UXが大事な場合は、フロントエンドのバリデーションを手厚くする
- マイクロインタラクション
memoryさんのLT (5〜7分)
ハムスターを監視するシステムをラズパイとPHPのSwooleで作った話
- Swoole: 非同期処理を行うライブラリ
- ReactPHP みたいなの。違いはSwooleはCで実装されている
- スタック: raspi, PHP 7.3, Python, Swoole
- 3万7千円
- カメラモジュールが送信するデータはCかPythonでないと処理できない。
- go routineみたいな構文
memoryさんのLTの動画はこちら: https://youtu.be/aMHiSL38XWI?t=2918
エンジニアの転職活動ってどんなの? (たすく)
- どういう会社に入るか
- いますぐ活動開始するか
- 3ヶ月位鍛えてからにするか
- エンジニアに転職するに際してどんなキャリアを積んでおいたらいいか
- 32歳でエンジニアに転職する場合、どういう方面を攻めたら良いか
- まずは、コードを書ける職場に行きたい
- 深掘りするエンジニアになりたいと思っている
...
- 現場入っちゃったほうが自習するより学ぶ効率がいいかも
- 転職サイトで未経験可なところを手当たり次第応募した
- 独学でLaravelでアプリを作った。それを使って未経験応募可の転職活動で活かした。
- 何社か受けてみて、傾向が分かってきて、面談に何が準備したらいいかわかった
- 未経験は技術力はあんまり見られなかった
- どちらかというとやる気を聞かれた
- エンジニアが足りてない現場が存在して、そういうところだと入りやすい。
- 需要が高いところを狙うのもあり
- https://qrunch.io
業務で開発環境をもっと効率化するPhpStorm、Circle CIなどについて (てんこま)
- 開発環境周りの改善をしている
- Circle CI 1年前に導入した
- lint + test
php -l
- PHPStanを使って静的解析したい
- Circle CI: 5名
- GitLab CI: 2名
- Jenkins: 1名
- GitLab CIのKubernates連携が気になる
- コンテナのセキュリティスキャン(SAST)
- CIにかかる時間: 10分〜12分
- Docker Layer Cache: true に設定すると早くなるかも
- Docker for Macだったら、osxfsよりnfsの方が早い
- pcov (xdebugより50倍早い)
なぜphp-javaを作っているのか? (すいん)
php-java/php-java: ☕🐘 JVM emulator by PHP
- モチベーションは刺激
- 最初暇つぶしで始めた(2015)
- Hello Worldが動いたときに感動した
- 「なんでこれ作ってるの?」と聞かれて「わかんないっす」と答えた
- プロダクションで使われることは想定しておらず、刺激のために作っている
- PHPerKaigi 2019 - Speaker Deck
ローカルに実行環境がない (ぐーどら)
- EC2インスタンスにWinSCPでコードをアップロードして、動作確認している。なんでこうなっているかはわからない
- Vagrant、Dockerを使ってみたいと思っている。
- おすすめの開発環境と、チームでの共有方法。
・・・
- Subversion → Gitに移動した
- docker-compose.
- マイグレーションファイルをgitにコミットしてみんなと共有する
- phinx (PHP)
- flyway (Java)
テストコードがないプロジェクトにテストを導入するにはどうしたらいい? (ぐーどら)
- CodeCeptionを使っている
- 単体テストを書ける構造になってない
・・・
- 既存のコードをけずって、テストコードを書けるとこだけテストを書いてく
- 不具合駆動開発
- Run Kitを使う
- Selenium
AWSの構成改善したい (ぐーどら)
AWSを使っている。
EC2で全部やっている。
ロードバランサー(nginx)、MySQLをEC2に入れている
- before afeter
- Nginx → ALB
- MySQL → RDS(MySQL) もしくは RDS(Aurora MySQL)
- memcached → ElastiCache(memcache)
- SMTPサーバ → SES(Simple Email Service)
データベースの更新作業が課題になっている (ぐーどら)
- マイグレーション
- DBスキーマ管理ツール
PHPのストリームについて (かっきー)
file_get_contents('http://example.com');
- https://github.com/php/php-src/blob/master/ext/standard/file.c#L525
- blocking IOとnon-blocking IO
Laravelから一歩進んで気になっていることを話したい (まっぴー)
Laravelが好きで触っている。Go、Rust、Kubernetesなどについて。
YYPHPは毎週やってます
PHPについてワイワイ話したい方は、YYPHPのイベント情報をチェックしてみて下さい。
以上、YYPHPのレポートでした。次回もワイワイやっていきたいと思います! では、また来週!