LT(5分)

郵便番号から都道府県は一意に特定できない罠をご存知か

saku_rye さくらい

郵便番号とは、当たり前に都道府県・市区町村が特定できるものだと、そう思っている人はいませんか?
まさか「複数の都道府県にまたがる郵便番号」なんてあるわけない、そう思っている人はいませんか?

そんな罠にはまった私が、郵便番号に関する実装知見をクイズ形式で紹介します!

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

ファーストクラスコレクションで、配列からの脱却へ一歩前進!

saku_rye さくらい

連想配列に全てを詰め込んで旅をさせるのは良くないとは分かりつつ、
今まで巨大な連想配列をゴリゴリ実装していたチームが、配列からの脱却への一歩に挑戦しました。
完全な配列脱却は難しかったものの、バランスをとったリアルな挑戦ができたのでお話しします。

話すこと

  • 配列で書いていた時代の実例、課題、デメリット
  • ファーストクラスコレクションとは
  • 配列からの脱却に⁠ファーストクラスコレクションを採用した理由
  • ファーストクラスコレクションに感じたメリット/デメリット
  • デメリットをカバーするために生み出した、ファーストクラスコレクション亜種
2
LT(5分)

tinkerともう少しだけなかよくなってみる

164fm ヒロシマ ダイスケ

Laravelに標準搭載されている対話シェル、tinker。
PHPの組み込み関数・Laravelのファサードの動作確認などなにかと利用シーンは多いかと思います。

今回のトークではもう少し踏み込んだtinkerの利用法や、
利用することによって得られる副作用をご紹介できればと思っています。

トーク目次

  • tinkerの概要
  • tinkerの使い方
  • 設計面での副作用
レギュラートーク(25分)

ADHD と共に働く

yuksew 内藤勇介

本セッションでは、ADHDを持ちながら10年以上働いてきた視点から、どのように職場で適応するかについてお話しします。

テーマ

  • ADHDを持つ本人が仕事をする上でやるべきこと
  • ADHDを持つ本人が職場でのサポートを受ける方法
  • 同僚がADHDを持つ(ように見える)時のサポート方法
2
LT(5分)

バージョンアップする時に心がけていること5選

koyolympus wadakatu

「バージョンアップは大事だとわかっているけど、後回しにしてしまう…」そんな経験はありませんか?

ビジネスでは直接利益を生まないバージョンアップはつい優先順位が低くなりがち。
しかし、Web開発ではプログラミング言語やフレームワークなどのバージョンを常に最新を保つことが必要不可欠です。

このライトニングトークでは、限られたリソースや時間の中でも効率的にバージョンアップを進めるための心がけ5選を紹介します。
特定のツールに依存せず、汎用的に使える内容なので、すぐに実践できます!

LT(5分)

Webアクセシビリティ始めてみませんか?

sizuhiko sizuhiko

今年の春、障害者差別解消法が改正され、SNSなどで注目を浴びたWebアクセシビリティ。

PHPではWebサービスやWebサイトに関係することが多いので、一度は言葉を聞いたことがあるでしょう。
あなたのチームではどの程度Webアクセシビリティを意識していますか?
自分のチームには専門家がいなくて...
などという消極的な理由で避けてはいないでしょうか?

私はWeb標準に興味があり、そういったコミュニティをやっていたこともあるのと、Webアクセシビリティが身近になってきた感覚があり、数年前より積極的に学習/啓蒙しています。
今年上記法改正があったこともあり、自社の中でWebアクセシビリティのワークショップを開催しました。そういった経験から専門家がいなくても始められるポイントなどを簡単にご紹介します。

2
LT(5分)

エンジニアが組織に馴染むために勉強会を主催して職能間の境界を越える

uutan1108 うーたん

本セッションでは、同じ会社のメンバーに登壇依頼、カンファレンスのスポンサー窓口担当や共にカンファレンスの登壇や参加準備することで職能間の境界を越えて交流することができ、私の社内でのコミュニケーション量が増加してきた話をします。

私は、社内外で勉強会をいくつか企画し開催してきました。開催した勉強会のテーマはそれぞれ異なっており、私が開催したいと思った勉強会を勢いで開催しています。

しかし、最初は私が開催するとは思っていませんでした。私が所属している会社は職能ごとにチームが分かれており、プロジェクトによっては他の職種のメンバーと話すことがないこともあります。
しかし、今では職種が異なるエンジニアとも勉強会をきっかけに交流し、関係を継続することができています。

本セッションを通して、自身の技術領域外の勉強会を開催することで得られる職能間の境界を超える楽しさについてお話しします。

3
レギュラートーク(25分)

効率的なテストケースを生成するPICTについて学ぼう

katzchum katzumi

ソフトウェアテストの現場では、限られた時間とリソースの中で最大限の品質を確保することが求められます。
特に、複数のパラメータが絡み合う複雑なシステムでは、全ての組み合わせを網羅するテストは現実的ではありません。
そこで登場するのが、PICT(Pairwise Independent Combinatorial Testing tool)です。

PICTは、組み合わせテストを効率的に行うための強力なツールです。
このセッションでは、PICTの基本機能から高度なテクニックまでを網羅し、実際のプロジェクトでの適用例を交えながら、その魅力と実用性を徹底解説します。
PICTを導入することで、テストケースの数を劇的に削減しながらも、品質を確保する方法を学びましょう。

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

テストデータの作り方 2024

sizuhiko sizuhiko

2015年にランダムデータの作り方というタイトルでテストデータをどのようにして準備するか?というセッションをPHPカンファレンスなどでやりました。
それから9年が経過し、DBを利用する自動テストでのテストデータは破壊的でなく作られていると思っていました。

が、しかし、今だに現場ではシードデータからテストデータを投入していたり、愚直にテスト前工程でテスト自体では関心のない項目に対してもデータを記述していたりする場面が多いと聞きました(オフライン勉強会/カンファレンスが多くなった今年のリサーチ結果)。

これはやはり再び私がこのセッションをやるべきであろうと、破壊的でないテストデータの作り方を啓蒙したいという思いを強めました。
セッションではテストデータジェネレータ Fabricate の最新開発状況も含めご紹介します。

1
LT(5分)

Laravel 5分クッキング

koyolympus wadakatu

「Laravelは難しい、準備が大変」そんなイメージを持っていませんか?

このセッションでは、何もない状態からたった5分で、認証機能を持つシンプルなLaravelアプリケーションを構築するデモをお見せします。

PHPやLaravelの経験がなくても大丈夫です!
インストールからアプリ完成まで、ステップバイステップで進め、Laravelの手軽さを体感してもらいます。
恐れずに一歩踏み出し、一緒にLaravelを始めてみましょう!

制約と誓約

  • 目標は、会員登録・ログイン機能実装まで
  • ローカル環境にPHP/Composer/MySQLなし
  • 何がなんでも5分で完成させる

「Laravel開発を始めるのって簡単だな!」と思ってもらえるように頑張ります。

1
LT(5分)

地上最強のPHPプロダクトを見たいかーーーーーッ

takeokunn たけてぃ

わしもじゃ わしもじゃみんな!!

選手入場!!
全選手入場です!!!!

(ここが本編)

若き王者が帰ってきたッ
どこへ行っていたンだッチャンピオンッッ
俺達は君を待っていたッッッphp-srcの登場だ――――――――ッ

  • グラップラー刃牙 最大トーナメント が元ネタです
  • 上記のようなノリでphp製プロダクトを紹介をしてきます
3
レギュラートーク(25分)

Phpactorから学ぶLanguage Server Protocolの仕組み

takeokunn たけてぃ

概要

Language Server Protocol (LSP)は、2016年にMicrosoftが発表したJSON-RPCベースのプロトコルです。
LSPはモダンなテキストエディタなら必ずある機能(e.g. 定義ジャンプ)を提供していますが、一番の魅力は特定のテキストエディタに依存しない形での実装になっていることです。
これにより各テキストエディタでの実装の必要がなくなり、エディタ選択の自由度が飛躍的に高まりました。

PHPの言語サーバ実装はintelephenceとPhpactorがメジャーです。
本登壇ではPhpactorの実装に触れつつ活用テクニックを紹介していきます。

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

  • LSPの台頭とLSP前後のテキストエディタの変化
  • プロトコル解説とLSPがサポートしている機能の紹介
  • PhpactorとPHPStan拡張などの便利機能紹介
3
LT(5分)

普段 PHP を書かない私が OSS である PHP のコミュニティに「貢献したい気持ち」を繋げるべく考えていること

tomio2480 西原 翔太

2024 年はどんな 1 年でしたか?
 
日本の PHP 界隈で話題を探せば,各地で開かれた地域 PHP カンファレンスを挙げる方も少なくないでしょう.
様々な背景の人たちが,各地に足を運んだり,配信を見たり,コンテンツを持ち寄ったり,運営をしたり......
自分のできる形で「貢献したい気持ち」を表現し,関わった 1 年だと感じています.
 
これだけの地域に PHP の名を冠した活動があれば,日常的に PHP に触らない人も PHP コミュニティに関わってきます.
かく言う私もその一人です.大前提として PHP は OSS であり PHP そのものの発展には PHP そのものの改善や PHP の利用拡大が不可欠です.
これらが主だと知りながら,その外から関わっています.
 
そんな私が PHP コミュニティに「貢献したい気持ち」を繋げるべく,どう考えて,動いているのかをお話しします.

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

PHPerのためのいまさら聞けないジェネリクス入門

77web 菱田裕美

ジェネリクス活用していますか?PHPでは言語仕様としてジェネリクスは実装されていません(2024年9月現在)が、近年では主に静的解析やIDEによる補完のためにphpdocに記述して利用されています。
そんな中でもずっと食わず嫌いでジェネリクスを使わずにいた私が、フロントエンド実装のためにTypeScriptを体験して「ジェネリクスを完全に理解」してから、PHPでも便利に活用できるようになりました。
このトークでは一年前の私と同様に食わず嫌いしているPHPerの皆さんのために、

  • ジェネリクスって何?
  • ジェネリクス書くとどう嬉しいの?
  • こういう場合はどう書けばいいの?

など、いまさら聞けないジェネリクスのあれこれをこっそりお話しします。
食わず嫌い勢のPHPerのみなさんに、週明けから「ジェネリクスなんて前から知ってるけどなにか?」という顔で活用してもらえることを目指しています!

2
LT(5分)

tblsから始めるDBスキーマ可視化入門

takeokunn たけてぃ

概要

PHPでWebアプリケーションを作る際、ほぼ全てのケースでデータ永続化の為にデータベースを利用するでしょう。
長年運用していくにつれ、テーブル数やカラム数の増加によって、認知コストやコミュニケーションコストが増加する一方です。
これらの負荷を下げる為に「DBスキーマを可視化する」ということは非常に有用であり、tblsは継続的な運用に耐えうるだけの機能を持ち合わせています。

本トークではtblsを用いたDBスキーマ可視化の実例を上げつつ、具体的なツール導入とCI設定の方法を紹介していきます。

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

  • tbls紹介
  • 運用例紹介
  • tbls新規導入と基本的な設定
  • GitHub Actions活用方法
4
ワークショップセッション(100分)

PSR-20 Clockを使ってみよう

77web 菱田裕美

PSR(PHP Standards Recommendations, PHP標準としての推奨)として提案されて"Accepted"受け入れられた中で最も新しいものがPSR-20 Clockです。
皆さんはコードを書くときにClockを使ったことがありますか?
Clockは日付や時刻を扱うアプリケーションを書くにはとっても便利です。
ご提供するサンプルアプリケーションを実際にリファクタしてもらいながら、Clockを使って日時を扱うアプリケーションを書く便利さを体験してもらうハンズオンです。

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

TDD、テスト以前について~リーダブルコード再考~

ザキ89

なかなか修正が捗らないレガシーなコードがどのサービスには多かれ少なかれ存在すると思います。
そうしたサービスに対して真正面からテストの導入をするにできるかというと実際の現場においては難しい面があると私は感じています。
TDDやテストファーストは、これからのサービスを長く使い続けられる環境を整えるためには素晴らしい設計思想です。
そうした思想を取り入れるにあたり、現状のコードを改善するにあたり、少なくとも1歩でも前に進めるためにできることについて話をいたします。

・日本語のコメントは優秀(しかし時に牙をむいてくる)
・図を描く(UMLであれ、ユーザーストーリーであれ)
・コードに意味のまとまりを持たせる
・ユビキタス言語で語ろう

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

実演!CSVダウンロードパフォーマンス改善

takaaki_w しみたか

本セッションでは、CSVファイルのダウンロード速度が遅すぎて切り戻しになった知見をもとに、Laravelアプリケーションのパフォーマンス改善のデモンストレーションを行います。
「頑張って作ったのに遅すぎて使ってもらえない」では悲しすぎるので、ご参考にしていただけますと幸いです。

以下のテーマに沿ってデモをしていく予定です。
・ しくじり談
・ DBからのデータ取得時に気をつけること
・ 取得したデータを加工するときに気をつけること
・ 加工したデータを出力するときに気をつけること

キーワード
・ Eloquentとクエリビルダ
・ N+1問題
・ メモリ
・ ジェネレータ

想定視聴者
パフォーマンスを意識したコードを書ける・レビューができるようになりたい方

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

PHPUnitを低速化する技術

takeokunn たけてぃ

概要

PHPUnitはPHPテストフレームワークのデファクトスタンダードとして長年使われており、普段PHPを書いてる方であれば目にしたことがあるツールの1つです。
プロジェクト規模が大きくなればなるほどテスト数が増加し、PHPUnitの実行時間が増え、CI待ちがボトルネックになるといったことが多々あります。
今回はPHPUnitをあの手この手で低速化する方法をお伝えすることによって、逆説的にPHPUnitの実行速度劣化を防ぐ考え方が身につきます。

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

  • PHPUnit実行速度とボトルネックの計測の仕方
  • 並列化やDB I/Oが実行速度にどれくらい寄与するか
  • etc...

ターゲット

  • PHPUnitが遅いプロジェクトを担当している方
  • 現状のPHPUnitの実行速度を速めたい方
  • PHPUnit自体の仕組みを理解したい方
2
LT(5分)

不要コードを消す技術

77web 菱田裕美

あなたのプロジェクトの不要コード、消せてますか?
ある程度の期間、保守しながら運用を重ねていると不要になるコードが出てきます。不要コードをいつまでも残していると、コードベースが時とともに肥大化したり、アタックの糸口になったり危険がいっぱいです。

  • どこからもリンクされてないページ
  • どこからも呼び出されていないメソッド、関数
  • どこからも参照されていないクラス、定数
  • フロントエンドやクライアントアプリから呼ばれなくなったAPIエンドポイント
  • APIドキュメントに載っておらず誰も呼び出していないserver to server API

これらの不要になったコードをどうやって見つけて、削除していますか?
使われていないコードを見つけ、消したいコードが確実にどこからも使われていないことを確認して、安全に削除するテクニックについてライトニングにお話しします。

6