Regular Session (25mins)
Hardware FFI

PHP で NFC リーダーを実装する

m3m0r7 めもり〜

Suica や PASMO をデバイスにタッチして値を取得する、そんな夢を PHP で叶えたいと思っていた PHPer も多いかと思います。
PHP7.4 から PHP FFI と呼ばれるものが導入され、その夢も今まで以上に叶えやすくなりました。Suica や PASMO は FeliCa と呼ばれる NFC の規格の 1 つです。実装方法は多岐に渡りますが、概ね libnfc と呼ばれるライブラリや libusb を使う方法などがあります。しかし、今までの PHP ではこのライブラリを呼び出すことさえ叶いませんでした。そこで、本セッションでは PHP7.4 から導入された PHP FFI を用いてどのように PHP で NFC リーダーを実装するのか、そして実際のデモを交えてトークできればと思います。

1
Regular Session (25mins)
PHP

PHP と QEMU を用いて OS を作って Hello World を出力するまで

m3m0r7 めもり〜

「PHP で OS 作れたりしないかな」と考えている方もいらっしゃるかと思います。
実は JavaScript であれば JSLinux という JavaScript で Linux を動かしているようなサービスもあります。
ただ、実態はどのように動いているのか、OS ってどのように実装すればいいかわからないと感じている方も多いかと思います。
そこで、本トークでは 「ゼロからの OS 自作入門」という書籍を元に、PHP と QEMU を用いて Hello World を出力する OS を実装する方法をトークします。

6
Regular Session (25mins)
Asynchronous

Fibers vs Swoole

m3m0r7 めもり〜

PHP 8.1 から Fibers が導入されました。それ以前の非同期処理といえば、Swoole などが筆頭になっていました。
非同期処理ライブラリが PHP にビルトインされるのは PHP に革命をもたらしたと言っても過言ではありません。
しかし、Fibers ではできないこと、Swoole でできることなど、実際には分かれています。
そこで、Fibers と Swoole の違いはなにか、それぞれの使い方を広く浅く本トークで解説します。

10
Regular Session (25mins)
PHP FFI

PHP FFI 入門

m3m0r7 めもり〜

PHP に FFI が導入されてから、どういう用途で使えばよいか悩んでいる PHPer も多いかと思います。
PHP FFI を介したモジュールの呼び出し方から、自作 の C/C++ のモジュールの作成から呼び出し方、
そして libusb と呼ばれるモジュールで USB で接続された機器の一覧を取得する方法など、どのように FFI を活用していけばよいのかを本トークで解説します。

7
Regular Session (25mins)
Laravel

Laravel のキュー処理を 4 倍早くするテクニック

m3m0r7 めもり〜

重たい処理をキューに任せることで、早めにレスポンスを返すことが可能です。しかし、Laravel 標準のキューサーバーの処理速度にはある一定の限界があります。
弊社では、1 回あたり数十秒かかるような処理をキューに任せているのですが、キューが積まれすぎて処理しきれず破棄されるといった事象が起こっていました。
Laravel には Laravel Horizon と呼ばれる並行並列でキューを処理ができるライブラリがあるのですが Redis のみのサポートで、弊社では Amazon SQS を使用しているため、導入には至りませんでした。そこで、Amazon SQS 向けに Laravel のキューサーバーを自前で実装し直し、処理速度を 4 倍に向上させました。
どのように処理速度を高めるのか、そのテクニックのご紹介と実際のプロダクションへの投入、得られたパフォーマンスなどを本トークでお話します。

11
採択
2022/09/25 14:40〜
Track3
Long Session (60mins)
Team & Communication Troubleshooting

エラーと向き合い、自信を持ってサービス開発に取り組み、前に進む

o0h_ きんじょうひでき

アプリケーション開発をしていると、どうしても不具合は生まれます。
バグ、障害、故障、エラー…近接する概念が色々とありますが、その中でも「プログラムetcの修正で修復できるもの・根治できるもの」が確かに存在します。

実際の所、皆さんのサービスで、それらはどのくらい発生しているでしょうか?その内、直せるはずの「バグ」「欠陥」はどのくらいあるでしょうか?
パッと答えが浮かばない、という方も多いと思います。
どうやってこの状況を脱していきますか。

とにもかくにも、「可視化」「現実的な目標」「コントロール可能な状況を作る」「割れ窓状態を脱する」のが重要だと思います。
そして、それに勝るとも劣らず「なぜ、エラーを少ない状態を実現したいのか。そこにどんな価値があるのか」という認識の統一も欠かせません。
チーム全体を方向づけ、小さな実践を押し進めながら「それらは夢物語なんかじゃない」と勇気づけるような成果を上げていきましょう。

本セッションでは、まずは「エラーやバグがもたらす不経済」について説明します。併せて「なぜ、検知と修復を急ぎたいのか」「遅れが何をもたらすか」も扱います。
その後に、自身の体験も踏まえながら「どうやって・何を努力していき、チーム一丸となって”エラーを減らす”を実現していくか」について共有します。

想定するオーディエンス

  • 「エラーを減らしたいな」「バグを減らしたいな」という気持ちのある人
    • もしくは「減らせるのだろうか」と気にしたこともなかった人
    • とはいえ「ガチガチのレギュレーション」や「窮屈さ」は望んでいない人
  • チームの生産性に課題を感じている人、向上させたいと考えている人

本セッションで得られるもの

  • 「なぜエラーを減らしたいか」の理論的な背景、根拠となりそうな情報
  • 組織として、どのようにエラーやバグを減らしていくか?という導入-出口の戦略
  • アプリケーションエラートラッキングツールの活用方針
    • Sentryの利用を想定しています

本セッションで話さないこと

  • アーキテクチャや「良いコードの書き方」といった、品質面の話

関連リンク、参考書籍