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

PHPerチームを育てる:採用力を高めるコーディング試験導入の舞台裏

kunikiya 原田裕介

CTOとして内製開発チームをゼロから立ち上げ、現在では社員・業務委託を含め約20名の規模にまで成長させてきました。このチーム拡大の過程では、採用難が叫ばれる時代の中、スキルやマインドを見極め、自社にフィットする人材を見つけることに真剣に向き合ってきました。
採用活動の中で理想の人材と巡り合えないことや、採用後に感じるミスマッチなどもあり、コーディング試験を導入しました。この取り組みによって、候補者の技術力や考え方をより深く理解し、チームに適した人材と出会う手ごたえを得ることができました。
同じように採用の課題に直面している方々にとって、実践的なヒントとなれば幸いです。

◆話すこと
・採用の課題感
・技術力を客観的に評価する必要性
・テスト内容
・どのようなポイントを評価したか
・採用プロセスにおける成果

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

手続きのコードから、出来事のコードへ ─ イベント駆動アーキテクチャへ段階的に移行してみよう

kajitack 梶川 琢馬

「どこで何が起きているのか分からない」──複雑な処理が詰め込まれたコードを前に、そう感じたことはありませんか?

本セッションでは、そんな不透明なロジックを “出来事” を軸に整理し直す、イベント駆動アーキテクチャへの段階的な移行プロセスを紹介します。
「〇〇が起きた」というドメインイベントを導入し、処理を手続き型から宣言的なスタイルへと転換することで、コードの見通しや責務を明確にしていきます。

まずは同期イベントによる責務分離から始め、そこから非同期イベント処理へと進化させる3ステップを、PHPコードの実例とともに解説します。
さらに、非同期化に伴って生じる整合性の落とし穴についても、Transactional Outbox などの実装パターンを交えて紹介。

“出来事”を中心にコードを組み立てることで得られる、読みやすさと保守性を兼ね備えたアーキテクチャ設計のヒントをお届けします。

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

例外に頼らないエラーハンドリング ─ Result型と関数合成による Railway Oriented Programming の実践

kajitack 梶川 琢馬

PHP では try-catch による例外処理が一般的ですが、「どこで例外を処理すべきか?」「本当にこの場面で例外を使うべきなのか?」と迷ったことはありませんか?
過剰なエラーハンドリングや、catch したけれど何もしていない“握りつぶし”が積み重なると、責任の所在が曖昧になり、コードの見通しや保守性にも悪影響を及ぼします。

こうした課題へのヒントとして、Rust などの言語で採用されている Result 型の考え方を、PHP に応用するアプローチがあります。
Result 型は、失敗を型として明示的に扱い、成功も失敗も返り値で表現する設計手法です。

本セッションでは、さらに一歩進んで、処理の流れを線路のように“合成”する「Railway Oriented Programming」の考え方を取り入れ、複雑な分岐処理をシンプルに記述する実践的な方法を紹介します!

1
採択
レギュラートーク(20分)

なんでいま静的解析なの? PHPで学ぶ「静」と「動」

tadsan うさみけんた

PHPはWeb開発の現場でカジュアルに使われてきましたが、「正しく」使うのが難しい言語だと言えます。
20年以上の歴史を重ねてきたWeb開発の現場でもさまざまな言語が生まれてきましたが、PHPの存在感は未だに衰えてはいません。

そのような言語の中でも揺れ動いてきたのが「静的(static)」と「動的(dynamic)」という概念です。
PHPは一般に「動的型付けのスクリプト言語」のように分類されますが、異なる特徴を持った言語も多く登場しています。

本トークではPHPの静的性と動的性について紹介し、PHPの現在地点、そして「静的解析」という技術がどのように問題解決につながるかを紹介します。

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

Pure PHP で作る HTTP サーバ

nsfisis nsfisis

概要

Web を支える重要なプロトコルのひとつ、HTTP。言語やライブラリ、フレームワークの下に隠蔽され、通信プロトコルを直接意識する機会は少ないと思います。そこで、PHP のソケット API を使って HTTP を解する小さなサーバを実装し、HTTP の理解を目指しましょう。

話すこと

  • TCP/IP スタック
  • HTTP の基本的なプロトコル
  • Pure PHP でソケット API を用いて小さな HTTP サーバを実装する
    • GET / POST メソッド
    • Cookie / Set-Cookie ヘッダ

実際に公開サーバ上で動く状態にしてデモを見せます

対象

  • Web サイトの通信がどのようにおこなわれているのか詳しく知りたい方
  • プロトコル実装に興味がある方
1
採択
レギュラートーク(20分)

レガシープロダクト開発の目線から見るこれからの PHP との付き合い方

at_taisuke 荒瀬 泰輔

長年運用されてきた PHP プロダクトをこれからも安心して使い続けるためには、 PHP 本体のアップデートが不可欠です。
本セッションでは、 PHP 4 の時代から20年以上運用されたプロダクトを PHP 8.3 までアップデートしてきたことで得られた知見と、 PHP 8.4 以降にバージョンアップするために何をするのか、を共有します。
レガシーと向き合う皆さんに役立つ実践的な知見をお届けします。

■ 話すこと

  • PHP をアップデートするためにやっておくといいこと
    • レガシーだからこそ、PHP の最新情報をキャッチアップしておこう
    • 技術的負債は少しずつ解消しておこう
  • PHP 以外の OSS ライブラリの動向にも注意
    • 自分たちでコントリビュートすることも考えよう
3
レギュラートーク(20分)

シリーズAを迎えた地方スタートアップがカスタマイズとどう向き合っているか

aki_artisan あかつか

私は京都のスタートアップで働くエンジニアです。

スタートアップでは、売上拡大のために新規顧客獲得が重要になりますが、既存の業務フローがある顧客にはそのままでは導入できないことも少なくありません。

個別のカスタマイズ要望は、プロダクト開発のヒントとなりうる反面、その後の開発に影響を与える要因にもなります。

このトークでは、以下のテーマを主に扱います。

  • 標準機能にするのか個別の機能にするのか
  • 個別機能開発をする際にどのように作るのか
  • リファクタリングをいつ行うか

このトークを通じて、プロダクトの今と将来を両立するための考え方の一例を提案したいと思います。

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

var_dumpをPHP8で写経してみるための準備

aki_artisan あかつか

php-srcを知りたいときの教材として、てきめんさんの「var_dumpを写経する - php-srcを学ぶぞ -」は分かりやすいです。

https://techbookfest.org/product/5746408227340288?productVariantID=6343868242984960

このトークでは、実際に本に倣って進めていくところで詰まったポイントとその解消方法や、php8で写経をしてみるために必要な準備を解説します。

実際にextensionを含めてビルドして動くところまで到達することを目標にします。

採択
レギュラートーク(20分)

PHPからはじめるコンピュータアーキテクチャ

tomzoh 長谷川智希

現代のコンピュータはハードウェアから私たちプログラマが書くプログラムの動作までの間が多くのレイヤーに分けられて動作しています。
レイヤーは自分より下を抽象化し、下のレイヤーを詳しく理解しなくても多くの場合プログラマはプログラムを書けます。
一方、プログラムが期待した様に動作しない時には下のレイヤーの動作の理解が問題の解決の助けになることもあります。

このトークでは私たちが愛するPHPをスタート地点にして、「VMって何?」「 PHPやJavaとC言語の根本的な違い」など、コンピュータプログラムがどの様に動作するのかを解説します。

コンピュータのレイヤー構造を理解すると、いままでは見えていなかった角度からプログラミングを楽しめるようになります。
このトークを通じて、低レイヤーが好きになったり、いろいろなレイヤーで面白いことをしたりする方が増えることを期待しています!

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

「なぜキャッシュメモリは速いのか」とキャッシュが引き起こすCPU脆弱性

tomzoh 長谷川智希

2024年1月、「なぜキャッシュメモリは速いのか」が話題になりました。
この質問に答えるのはなかなか難しいのですが近年のコンピュータの高速化はすべてキャッシュによるものと言っても過言ではないぐらいキャッシュは重要な技術です。

このトークでは「なぜキャッシュメモリは速いのか」の説明から、なぜキャッシュが必須の存在なのか、そしてキャッシュが引き起こすCPUの脆弱性について初心者の方にもわかりやすくご説明します。

コンピュータアーキテクチャの勉強、というよりはキャッシュを取り巻くハートウォーミングストーリーを聴きに来るつもりでいらしてください。きっと「CPU脆弱性って言っても思ったより難しくないな」「おもしろいな」と思って頂けると思います。

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

なぜキャッシュメモリは速いのか

tomzoh 長谷川智希

2024年1月、「なぜキャッシュメモリは速いのか」が話題になりました。
この質問に答えるのはなかなか難しく、X(Twitter)ではいろいろな回答がされていました。この回答はさまざまな立場・理解からされていて、Xのタイムラインをご覧になっていた方はいまいちしっくりこなかったのではないでしょうか。

このトークでは「なぜキャッシュメモリは速いのか」に答えるのに必要な知識を、初心者の方にもわかりやすくご説明します。

  • キャッシュメモリとは何か
  • なぜキャッシュメモリを使用するのか
  • キャッシュメモリとメインメモリは何が違うのか
  • 結局なぜキャッシュメモリは速いのか

キャッシュの使いこなしは現代コンピュータにおいて避けることはできず、キャッシュを制するもののみがコンピュータを高速に動作させられると言っても過言ではない状態です。キャッシュを理解し、キャッシュを楽しみましょう!

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

ダッシュボード向けWebAPIを設計、実装してみたらいろいろ悩んだ話

ysssssss98 Capi(かぴ)

これまでダッシュボード向けのWebAPIをPHPで設計・実装してきました。その中で、どのような方式を採用するべきか、どこで迷い、何を試し、なぜその形になったのか──実際のプロダクション開発を通じて得た知見を紹介します。

RESTやGraphQL、BFFなど方式の選択はもちろん、データの整形、責務の分離、フロントエンド側との関わりなど、実装中に直面した「悩み」やその対応、やむなく方向転換をしたことにも触れながら、WebAPI設計の話しをします。

「こんなふうにもできそうだけどどうだろう?」という話しも少しします。

話すこと(変更の可能性あり)
・ ダッシュボード向けWebAPIをどう作ってきたのか
・ なぜそのように作ってきたのか
・ こんなところで迷った
・ こんな方法でも作れそうと考えている

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

Eloquentの内部動作から学ぶ:delete()メソッドの意外な挙動

rei_3304 Rei

Eloquentのdelete()で想定外の全削除が発生した実体験。
複合プライマリーキー対応の限界と、安全な設計方法について解説。

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

Symfony DI アトリビュートを制覇する -活用戦略と実践ユースケース-

ippey_s 角田 一平

Symfony 6系以降で登場した一連のDIアトリビュートは、サービス定義ファイルへの依存を減らし、依存注入をコードの近くに集約することができます。
本セッションでは、さまざまなアトリビュートを利用したDIについて紹介し、実務に役立つTIPSをコード付きでご紹介します。これらを戦略的に使いこなすことで、責務分離、リファクタリング・テストの自由度が劇的に向上します。初めてSymfonyを触る方やまだ試したことのない方も、SymfonyのDIを“制御できる”実践的な20分をお届けします。

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

LaravelにおけるFacadeの“ちょうどいい”使い方 〜開発効率と保守性を両立する工夫〜

ippey_s 角田 一平

LaravelのFacadeは、簡潔な記述で機能を呼び出せる便利な仕組みですが、「静的でテストしづらい」「依存関係が見えづらい」といった理由から敬遠されることもあります。しかし、目的やスコープを明確にした上で戦略的に活用すれば、開発やリファクタリングの助けとなる強力なツールにもなります。本セッションでは、Facadeを使って開発やリファクタリングを効率的に進める手法を紹介します。日常の開発でのFacade活用について考えていきます。

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

アウトカムを語る前に、開発者として積み上げたこと

sanogemaru Genki Sano

「もっとアウトカムに向き合おう」
そんな声をよく耳にするようになりました。
ユーザーに届く価値、ビジネスインパクト、意味のある成果。どれも間違いなく大切です。
でも、ふと立ち止まって考えたとき、こんな問いが浮かびました。
「私たちは、そもそも安定してアウトプットできる状態にあるんだっけ?」と。

このセッションでは、アウトカムを意識する前に私たちがやってきた、チームの土台づくりについて紹介します。
アウトプットの可視化、専門領域を越えて協力し合えるチーム構造、Slackのハドルや朝会の工夫によるコミュニケーションの改善など、地味だけど確実に効いた取り組みを中心にお話しします。

派手な成果や成功事例ではありませんが、足元を固めることで初めてアウトカムに届くようになった、そんなリアルな試行錯誤を持ち帰ってもらえたら嬉しいです。

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

ドメインイベントを使ってサービスを加速!コンテキストが活きるシステムアーキテクチャ入門

ex_takezawa ytake

開発体験以外のAI活用ってどんなものがあるんだろう?

サービスや事業にも非常に強力な要素にもなるドメインイベントを活用することで、
様々なシーンでAI活用を推進することができます。
例えばAIを活用したデータ分析をはじめとしてマッチングやレコメンデーション、
AIエージェント開発やエージェンティックRAGの実践など、
これまでとは少しだけ違った形でたくさんの価値を生み出すことができます。

今回はそんなドメインイベントとAIが利用しやすい様々なコンテキスト表現方法と、それらを実現するためのシステムアーキテクチャに触れます。

これからのアプリケーションについてのヒントをお届けするとともに、
みなさんのサービスなどに実装するAI関連技術についてもお話しします。

3
採択
レギュラートーク(20分)

コードとあなたと私の距離

hiro_y 山岡広幸

コードレビューでは、人格攻撃をしてはならないとされています。
それは裏返せば、書かれたコードをレビューするときに
それを書いた人のことをどうしても考えてしまう、ということでもあります。
自分が攻撃(非難)されたように感じてしまうのも、同じこと。
自分が書いたコードは、あたかも自分の一部であるかのように感じる気持ちがあるのです。

しかし現在、生成AIがコードを書くようになってきています。
人間が書いているところを補完してくれたり、
自律的にコードを書いてPull Requestの作成までしてくれます。
では、そのコードはあなたが書いたものだと言えますか?あるいは、思えますか?

このトークでは、コードと私たちの距離について考察します。
(心理的な)オーナーシップの話だけでなく、責任の分界点についても見ていきます。
生成AIの導入で変わりつつある距離感について、一緒に考えてみませんか。

3
採択
レギュラートーク(20分)

PHPに関数型の魂を宿す〜PHP 8.5 で実現する堅牢なコードとは〜

shogogg 河瀨 翔吾

PHP は2015年以来、毎年11〜12月頃にバージョンアップが行われており、11月20日には待望の PHP 8.5 がリリース予定です。

かつてはゆるふわ言語の代表格として知られた PHP ですが、7.0 以降は型周りの表現力が大幅に強化された他、Readonly Property/Class の導入など、堅牢で読みやすく、壊れにくいコードを書くための強化が行われてきました。

そして PHP 8.5 では Haskell や Elixir など「関数型言語」にあるような「パイプ演算子」が導入されます。PHP にパイプ演算子……隔世の感がありますね。

本トークでは PHP 8.5 で導入される新機能の内、個人的に注目しているパイプ演算子と NoDiscard アトリビュートを中心に、どのようなメリットをもたらすのかを具体的なコードと用例を用いて解説します。

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

PHPで動かすプロセスのこと、ちょっと掘り下げてみたんよ

jdkfx 田添春樹

本セッションでは、高負荷な処理を非同期処理として実装したいという実務的な動機を起点に、PHPの実体とその制御に取り組んだ経験を紹介します。
子プロセスの生成・監視・タイムアウト制御などを組み合わせたシンプルなバッチ処理管理システムを自作する中でプロセス制御について学ぶことはできましたが、しかし同時に「プロセスとはそもそも何か?」という疑問にも直面しました。
プロセス制御のコードは書けても、プロセスの実体や仕組みについては深く理解しているとは言えませんでした。
そこで、プロセスとは何か、どのようにOS上で扱われ、PHPからはどう見えているのか、そういった違う視点にも踏み込んで、プロセスについて深く掘り下げることにしました。
非同期処理やPHPでのプロセス制御に関心がある方、また普段は見えにくい「プロセスの中身」を学びたい方に向けたセッションです。

1