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

爆速でプロダクト開発をするために意識していること

gennei げんえい

我々はのチームはつい最近結成されたら新チームです。チームも未熟でありながら何を作るかも決まっていませんでした。
そんなチームが顧客の要望に応えたい気持ちはあるものの人手も多いわけではないのでできることは限られます。

しかしこのチームが爆速にプロダクト開発をしています。
どんどん動くものができており、スプリントを進めるたびに機能は増えていき、スプリントレビューで改善のフィードバックをもらっています。

どのように開発を進めているのか、意識していること、テクニック、秘訣を教えます!

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

初対面の PHP アプリケーションを理解する

shin1x1 新原雅司

新しいチームやプロジェクトに参加した際には、まずシステム全体を大まかに理解することが重要です。これはすべてのコードを理解するわけではなく、システム全体の構造やその役割を把握することです。全体像を理解することで、自分の担当機能がどのようにシステム全体に影響を与えるかを見通せるようになり、自信を持って開発に取り組むことができます。この知識は、バージョンアップ対応やパフォーマンス改善、アーキテクチャ変更など、システム全体に影響するタスクで特に重要です。

本セッションでは、初見の PHP アプリケーションの全体像を掴む方法を紹介します。

このセッションでは、以下の内容を含む予定です。

  • ビジネスにおけるアプリケーションの立ち位置
  • PHP、拡張、パッケージの把握
  • Xdebug デバッガでの追跡
  • アプリケーション IO を見る
2
採択
2024/12/22 14:55〜
トラック3 - 4F コンベンションホール 梅
レギュラートーク(25分)

普通のエンジニアがLaravelコアチームメンバーになるまで

avosalmon 濱崎竜太

私はコンピュータサイエンスの学位も海外留学の経験もない普通のエンジニアです。
そんな私が今年6月にLaravelのコアチームに加わり、グローバルなチームのなかで尊敬するメンバーたちと共に日々開発に携わっています。
このセッションでは、私が2014年にLaravelに出会ってからコアチームに加わるまでの経緯や、グローバルなLaravelコミュニティでどのような活動をしてきたか、そしてコアチームに加わってからの活動についてお話しします。
特別な経歴がなくても、行動することで可能性が大きく広がるということを、私の経験を通じてお伝えできればと思います。

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

エンジニアも顧客理解を深めようとすることで見えてきた価値

sanogemaru Genki Sano

ソフトウェア開発において、顧客理解や問題発見は、しばしばPOやデザイナーの役割とされます。しかし、私たちのチームは「解くべき課題について誰も具体的なイメージがない」という状況に直面し、チーム全員で顧客への理解を深めることを選択しました。

本セッションでは、PO1名とエンジニア2名で構成された新チームが、全員でペルソナを考え、ユーザーインタビューを実施し、プロトタイプを作成・検証するプロセスを共有します。そして、この取り組みを通じて、素早いアウトプットの重要性を再認識できた経緯について、エンジニア目線でお伝えします。

主な内容:

  • チーム全員で顧客理解を深めるための具体的な進め方
  • エンジニアが顧客理解を深めることの意義と効果
  • 素早いアウトプットを出すために私たちができること

本セッションを通じて、エンジニアが顧客理解を深めることの意義について考えるきっかけになると嬉しいです。

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

個人メモからドキュメントへ〜属人化解消!個人の知見をチームの知見にする技術〜

yukinofu815 曽根友希

【概要】
ドキュメントを作ってチームに情報共有したぞ!これで属人化解消!と思ったら未だに自分宛に問い合わせが来る???こんなはずじゃなかったのに...皆さん、このような経験はありませんか?
せっかくドキュメントを用意しても、チームに読んでもらえない・理解してもらえないのでは作った意味がありません。
本トークでは、日常的な個人メモの取り方やそれをドキュメントに成長させる方法、さらにドキュメントを通じて業務の属人化を解消する方法をお伝えします!

【対象者】
・業務の属人化を解消したい人
・個人メモ・ドキュメントの作成が苦手な人

【目的】
・個人メモ・ドキュメント作成のポイントが分かる
・ドキュメントを通じた属人化解消

【話すこと】
・まずは個人メモから!記録のコツ
・個人メモとドキュメントはどこが違うの?
・ドキュメントを成長させるために必要なこと
・属人化解消のメリット

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

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

saku_rye さくらい

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

話すこと

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

ADHD と共に働く

yuksew 内藤勇介

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

テーマ

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

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

katzchum katzumi

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

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

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

テストデータの作り方 2024

sizuhiko sizuhiko

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

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

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

1
レギュラートーク(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
レギュラートーク(25分)

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

77web 菱田裕美

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

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

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

2
レギュラートーク(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
レギュラートーク(25分)

さよなら Formファサード・Htmlファサード

soh_1121_ 佐藤 壮一

Form・Html ファサードは laravelcollective/html パッケージに含まれています。
このパッケージは放棄されており、spatie/laravel-html への移行が推奨されています。
私の関わるサービスでの使用箇所は約1,700箇所…!
移行ツール「Shift」で移行しましたが一筋縄ではいかず…

今回は laravelcollective/html の Shift による移行で、苦労して得た知見をご紹介します。

■ 内容

  • laravelcollective/html から spatie/laravel-html への Shift による移行方法
  • Shift でうまくできなかったところ
  • 移行前後の違い

■ 対象

  • laravelcollective/html の移行を検討している人
  • 移行ツール Shift がどういうものか知りたい人
レギュラートーク(25分)

「常に最新版のPHPでテストされている」を実現する持続可能な自動テスト戦略

NakMeKtt 仲見川

近頃ではCI上でPHPUnit等を用いたテストが自動的に実行される環境も多くなっているかと思います。
同時に、PHPやLaravelなどフレームワークの開発も盛んに行われており、従来のLTS版で3〜5年使うというサイクルから最新バージョンへの迅速な追従が求められるようになってきました。

CI環境でPHPの最新バージョンリリースを自動検知し、自プロジェクト用のDockerイメージのビルドからテスト実行までを自動化していきます。

バージョンアップに向けた準備を自動で進める事でバージョンアップのハードルを下げましょう。

技術スタック

  • Docker
  • GitHub Actions
  • Google Cloud Artifact Registry

こんな方にお勧め

  • PHPのバージョンアップに課題を感じている方
  • 新しいPHPバージョンでのテストを効率的にしたい方
4
レギュラートーク(25分)

仕事を終わらせる技術

onigra_ onigra

仕事は油断すると、いつまでもそこに残り続け、意義が忘れ去られ、誰がボールを持っているのか、何をもって完了とするのかが時々わからなくなります。

あなたのチームのタスクボードに、何日も動いてないチケットはありませんか?
そのチケットはヌルッと翌週に持ち越され、それに誰も疑問を抱かない状態が続いていませんか?
スプリントの期間内に終わらないと、もっと早く気づけた可能性はありませんか?

仕事は終わらせる意思を持たないと終わりません。
本トークでは、私がソフトウェア開発に携わる中で得た、仕事を終わらせるために必要な考え方や、対策についてお話します。

話すこと

  • 仕事を終わらせるパワーについて
  • 仕事を終わらせるための基本的な考え方
  • 仕事が終わらない兆候を察知するコツ
  • 察知した際に取れるアクション

話さないこと

  • PHPに関する話
2
レギュラートーク(25分)

1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント

push_gawa プッシュ

テストコードを書くのって、最初はハードルが高いですよね?
私も最初はまったく書けずに悩みました。しかし、今では少しずつ書けるようになり、テストのタスクを自ら進んで取りに行くまでになりました。

この発表では、PHPUnitを初めて触れた時の挫折から、業務を通じて学んだこと、そしてどのように成長していったかをジュニアエンジニアの視点でお話しします。また、テストを書くことが私の開発プロセスにどのような変化をもたらしたのかについても共有します。

話すこと:

  • 初めてテストコードを書いた際の失敗と学び
  • テストを書くために必要な考え方や技術を習得したプロセス
  • 業務経験から得れることができたこと
  • テストを書くことで開発がどのように変化したか

対象者:

  • これから自動テストを学ぶ方
  • テストを書くことに苦手意識を持っている方
6
レギュラートーク(25分)

安心安全にPHP/Laravelをバージョンアップしたい人必見!静的解析ツールを活用しよう!

kotomin_m ことみん

静的解析ツールは「ここが良くないから、こういうふうに直すといいよ」と教えてくれる便利ツールです。
開発環境やCIで導入している方も多いのではないでしょうか?

私が開発するプロダクトにも導入されていましたが、PHPのバージョンアップに取り組んで初めて「静的解析を導入するとってこんなに嬉しいのか!」と感動しました。

このトークでは、初心者〜中級者向けに、安心安全なバージョンアップという観点に絞って、静的解析のスゴいところや使いどころを紹介します!
これからバージョンアップをする人はもちろん、コードの品質を高めたい方にとっても役立つ内容です!

話すこと

  • 静的解析ツールの紹介(PHPStan、PHPCS、PHPMD)
  • 静的解析ツールをCIに組み込む重要性
  • バージョンアップするときのメリット
  • よくあるエラーとその対処法
9
レギュラートーク(25分)

Laravelのログの仕組みを理解する

9rokirishima くろきり

私たち開発者にとってログは非常に重要です。
開発時のデバッグやローンチ後の障害解析など、ログを出力していることで救われたシーンは多かれ少なかれあるのではないでしょうか?

そんな私たちを助けてくれるログですが、Laravelでは様々な設定やカスタマイズが可能です。
しかしどのような設定ができるのか理解するところまで手が回らず、デフォルトのまま運用してそのままという悲しいシーンを見ることも多々あります。

このトークでは実際にログ出力する際にLaravelのLogManagerがどのような処理を行なってログを出力するのか、各設定の詳細、Laravel10より追加されているLaravelPailを用いたログの限定出力のやり方等をお話ししますので、今後のログ運用の助けになれば幸いです!

2