レギュラートーク(40分)

LaravelアプリケーションをEC2からECSに載せ替えてサーバ管理から解放されよう

for__3 zoe

Laravelで出来たアプリケーションの本番環境まだEC2使ってませんか?

OSのEOL対応、PHPのバージョンアップ、サーバ障害対応などEC2で管理していると保守するだけでも色々やらないといけない事が多いです。

Laravelアプリケーションをコンテナ化してECSにデプロイすることで、辛いサーバ管理から解放されましょう。
このトークでは、EC2で管理していたLaravelアプリケーションをECSに移行するために考える必要があるポイントや移行のために必要な手順、デプロイの仕組み、ECSで運用する際に便利だったツール(ecspresso)などをお話します。

想定聴講者は、EC2でLaravelアプリケーションを運用、移行検討してる方はもちろん、インフラとかよく分からないけど分かるようになりたいという方にもおすすめです。

1
採択
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 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 について知ってはいるが、技術的な詳細や使用シーンについて知らない方
  • プログラミング言語の処理系の構成を知りたい、作ってみたい方
レギュラートーク(40分)

PHPプログラムを使って速く・安く・上手くPHPコードを生成する試み

77web 菱田裕美

PHPに限らず、プログラムは繰り返しても劣化しない正確さと速さが持ち味です。人間は繰り返すと集中力が落ち、集中力が落ちると正確さと速さが劣化しがちですよね。
私は素早く開発することを突き詰めた結果、定型的なPHPコードは自分で書くよりPHPに書かせた方が早いと考えるに至り、さまざまなコード自動生成を日々試しています。
まだまだ実験途上の試みではありますが、私がどういう不便を解消したいと考えているのか、その不便を解消するために使っているツールのアップデートの履歴、PHPerKaigi2024当日までの成果を発表したいと思います。

5
レギュラートーク(40分)

FigmaとPHPで作る、1ミリたりとも表示崩れしない最強の帳票印刷ソリューション

ttskch たつきち

令和になっても相変わらず紙の書類の需要は大きく、Webアプリ開発においても帳票印刷機能は多くの案件で要求されます。
しかし、これがとにかく面倒くさい。

  • 複雑なレイアウトの帳票をHTML/CSSでデザインするのが地獄
  • かといって超微細Excel方眼紙でデザインするのはもっと地獄
  • しかもPDFに変換するときに微妙に見た目が崩れてどうにもできない

帳票印刷機能を実装したことのある方には強く共感していただけると思います。

そんな面倒で難しい帳票印刷ですが、実は私は既に数年前に最強無敵のソリューションを編み出し済みです。

  • ピクセル単位で細かく帳票をデザインできる(しかも簡単に)
  • 帳票デザインの保守性が高い(修正が容易)
  • 印刷時に見た目が一切崩れない

という条件を満たせる唯一(当社調べ)の方法です。

このトークでは、この至高のソリューションを具体的に解説します!

2
レギュラートーク(40分)

PHPとAPI Platformで作る本格的なWeb APIアプリケーション

ttskch たつきち

API Platformは、SymfonyをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュートを1行追加するだけで一瞬でREST APIを作れてしまう優れもので、
Symfonyのエコシステムにおいては既に決定版となっています。

しかし、ある程度複雑なことをしようとすると途端にフレームワークについての深い理解が求められたり、
痒いところに手が届かず強引なワークアラウンドが必要になったりするという面もあり、入門と実戦の間には大きな隔たりがあります。

このトークでは、API Platformの導入方法から基本機能の概要、さらには実践投入に向けた各種ワークアラウンドや実装テクニックを、
実際に動作するデモをお見せしながら丁寧にご紹介します。

API Platformの実戦投入、あるいはその検討の一助になれば幸いです!

2
レギュラートーク(40分)

OpenAIを利用したWebアプリケーションを作るためには 〜PHPerの視点から考える〜

seike460 清家史郎

生成系AIの勢いは止まりません
先日のOpenAI DevDayではGPT-4 TurboやAssistants APIなど更に出来ることや夢が広がったと感じました

一方で現状はCode InterpreterがPython前提になっていたり、
生成系AIの領域はPythonの領域のような感触もあります

そこで今回はインフラ構築、サーバーレスアーキテクチャ構築が得意なPHPerが
生成系AIのアプリケーションを作成する時にどのような選択肢があるのかを考えながら
実際にPHPの得意領域であるWebアプリケーションと生成系AIを組み合わせるサンプルアプリケーションを作成します

その中で感じたライブラリ選定まで含めた時の、プログラム言語の選択を含める課題感の共有を行います
今現状の課題感の共有と共に、皆さんと私自身の選択に関して議論できると幸いです

  • お話すること
    • PHPerを中心に据えた時に生成系AIのWebアプリケーション構築
  • 前提条件
    • PHP以外の選択肢も制限しません
    • 一部マイクロサービス化することも検討します
  • 今回のトークに対する期待
    • 私のトークは答えではありません。しかし私の選択に対して皆さんと議論出来ると嬉しいです
3
レギュラートーク(40分)

「孫子の兵法」から見る"質とスピード"

effy_staffs 若葉 章

近年、急速に"(コードの)質と(それの高さからくる開発)スピード"が注目されるようになってきました。

一方で「何故、"質とスピード"を求めるのか」に対するお話はあまり見かけません。

このトークでは「孫子の兵法」から見た「"質とスピード"は何のために必要なのか」、「"質やスピード"は本当に必要なのか」についてお話します。

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

  1. あらためて考える「なぜ"質やスピード"が必要なのか」
  2. "質やスピード"を求める場合の基準
  3. 組織人として持続可能な組織を維持するために考える事

このトークで話さない事

  1. 孫子の兵法の詳解
1
レギュラートーク(40分)

"TacDDD"を使ってお気軽にDDDを始めてみないか

effy_staffs 若葉 章

DDDを始めるにあたってしんどい気持ちになるのが「事前に用意しておくべきドメイン層のコードが案外ある」こと。

また、DDDを中心に据えた場合「ドメイン層のコードがどうあるかは本質ではない」とされ、具体的な指標がなく座りの悪い状態になりがちです。

"TacDDD"(タックディー)はそんな「ドメインの話に集中したいので、極力コード側に注力したくない」をお助けするライブラリです。

このトークでは"TacDDD"を用いる事で何が省略できるのか、どんな所の「質」が向上するのかについてお話します。

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

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

effy_staffs 若葉 章

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

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

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

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

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

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

このトークで話さない事

  1. 品質工学
レギュラートーク(40分)

PHPUnitの動きに詳しくなって、もっと拡張したい

o0h_ きんじょうひでき

PHPUnitを利用していると、たくさんの単体テストが出来上がってきます。
段々と、「単なる単体テストの集合」を超えて、「あれしたい!これしたい!」という欲求が湧いてくることがあります。
テスト自体の運用・実行を考えてみたり、あるいは「プロジェクトの健全性にまつわるデータを収集したい」といった例は、枚挙に暇がないでしょう。

PHPUnitを拡張することで、より良い開発体験を手に入れられそうです。
PHPUnitには、「エクステンション」という仕組みがあります。
コレを利用することで、何が手に入るでしょうか?
このトークは、出来ることや実用例を紹介します

はなすこと

  • PHPUnitのエクステンションってどんなもの?(全体感)
  • どんなことができるの?世の中に存在する実例を見てみよう(OSSの詳解)
  • 前提として、PHPUnitの動きやライフサイクルを知ろう
  • エクステンションはどんな仕組みで動いてるの?(詳細)
  • 実際に作って動かしてみる(コードとデモ)
レギュラートーク(40分)

PHP FFI 入門

m3m0r7 めもり〜☆

PHP に FFI が導入されてから、どういう用途で使えばよいか悩んでいる PHPer も多いかと思います。
また、PHP FFI のマニュアルも理解しやすいかというと、ハードルは若干高いと言えるのではないでしょうか。

そこで本トークでは、PHP FFI を介したモジュールの呼び出し方の解説、自作 の C/C++ のモジュールの作成からの呼び出し方、 そして libusb と呼ばれるモジュールで USB で接続された機器の一覧を取得する実践的な方法など、どのように FFI を活用していけばよいのかを解説します。

4
レギュラートーク(40分)

実践!日本一やさしいリファクタのやり方

77web 菱田裕美

レガシープロダクトを改善する仕事は好きですか?
長いPHPer人生の中で、仕事や副業で出会ったレガシープロダクトのバグ修正やリファクタをした経験から、実際にうまく行ったリファクタのやり方とうまく行かなかったリファクタのやり方をサンプルコードを実際に改善する様子を実演しながら解説します。

1
レギュラートーク(40分)

OpenTelemetry PHPで体感するオブザーバビリティ入門!

atKoga_ 古賀 敦士

みなさんはシステム障害が起きた時、どのように調査を行いますか?
根拠となるデータを元に仮説を立てて検証するというのがセオリーですが、時に必要なデータが無くて行き詰まったり、経験則や自身の勘に頼ってしまいがち、という事もあると思います。

ログ・メトリクス・トレースはシステムの状態を可視化するデータ(テレメトリーデータ)の代表格で、これらを上手く活用することにより事実に基づいて仮説・検証プロセスを回すことができます。このようにして、どれだけ複雑なシステムであっても理解しやすい状態にすること、いわゆるオブザーバビリティを高めることが近年注目されています。

OpenTelemetryはこれらのデータを収集するためのツールとして登場し、これによってオブザーバビリティを高めやすくなってきています。そして、OpenTelemetry PHPが最近GAされ、PHPアプリケーションにもこの波がやってきました。

本セッションではまずOpenTelemetryについて紹介し、サンプルアプリケーションを通じてPHPでテレメトリーデータを収集・分析する方法を見ることで、オブザーバビリティを体感する場にできればと思っています。

想定ターゲット

オブザーバビリティ入門したい方
オブザーバビリティは知っているが、PHPでの実践方法について知りたい方

7
レギュラートーク(40分)

AWSとBref x Laravelを利用した PHP Serverless Pattern

seike460 清家史郎

サーバーレスは少しずつ浸透していっています。

そんな中でサーバーレスにおいて、決まったパターンがあることも共有知となってきました。

しかしPHPサーバーレスにおけるサーバーレスパターンとはどのようなものがあるのでしょうか。

今回はBref x Laravelを利用することで、更に制約の力を強めた、AWSにおけるサーバーレスパターンの適用についてお話します。
この話を聞くことで、あなたがPHPを利用したサーバーレスラーになる為の「熱」になれれば幸いです。

・想定する聴講者
 - サーバーレスに興味のあるPHPer
 - AWSを利用しているクラウド系エンジニア
 - LaravelとAWSの統合に興味のある方
 - Brefが好きな方

・お話する内容
 - AWS Lambda x Bref x Laravelを中心にしたサーバーレスパターン
 - AWS Lambda x Bref x Laravelにおけるインフラ構成
 - モノリスになった AWS Lambdaを上手く非同期的に利用する手法

そして あなたをサーバーレスの世界に引き込む「熱」

1
レギュラートーク(40分)

PHPとはどのような言語なのか

tadsan うさみけんた

われわれPHPerが主な関心領域としているPHPですが、並居るプログラミング言語のなかでも特に毀誉褒貶の激しいものの一つといえます。

HTMLに特化しているのかといえばそうではなく、汎用プログラミング言語として使えるがWebに特化した機能は多く、動的言語で型がないと思わせつつ堅く書くこともできる… PHPは見る人によってさまざまな表情を見せる言語です。

そんな謎言語PHPの言語仕様と実行環境について歴史的背景や他言語との関わりを交えて語り尽します。

6
採択
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 はどのように作っていくのかを,初心者でも「ちょっとわかったかも」と思えてもらうことをゴールとして解説します。