PHPerKaigi 2019 本編1日目

PHPerKaigi 2019 本編1日目

昨年に引き続き開催二年目になるPHPerKaigiに今年も参加してきました。
今年は3日間開催されたので、本編1日目、2日目と分けてレポートを書きます。
自分が拝聴した講義の感想とかつらつら書いていきます。

フレームワークを作りながらLaravelのアーキテクチャを学ぶ

speaker: Fendo181

フレームワークって便利ですが、どういう処理を行ってるのかある程度は理解しておくと良いと思っています。
まさにこの発表はそういう普段理解していなかったところを自作フレームワークを通して理解を深めるという良いセッションでした。
パーフェクトPHPから学んだと聞いたので、とても親近感がありました。私もFuelPHPが流行りだした頃に本書を購入してオレオレを書いたのち、FuelPHPの素晴らしさと洗礼さに感銘を受けました。
Laravelに用意されているサービスコンテナ(DIコンテナ)やファサードが如何にすごいものなのかの理解が深まる内容だったのではないかと思います。
ただし、ファサードは多用するとどこでクラスが呼ばれているか追いづらい、または簡単に呼べることで多くのクラスに依存してしまうなど弊害もあります。
合わせて、ファサードを使わないで実装するパターンも紹介してあげると良かったかなと思いました。(真理)
オレオレフレームワークを詳細に紹介してもらえたら個人的には嬉しかった。

抽象化ってなに?

speaker: 後藤 秀宣

抽象化とは、と問われたとき。真っ先にInterfaceやAbstractを思い浮かべてしまいましたが、あくまでもそれらはプログラミングにおける抽象化を手助けする仕組みであり、本質的に抽象化を捉えたものではない。
正しく抽象化を知るには、やはり現実世界における抽象化を理解することの大切さを知りました。
これはドメイン駆動設計におけるドメインモデルの見つけ方に似ているのかなと思いました。

ランチセッション: 「Take Off The Colored Glasses」

speaker: 株式会社オウケイウェイヴ

オウケイウェイヴ社における行動指針の解説でした。
個人的には最後に紹介されてたオウケイウェイヴ社での取り組みが気になりました。

オウケイウェイヴでは「ブルーマンデー症候群」を考慮して月曜は午後始業だそうです。私は毎日がブルーマンデー症候群なのでどうしたものか・・・

PHPの現場 公開収録

たった1人のAPI開発 BEAR.Sundayで解決した課題たち

speaker: gamu1012

現場で求められる要件から、BEAR.Sundayをフレームワークとして採用したというお話。
BEAR.Sundayは使ったことがなくRay.Aopには普段からお世話になっているので、こちらのフレームワークも触ってみようかなと思いました。
良さそう。
質疑応答で作者登場は思わず振り返りました。

RESTの力

speaker: koriym

BEAR.Sundayの作者として知られる郡山さんの壮大な三部作の最終章と言われるセッション。前のセッションから引き続きの流れは素晴らしいなーと思います。
そして、このセッションにおいては私自身の前提知識の足りなさを痛感。RESTと呼ばれるものが本当に実現したい世界は、私達が普段RESTfulAPIと呼んでいるものでは満たせていない。ハイパーメディアとしてナビゲート可能なものにするべきというのはHATEOSという考え方で弊社でも実践してます。
発表は引き込まれるような構成で、最後にはこのスライド自体がRESTの力を体現しているという内容で拍手が絶えませんでした。
素晴らしいセッションをありがとうございました。

Swooleでフレームワークを高速化 - もう動作が遅いなんて言わせない!

speaker: niisantokyo

最近話題のイベント駆動の非同期ネットワークエンジンのSwooleでLaravelを動かして検証してみたという内容でした。
結論としては実際に運用するには今までの使い方ではセキュリティ的には無理だということ。おそらく1リクエスト単位で処理を完結してくれる仕組みに乗っかる必要があるので専用フレームワークじゃないと厳しいのではないかなと思います。
PHP8でJITコンパイルが来たらまた検証が捗りそう。どこまでPHPは高速化できるんでしょうか。やっぱり面白い言語ですよね。

コンパイラ作りの魅力を語る

speaker: DQNEO

Go言語のコンパイラをGo言語で作ったという内容
はっきり申し上げて、全くわからない世界でした。。。
茶会ではDQNEOさんとお話する機会があったのですが、一体どこからこのモチベーションが生まれるのかとても不思議です。ツヨツヨエンジニアだ・・・!
さておき、御本人にも確認したのですがこのコンパイラはLinuxのIntelCPUでのコンパイルがターゲットになっているので他のCPUやOSでは動かないのだそうです。
本家のコンパイラではおそらく条件分岐によりコンパイルをターゲット毎に変わるようになってるのではないかとのことで、この手のクロスコンパイラってすごい大変なことをしてるんだなと驚かされました。

茶会

(写真撮るのわすれました)
いろんな方とお話できるいい機会でした。
アルコール?とかいう変わった成分の入ったお茶が振る舞われていました。
よく覚えてません。

3日目(本編2日目)も楽しみです。