採択
2024/03/07 16:00〜
Track A
レギュラートーク(40分)

テスト放送

uzulla uzulla

テスト放送

採択
2024/03/08 11:15〜
Track A
レギュラートーク(40分)

ウキウキ手作りミニマリストPHP

uzulla uzulla

皆さん普段どのようにPHP実行環境を組んでますか?私はなんだかんだLAMP推しです。もうCDNが前段にいればええやろ。

さておき、PHPはモジュラ式に拡張できるしインタプリタ(諸説あります)だし、php.iniは山ほどあるし、httpdは別途に必要だしで実は非常に複雑です。
つまりメンドウ。なので多くの人がパッケージマネージャでいれてると思います。

よって、気になる人は「なんかPHPの環境構築は{所定のブログ記事}のコピペでやってるな〜秘伝のタレだな〜」みたいな感じと思います、どうですか?
(まあ私もremiったりondrejつかったりもしますのでそれは間違いではありません)

しかし「PHP環境のビルド」は色々出来るんです。今回は真心を込めて「カリっとしたPHPをつくる」そういう遊びをしてみませんか?

  • 超ニッチなオタク話です
  • ミドルウェアや*nixやLinuxの話になります
  • 仕事には多分役立ちませんが、「なんでBrewのPHPが壊れるのか?」みたいなことはわかるかも
  • もしかすると、「コンテナサイズを超小さくする派」とかには刺さるかも?(php方面にいるのか?)
  • もはや廃れた(???) INSTALL.mdとかにある configure と make all と友達になれるかも
採択
2024/03/08 11:15〜
Track B
レギュラートーク(40分)

Command-line interface tool design

k1LoW 小山健一郎

Webアプリケーションには多くの「良い」とされるデザインが存在します。
例えば、インターフェースである画面やAPI、その実装であるアーキテクチャのデザインなど。
そして、持つ機能が発展していくにつれて適切なデザインも変わります。
では、CLIツールはどうでしょうか?
手元での実行が主だったり、Webアプリケーションと比べて複雑なビジネスロジックを持つことも少ないです。主なターゲットは開発者です。
だからと言ってデザインを疎かにして良いわけではありません。
発表者は多くのCLIツールを開発、メンテナンスをしています( https://github.com/k1LoW )。
機能も想定実行ケースも様々です。また、Webアプリケーションほどではありませんが、5年を超える開発をしているものもあります。
本発表ではその経験を元に、CLIツールの開発をする上で考える様々なデザインを紹介します。

採択
2024/03/08 11:15〜
Track C
レギュラートーク(40分)

Laravel OpenAPIによる "辛くない" スキーマ駆動開発

KentarouTakeda 武田 憲太郎

スキーマ駆動開発は非常に強力な開発手法です。

  • API仕様とサーバ実装が確実に一致し、クライアントライブラリは自動生成されます。
  • フロントエンドは型システムの力により、「サーバ」を意識せずに開発が可能です。
  • 「APIの繋ぎ込み」タスクや結合テスト時の問題切り分けが不要になります。

なるほど、完璧な作戦っスね―――ッ
不可能だという点に目をつぶればよぉ~

スキーマ駆動開発はしばしば「辛い」と言われます。

  • スキーマと実装とをそれぞれ書かなければいけません。
  • 開発中の変更がフロントエンドのCIを予期せず壊すことがあります。
  • 破壊的変更を避けるために類似のエンドポイントが乱立しがちです。
  • 実際には、仕様と実装が常に一致しているとは限りません。

これらの課題をLaravelおよびLaravel OpenAPIを使用して解決します。

  • ライブラリの機能を活用し、スキーマと実装との二重化を解消します。
  • 仕様と実装との不一致を自動的に検出します。
  • フロントエンドのCIを壊さないスキーマの運用を行います。
  • そもそもスキーマ駆動開発とは何かを解説します。

これまでOpenAPIやスキーマ駆動開発に苦労したことのある方はもちろん、これから導入を検討している方々にとって有益な内容です。

採択
2024/03/08 14:40〜
Track A
レギュラートーク(40分)

WebAssembly を理解する 〜VM の作成を通して〜

nsfisis nsfisis

「WebAssembly」という技術が、さまざまな領域で耳目を集めています。
WebAssembly を実行する仮想機械 (VM; virtual machine) を PHP で作成し、その動作原理や注目が集まる理由について話します。
WebAssembly だけでなく、PHP などの任意の言語の処理系についても、そのおおまかな内部構造を知るきっかけになればと思います。

話すこと

  • WebAssembly とは
  • VM とは
  • 作ってみる
  • WebAssembly に注目が集まるわけ
  • WebAssembly を拡張する提案 (WASI、WASIX など)
  • 作った VM の上で WebAssembly にコンパイルされた PHP 処理系を動かす

対象者

  • WebAssembly について知ってはいるが、技術的な詳細や使用シーンについて知らない方
  • プログラミング言語の処理系の構成を知りたい、作ってみたい方
採択
2024/03/08 14:40〜
Track B
レギュラートーク(40分)

「"品質"が高いコード」って何?

effy_staffs 若葉 章

なんとなく口にしがちな「"品質"が高いコード」。

定義があいまいで要領を得ないため、すり合わせはおろか万人が万人の「願望する"品質"」の話に終始してきました。

一方で「品質」は工業規格としての定義があります。

このトークでは工業規格の定める「品質」に基づいて、「"品質"が高いコード」の定め方と達成の仕方についてお話します。

このトークで得られる知見

  1. "品質"の定義
  2. "高品質"の達成の仕方
  3. ユニットテストにおける"「どこまでやるか?」の割り出し方"
  4. "品質"を高めるためのテストとは

このトークで話さない事

  1. 品質工学
採択
2024/03/08 14:40〜
Track C
レギュラートーク(40分)

初PHPでサーバーモデルについて考えた話

sadnessOjisan sadnessOjisan

2023年9月、初めてPHPで Hello World しました。

私はいわゆるサーバーアーキテクチャを勉強するのが好きです。これまでにプリフォークサーバー、マルチスレッドサーバー、イベントループサーバー、グリーンスレッドの最小構成を自作したことがあり、ブログにまとめたこともあります。( https://blog.ojisan.io/server-architecture-2023/

そんな私が PHP の勉強として docker-compose + MySQL + PHP で簡単な掲示板サーバーを作り、それをクラウド上にコンテナでデプロイしようとしました。しかしこれはとても難しかったです。Laravelアプリケーションをコンテナデプロイするためにはアプリケーションサーバー(PHP)とウェブサーバー(Nginx, Apache)に分離して開発、場合によってはそれらを FastCGI で繋ぐことに驚きました。当初私はアプリケーションサーバーだけを配置、もしくは前段にCDNを置くだけといった構成を想定していたためです。正直なところ PHP サーバーのコンテナデプロイを納得するためには低レイヤーでの理解が求められると感じました。そこでこのトークではPHPサーバーとコンテナデプロイでお世話になる低レイヤー技術(主に並行プログラミング)や新鋭のライブラリや環境についておさらいします。

採択
2024/03/09 11:15〜
Track A
レギュラートーク(40分)

Webアプリケーションの効率を再定義するBEAR.Sundayの分散キャッシングフレームワーク

koriym 郡山 昭仁

BEAR.Sundayの分散キャッシングフレームワークは、クライアントサイドとサーバーサイドのキャッシュ管理を統合することで、Webアプリケーションの堅牢性とパフォーマンスを大幅に向上させます。このキャッシングフレームワークは、静的な情報APIと動的な計算APIの2つのタイプに基づいて、それぞれ異なる戦略を採用します。従来のTTLキャッシュを超えて、依存管理を伴うイベントドリブンキャッシュ、静的と動的コンテンツを効率的に分離するドーナツキャッシュアプローチ、そしてネットワークキャッシュの重要性について詳しく解説します。

このプレゼンテーションは、単に特定のフレームワークの機能紹介に留まりません。DI(依存性注入)やAOP(アスペクト指向プログラミング)のようなソフトウェア設計の原則を組み合わせることで開かれる新たな可能性を探ります。REST原則に基づいてHTTPや最新のCDN機能を最大限に活用するキャッシュシステムの構築にも深く焦点を当てます。このセッションを通じて、参加者は技術的な理解を深めるだけでなく、設計者としての視点も獲得できるでしょう。

採択
2024/03/09 11:15〜
Track B
レギュラートーク(40分)

キャッシュと向き合う、キャッシュと共に生きる

soudai1025 曽根 壮大

キャッシュはパフォーマンスを劇的に改善する効果がある反面、使うと簡単にはやめられない複雑性と中毒性があります。
その特性から キャッシュは麻薬 と言われ、安易な利用は忌避されています。

しかし、キャッシュがもたらすパフォーマンスの改善効果は無視することはできず、コンピュータの世界において有効活用されているのも事実です。
そこで今回は、キャッシュの手法と有効な場面での活用方法、逆に失敗してしまいやすい注意事項を説明しながら、実務の中でのキャッシュとの付き合い方を説明します。

話すこと

  • キャッシュが有効な例と失敗例
  • キャッシュを実装パターンと始めるときの勘所

対象者

  • アプリケーション開発などでパフォーマンスに苦労したことがある人
  • キャッシュを利用したサービスの運用で苦労をしたことがある人
  • とにかく今すぐパフォーマンス改善したい人
採択
2024/03/09 11:15〜
Track C
レギュラートーク(40分)

RubyVM を PHP で実装する〜Hello World を出力するまで〜

m3m0r7 めもり〜☆

みなさんは何かしらの VM (Virtual Machine)を作ったことがあるでしょうか。私自身は過去に PHP で JVM (Java Virtual Machine) を作ったことがあります。
現職は Ruby on Rails がメインの企業です。Rails どころか Ruby 初心者である私が Ruby の気持ちを理解するにはひと工夫必要だと考えました。
そこで,過去に PHP で JVM を作ったことがある経験を活かし,RubyVM を自作して Ruby の気持ちを理解し学習速度を加速させようという考えに至りました。
本トークでは PHP でどのように VM というものを作るのか,そして RubyVM はどのように作っていくのかを,初心者でも「ちょっとわかったかも」と思えてもらうことをゴールとして解説します。