Regular Session (25mins)
Composer

私とComposerとDockerfileと

asumikam asumikam

あるアプリケーションをコンテナ化することになりました。
Composerの使い方を試行錯誤していく中で「ど、DockerfileでのComposerの記述は、色んなパターンがある・・・!」という学びと、彼らとの絆を得ました。
そして自分の中でなんとな〜く使っていたComposerのことがほんの少しわかるようになりました!

「なんとなくcomposer install打ったらいい感じになるよね」「なんかDockerfileに書いてあるよね」という方が、このセッションを聞いてComposer、そしてDockerfileともうちょっと仲良くできるような発表をします!

話そうと思っていること
■ Composerってなんだっけ?
■ Dockerfileにどうやって書こう?
■ 最終的に採用した方法とその理由

1
Regular Session (25mins)
Team & Communication Troubleshooting Monitoring

Observability Engineeringって何でしょう?: アプリケーション畑の人と語りたい可観測性

o0h_ きんじょうひでき

「オブザーバビリティ」や「可観測性」という言葉は、耳にしたことがある人は増えてきていると思います。
あるいは、「全く知らない、想像もつかないよ」「また新しい "ナンチャラlity" が出たんですか?」なんて人も多そうです。

PHPを趣味や仕事で使っている人は、Webサービスやモバイル等のバックエンドを提供しているケースが中心でしょうか。
「今もどこかの姿が見えない誰かが使っているかも知れない」「その人たちが、自分たちが提供しているサーバーにアクセスしている!!」
というのが、Webサービスの難しさであると同時に単純・嬉しいところでもありますよね。
すなわち、「何が起きているか」は「自分たちの目の届く所に集約されている」と。

オブザーバビリティとは、「いかに状態( = 上手くいっていること・問題が起きていること)が把握可能になっているか」という性質です。
放っておいても実現されるものではありません。
意識して、設計して、運用して・・・初めて手にすることができるものです。

これは単なる「ツール」「技術」の話ではないのです。
チームないし文化まで含めて、「どう向き合っていくか」を突き詰めた先にオブザーバビリティがあると考えています。

本セッションでは、「継続的に、かつ自信を持ってサービスを提供し続ける」ために大事なことを、
書籍「Observability Engineering」の内容をベースにしながら紹介していきます。
「SRE」「インフラ」「運用」 ではない 人達に向けた 、どうしてアプリケーション開発者が向き合っていくべきなのだろう・・?という話です。

6
Regular Session (25mins)
PHP Architecture

DI コンテナと仲良くなる方法その1:自作する

akai_inu やまゆ

こんにちは。やまゆです。

みなさん、 new してますか?私は、最近はあまりしていないです。なぜなら、インスタンス化はほとんど DI コンテナ に任せてしまうからです。お客様のプロダクトにも DI コンテナが含まれているのではないでしょうか?活用出来ていますか?

昨今の PHP は今や素晴らしい言語になっていると感じています。その一つが private readonly SomeRepositoryInterface $someRepo とコンストラクタに書けるという話です。

今回は以下の内容を話してみたいと思っています。

  • 具象依存と抽象依存の違い
  • PHP で具象依存を避けるにはどうするか
  • DI コンテナとは何か
  • Reflection による autowire を実装してみよう
3
Regular Session (25mins)
PHP Architecture Framework

何のために我々は PHP フレームワークを自作し続けるのか?

akai_inu やまゆ

こんにちは。やまゆです。

そこの方もあちらの方も、一度は 「PHP でフレームワーク作りたい」 と思った、または 実際に作ってみた のではないでしょうか?
私も例に漏れずフレームワークを作っていました。それも 二つ
メンテナンスはしていないですし、そもそもプロダクトに採用していません。 完全に趣味 です。
では、何故作ったのか?使わないものを作るのは一見無駄に見えますが、実はとても重要な作業だと私は考えています。

  • フレームワーク作りで得られる知識
  • フレームワーク作りの勘所
  • フレームワーク と PSR

今回はこの三点を共有したいと思います。

1
Lightning Talk (4mins)
PHP IDE

I use Vim for PHP coding

seike460 清家史郎

みなさんPHP書いてますか?

書いているということは皆さんVimmerなんですね、わかります。

今回VimでPHPを書いている僕が、皆様にVimのPHP コーディングで使っているプラグインをただただ紹介したりします

それ、Vimで出来るよ

免責事項:みんなが自分の好きなエディターでコーディングをするのがいいと思います。

8
Lightning Talk (4mins)
Team & Communication

「象、死んだ魚、嘔吐」で、ふりかえりやってみた

asumikam asumikam

世の中には様々なふりかえり手法がありますが、
みなさんは「象、死んだ魚、嘔吐」というふりかえり手法を知っていますか?

めちゃくちゃキャッチーなタイトルで聞いた時からやってみたかったふりかえり・・・。
ついに機会を作ることができて、実施してみました!
このふりかえりのオススメタイミング・やる際に工夫したポイントなどを、実体験をもとにご紹介します!

2
採択
2022/09/24 16:35〜
Track2
Regular Session (25mins)

RFC911*から振り返るHTTPの仕様

seike460 清家史郎

HTTPとPHPは切っても切れ離せない関係があります。

PHPもその周辺のミドルウェアもHTTPを正しく理解することで、さらにその力を発揮する事が出来ます。

そんなHTTPに関するRFCが2022年6月に新たに公開されました。

HTTPは実際にどのようなメッセージを送信、受信していてそのメッセージにはどのような意味が込められているのか、
PHPerにとって知っておくべきHTTP仕様をこのタイミングでRFC911*から振り返ってみましょう。

  • 想定する聴講者
    • HTTP仕様について興味がある方
    • HTTP Messageの中身、やり取りについて知りたい方
    • HTTP header による挙動変化について知りたい方
Regular Session (25mins)
PHP Framework

PHP フレームワーク ソースコードリーディング

seike460 清家史郎

フレームワークの利用方法がわからない…
そんな時にドキュメントを見に行くことになると思います。

フレームワークが内部で何をしているかは理解できないけど利用方法はわかる。
今回はそこから一歩踏み込む為にソースコードリーディングをオススメします。

利用方法がわかることはもちろん、
PHPのフレームワークの内部で行われている処理の理解や
Webアプリケーションが行うべき振る舞いについて学ぶ事が出来るので
より確実にフレームワークを利用することが出来る様になります。

今回はLaravelに関してのソースコードリーディングを例に、
フレームワーク作者の追体験をしてみましょう。

  • 想定する聴講者
    • PHPフレームワークを利用する人
    • フレームワークの中身を気にした事がない人
    • よりフレームワークの理解を進めたい人
9
Regular Session (25mins)
Infra Monitoring

Amazon CloudWatchで行うコストを意識したPHPWebアプリケーション監視

seike460 清家史郎

Webアプリケーションを運用する上で、監視の仕組みは欠かせません。
それはWebアプリケーションとして動作する事が多いPHPでも変わりません。

SREの文脈で特に重要性が高まるアプリケーション監視ですが、世の中には様々な監視サービスが存在します。
今回は特にAmazon CloudWatchをコアに据え、どの様にWebアプリケーションを監視する事が出来るのかを考察します。

PHP利用したアプリケーションに対してAWS以外のオンプレミスも対象とした、
コストメリットも含めた監視サービスについてお話します。

  • 想定する聴講者
    • 普段AWSを利用していない方
    • Webアプリケーションの監視を始めたい方
    • 監視を行う上でのメリットを学びたい方
7
Regular Session (25mins)
Infra Frontend

AWS Amplifyでフルサーバーレスな開発を始めよう

seike460 清家史郎

フルサーバーレスな構成を取る場合、様々なクラウドサービスの知識に加え
実践的な利用方法が求められます

またAWS上でフルサーバーレスなアプリケーションを作成しようとしても、
AWS LambdaのネイティブランタイムにPHPはありません

フルサーバーレスの恩恵を受けたいが、その第一歩が難しい
その悩みをAWS Amplifyは解消してくれます

普段はPHPで実装するバックエンドをAWS Amplifyに任せることで、
React + GraphQLで作成するログイン付きのサンプルWebアプリケーションを作成する流れについてご説明します

具体的な手法をなぞることでフルサーバーレスなアプリケーションを作成手法を学びましょう

  • 想定する聴講者
    • フルサーバーレスアプリケーションに興味がある方
    • 具体的なフルサーバーレスアプリケーション開発の始め方を知りたい方
1
Lightning Talk (4mins)
PHP Asynchronous

現場で明日から使える PHP の非同期処理

hanhan1978 富所 亮

過去に数回、PHP系のカンファレンスで非同期処理について解説しました...が!「中身なんてどーでもいいんだよ!明日から使えるコピペできそうなやつくれよ!」って言われたので、すぐ使えそうな非同期テクニックを何個か紹介します!

10
採択
2022/09/24 17:20〜
Track2
Regular Session (25mins)
Framework Performance

Laravel を低速化する技術

hanhan1978 富所 亮

日本でも大人気のウェブアプリケーションフレームワーク「Laravel」
ある程度のデータ量までは、割と速い速度で動いてくれる Laravel をあの手この手で低速化させてみようという試みです。どのようなコードが Laravel を低速化させるのかを学ぶことで、逆説的に Laravel の速度劣化を防ぐソースコードの考え方が身につきます。

このトークでお話すること

  • ミドルウェアによって Laravel を遅くする方法
  • インフラ環境によって Laravel を遅くする方法
  • ソースコードの書き方によって Laravel を遅くする方法
  • 遅くしないで妥当な書き方をした Laravel の処理スピード計測
Regular Session (25mins)
PHP Database

PHPでB+木を作成してデータベースの気持ちを理解する

hanhan1978 富所 亮

B+木というデータ構造をご存知でしょうか?RDBMSでよく採用されているデータ構造で、ディスクの効率的な利用や、検索を行いやすいなどの特徴があります。しかし、耳学問で聞いてみてもイマイチ特徴がピンと来ないのです。

本トークでは、PHPでB+木のデータ構造を実装して、RDBMSでB+木が採用される理由、インデックスの構造的な仕組み、何故検索が速くなるのか?などなど、データベースの仕組みの根幹を覗いてみましょう。

このトークでお話すること

  • B+木の特徴
  • B+木は何故ディスクの利用効率が高いのか
  • インデックスとは何か
  • なぜ、データベースはB+木を採用しているのか
8
Lightning Talk (4mins)
PHP Hardware FFI

Webカメラ操作から学ぶPHP-FFI

hanhan1978 富所 亮

PHP 7.4 から FFI がサポートされるようになりました。これまで、Cのライブラリを経由して何がしかの処理を行う場合は、PHP拡張を作るしかありませんでしたが、FFIを使うことで、直接PHPからCのライブラリをコールすることが出来るようになりました。

このLTでは、Webカメラの操作を題材にしてPHP-FFIが開くPHPの新しい可能性について紹介します。

4
Lightning Talk (4mins)
PHP

PHP のメーリングリストとイシューを全部読み続けるとどうなるか?

hanhan1978 富所 亮

2022年の4月から、ふと思い立って PHP のメーリングリスト(Internals)と PHP のバグイシューを全部読むという行動を初めました。最初はしんどかったのですが、段々と体が慣れてきて、ついには週1で Youtube Live でまとめを発表できるようになりました。

本 LT では、一体なぜそんなことをしているのか?そして、これをやるとどうなるのか?をお伝えします。

13
採択
Lightning Talk (4mins)
PHP IDE

phpに新しい機能が追加された時にエディタ開発者がやること

takeokunn たけてぃ

phpは毎年新機能が数多く追加されています。

新しい構文や式が追加されることによってphp開発者の開発体験が上がっている一方、
誰かがその開発体験を支える対応をしているはずです。

具体的にどういう対応が必要なのか、LSP、Emacs、package managerの対応等を例に話していこうと思います。

採択
Lightning Talk (4mins)
Framework Performance Frontend

どのくらい速くなるの?Laravel MixとViteを性能比較してみました!

AkitoTsukahara AkitoTsukahara

LaravelのデフォルトビルドツールがViteになることはみなさんご存知でしょうか?
webpackよりも速くなると言われていますが、実際にどのくらい良くなるのか気になりませんか?

この発表ではLaravel Mix とViteの性能比較した結果を分かりやすくご紹介させていただきます!
はたしてViteは私たちの開発体験をどのくらい快適にしてくれるのでしょうか!?

▼こんな方におすすめ
・Laravelで開発経験のある方
・Viteがどんなツールのなのか知りたい方、気になる方

参考
https://laravel.com/docs/9.x/vite

採択
2022/09/24 17:55〜
Track3
Regular Session (25mins)
Database 🔰はじめての登壇

正規化理論ことはじめ -数学的背景から理解する正規化の初手-

amamanamam くぼ

現在、正規化という手法はDB設計においてよく知られている手法となっています。

しかし、現場では以下のようなテーブルを見かけることは珍しくありません。
・1 つのカラムに複数の値が入ったテーブル
・カラム数が多いまたは、1 つの情報変更で更新処理が多く必要なテーブル
・JOINすると期待通りの結果が得られないテーブル

これらは低次の正規化により一定解決できます。もちろん闇雲に分割すればいい訳ではなく、
正規化の概念を正しく理解した上で分割を行う必要があります。

そこで本セッションでは、リレーショナルデータモデルが集合論に立脚していることから、数学的背景に着目して第1〜第2正規化について紹介します。
具体的には、RDBの用語(候補キー・関数従属性・情報無損失分解・正規形)を適宜厳密に解説しつつ
実際の正規化の例を通して、PHPer が向かうべきテーブル分割の手法を持ち帰っていただきます。

採択
2022/09/24 16:35〜
Track4
Regular Session (25mins)
PHP 🔰はじめての登壇

入門 Hello World

西 祐太郎

今回参加されている皆様は、普段のお仕事でPHPでWebアプリケーションを書いている方が多いと思います。
しかし、どのような仕組みでサーバ内でPHPが動作してブラウザに返却されているか正確にイメージできている方はいますでしょうか?
この仕組みについて、実際のコードを交えながら時間の許す限り解説をしていきたいと思います。

採択
Lightning Talk (4mins)
Frontend Accessibility 🔰はじめての登壇

背景色を基に見やすい文字色を自動で選択させるために WCAG ガイドラインを使う

maikeru 三雲 勇二

背景色と文字色の見やすさについて、なんとなく経験や見た目だけで判断していませんか?
デザイナーではないエンジニアだからデザインについて敬遠していませんか?

この LT では、W3C の Web Content Accessibility Guidelines Working Group のガイドラインを参考に、計算した数値を基に背景色に対して見やすさの指標を算出し判断する方法をご紹介します。

計算方法さえわかってしまえば、なぜ「赤 RGB(255,0,0)」は「白 RGB(255,255,255)」や「黒 RGB(0,0,0)」どちらとも相性が悪いのか?数値を基に分かるようになります。

最後に、この LT を通じて WCAG ガイドラインを参考に、エンジニアもより良いデザインを体系的に学ぶきっかけになれば幸いです。