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

いいからぜんぶドキュメント化しようぜ

YKanoh65 加納悠史

仕事の内容をドキュメント化することで得られるメリットはたくさんあります。

  • 多数の人に内容を共有できる
  • 言った言わなかったの議論にならない
  • 後から見返して経緯がわかる

しかし、実際にドキュメントに起こそうとすると面倒に感じ、なかなか実行に移せていない人も多いのではないでしょうか?
また、チームメンバがなかなか仕事内容をドキュメントに起こしてくれず、困っているマネージャーもいることでしょう。

たしかに、物事をドキュメントに起こすことは面倒です。
しかし、逆にドキュメントへ起こさないことによってどのような問題が発生するかを知ることができればドキュメントに起こす気になるのではないでしょうか?

この発表では、仕事内容をドキュメントに起こさないことで発生するデメリットの具体例を示し、なぜドキュメント化をする必要があるのかをドキュメント化を避けるメンバ向けに説きます。

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

「絶対に炎上させません!」炎上必至と言われたプロジェクトを着地させた実践的手法

YKanoh65 加納悠史

開始前から炎上を宣言されているプロジェクトに参画したことはありますか?

私は昨年、そんな「炎上必須」と言われたプロジェクトに参画し、プロジェクトのマネジメントを行い、無事に完了させることができました。
本トークでは、このプロジェクトにおいて、炎上を抑え込むためにチームで行なった施策とその効果を紹介します。

自社プロダクトを開発している場合、大抵はリリース日程をずらすことで、大炎上を避けることができるでしょう。しかし、稀に何らかの理由で納期必須の開発が行われることがあります。
私たちのチームは、外部システムとの連携が必要なプロジェクトを短納期で開発することになりました。
プロジェクト開始当初のスケジュールでもすでに期限通りの開発は厳しく、また複数の組織が関係することによる仕様決定の遅れが予想され、会社内でも誰もが炎上を覚悟していました。

そんな中、開発チームは様々な工夫をすることで無事高品質な状態でスケジュール通りに開発を終えることができました。
仕様策定、開発手法、チーム構成などをどのように工夫し、どんなカードを切り、工数を抑え、稼働を確保し、プロジェクトを推進したか... 聞いた人が自分のプロジェクトでも活かせるようにそのTipsを解説します。

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

PHPプロダクトにおける開発生産性向上の実践

zosokh ヒエイカザト

開発生産性はソフトウェアの品質と市場投入へのスピードに直結します。本トークでは、PHPをメイン言語で扱うチームとして、又は1人のPHPerとしてプロダクトの開発生産性向上へ行ったことを紹介します。

  • チームで開発生産性に向き合う文化醸成や改善への行動。
    ┗どのようにPRを分割するか・設計時に考慮すべきポイント・チームの士気向上などの変化について
  • 中長期的な開発生産性向上への行動。
    ┗テストコード設置やPHP・フレームワークバージョンアップ運用とアプリケーション基盤作りについて
  • リリースサイクルを上げるための取り組み。
    ┗PHPプロダクトでのFeature Flag導入や運用フローについて

個人・チーム開発で生産性向上を目指していける具体的な手法や経験談の話をします。

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

入門、backward compatibility

_fs0414 fujitani sora

backward compatibility、訳すると「後方互換性」です。タイトルをかっこ良くしたかったので英語にしています。
本発表は、リリースエンリニアリングの観点から、後方互換性というテーマに絞った内容になります。
サーバ運用やSchema管理、テスト環境におけるデータの差異がもたらすリスク、Mobile Appのバージョン管理まで、リリース時に頭を抱えない為のTipsと実例について解説します。

・リリースエンジニアリングと「後方互換性」
・テストが担保する後方互換性と、担保しない後方互換性
・サーバ運用時の後方互換性と、リリース順序、ロールバック
・GraphQL schemaの後方互換性と、Schema変更時のルール
・Mobile appの後方互換性と、強制アップデートのユーザー影響

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

高年齢化が進むPHPer界隈だからこそ、読書会をしよう〜読書×意見交換=素敵な気づきの法則〜

saita_shinya 斉田真也

概要

我々PHP界隈は最近、高年齢化が危惧されています。
「若手が居ない、育たない」と嘆いているそこのあなた!!具体的に対策できてますか?
その原因は主に以下の2つと考えます(偏見)

  • 凝り固まったシニア層がやり方を変えないため新しい風が起きにくい
    • 新しい技術の導入が最近少なくないですか?
  • 若手が参入しようにも入る余地がなさそうに見える
    • 若手が活躍する場が限られていませんか?

この問題を解決するために最適なソリューションが読書会です。
他の言語でもフレームワークでもフロントエンドの技術でも。
何でも良いので、普段自分がいない集団の読書会に参加してみましょう。
今まで知らなかった新しい考えや全然違った常識にきっと打ちのめされるはずです。
でもそれで良いんです。知らないことを知るっていうことはそういうことです。
シニアエンジニアもまだまだ知識とチャンスを得る機会があるんです。

我々シニアのエンジニアがもっとネットワークを広げ、かつ若手を取り込むための第一歩。
その読書会がいかに良いソリューションであるかをお話します。

対象の人

  • ベテランのエンジニア
  • PHP以外の界隈と普段交流を持たない人
  • 若手にもっと来て欲しい人

得られるもの

  • 若手を増やすことの要素で何を大事にしないといけないか
  • 凝り固まった価値観に意外と支配されているという気付き
  • 自分が普段属していないコミュニティの人たちと触れ合うことによって得られる視点や知識
2
レギュラートーク(20分)

移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略

ryu

私はアドテクノロジーを扱う会社で、広告配信の制御や入稿を行うための管理システムの開発を行っています。そのシステムでは社内用の広告配信設定の管理、メディア用レポート閲覧、広告配信設定機能が行えます。

歴史的経緯から3つの管理システムが存在してます。

  • 10年以上の歴史を持つ古い社内・社外向け管理システム(PHP + CodeIgniter)
  • 社内向け新管理システム(PHP + Slim)
  • 社外向け新管理システム(Go)

1番のシステムは10年以上保守運用されており、システムも運用も把握しきれない部分が多く、フレームワークの保守も厳しくなってきました。過去に何度も古い管理システムを葬ろうと挑んでは、志半ばで取り組みが終わることを繰り返してきていました。今回、古い管理システム の葬りが完了する目処が立ちました。

今回の発表では、 「過去、なぜ、移行しきれなかったのか」、「今回、なぜ、移行の目処が建てられたのか」、「今回の移行戦略」 をお話します。

具体的には以下の戦略を取りました。

  • ロードマップを作成
  • ステークホルダーに宣言
  • 移行をやり切るためのサポート(ヒアリング、移行アナウンスや進捗の分かるシートへのリンクを表示)
  • 旧管理画面の解像度を上げる工夫(Xdebug によるデバッガ、OpenTelemetry + Jaeger による SQL ログなど)
  • 自動テストの拡充

聞いてほしい人

  • 長年改修されてきたシステムのリプレイスや移行を考えている人
  • 移行タスクが志半ばで終わった経験がある人
  • フルサイクル開発の仕事の進め方に興味がある人
2
レギュラートーク(20分)

スパゲッティコードが散在するプロダクトにE2Eテストを導入してプロダクトの品質の担保に成功した

osamu_insect 藤掛治

私が担当しているメール共有サービスのメールディーラーではE2Eテストを導入することで、一定以上の品質を担保することに成功しました。

E2Eテストを導入したことの効果やテストコードの実装やテストケースの作成で工夫しているポイントなど、
メールディーラーのテクニカルリーダである私が可能な限り具体的に事例をもって説明いたします。

メールディーラーは2001年にローンチしましたが、フレームワークを導入しておらず、
DBアクセスとHTMLの生成をひとつのプログラムで行っています。

内部構造のアーキテクチャもさることながら、プログラム構造の陳腐化がリリースを行うごとに進みました。
いわゆる「スパゲッティコード」が散在し、それらがサービスの品質にまで影響するようになりました。

具体的には、ある共通関数が別の共通関数を呼び出し、
それが繰り返されることでプログラムが複雑にネスト化しています。

その結果、コード全体の把握が難しくなり、修正前に十分な影響調査ができない状況が生まれました。
このような状況下で、思ってもみない機能に不具合が混入し、
新機能のリリース直後に改修していないはずの機能で「画面が表示できなくなる」といった致命的な障害が発生しました。

そこで対策としてE2Eテストの導入と自動化を行いました。

通常の開発と並行して約3ヶ月という期間で273画面に対してテストコードを実装し、
導入後は「画面が表示できなくなる」といった致命的な不具合の発生を防止することができました。

限られた期間とリソースでどのようにして、当初の目標通りの成果を出すことができたか?をご説明いたします。
本セッションを通じてE2Eテストの導入や品質担保の参考になれば幸いです。

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

PHPでPromiseの世界を「完全に理解」する

o0h_ きんじょうひでき

Promiseについて、「分からん!」から「そんなものもあるんだ」を経て、「そういう風になっていて、そう動くのか」に至るためのトークです。
Promises/A+の世界観や、概念レベルの「何を課題とし、どう解決を試みるパターンなのか」の共有から入り、
PHPでの実装例を参考にしながら「こうやるんだね」を見ていきましょう。
最後には、低機能で愚直なPromiseオブジェクトを生み出す所まで話を進めます。

PHPを利用した普段の開発では、 Promise を目にすることはあまり無いかも知れません。
しかし、ライブラリの中身などを読んでいると「意外と出てくるよな」と私は感じました。
guzzlehttp/promisesやreact/promiseといったPHP実装が、しばしば登場します。
コイツと仲良くなれたら、少し幸せになれるのではないか…?と感じたので、解剖してやろうと考えたのです。

特に、「Guzzle使っていてPromiseクラス出てきたけど良くわかんないで雰囲気でやっているなー」という人には役に立つはずです。

概要

Promiseパターンについて興味がある人に向けて、概念の説明とPHPでの実装例を示します

このトークで得られるもの

  • Promiseについて知る
  • 「PHPでできること」「PHPっぽい実装」について知る

あまり話さないこと

  • ライブラリ自体の詳細、活用法

対象とする人

  • 「Promiseって聞いたことがある気がするな」レベルの人
  • 「ふんわりとは知っているけど、PHPでの実装は考えたことがなかった」という人

おそらく対象外であろうと思われる人

  • JavaScriptやPythonなどの他言語で、日常的にPromiseを扱って精通している人
3
レギュラートーク(20分)

生成AIと読み解くLaravelの進化史:コミットメッセージからの洞察

dbk2021 坂尻 愛明

PHPフレームワークとして広く採用されているLaravel。その最初のコミットは 2011年6月8日 のことでした。
それから約14年。Laravelは進化の過程で何を大切にし、どのような機能追加を重ねてきたのでしょうか。
本トークでは、ChatGPT、Claude、Geminiを活用し、14年分のGitHubのコミットメッセージを分析。Laravelの設計思想の進化を取り上げます。

特に以下の観点から解説します:

  • 黎明期のシンプルさから、モジュール化への進化(Laravel 3-4):Composerの採用とFacadeパターン導入
  • 現代的アーキテクチャへの転換(Laravel 5-8):サービスコンテナ導入がもたらした開発体験の変革
  • パフォーマンスとスケーラビリティの追求(Laravel 9-):Octaneの採用に見る実行モデルの転換点

生成AI時代だからこそ、コードを書くだけでなく「なぜそのような設計を選んだのか」を理解することが求められる今日。
先人たちの試行錯誤から、私たちの開発に活かせるアイデアの種を見つけましょう!

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

Alpine.js を活用した Laravel MPA フロントエンド最適化戦略

tzm_freedom 田実 誠

リッチなUIを実装するために多くのアプリケーションでjQueryが利用されています。JavaScriptのAPIやCSSの機能拡充によりjQueryの出番は減ってきているものの、導入の簡単さ、APIの使いやすさ、プラグインの豊富さから「MPAで画面の一部をリッチなUIにすること」においてはjQueryはまだまだ最適な技術の1つです。しかしながら、DOM操作の命令的なコードはロジックやUIが複雑になると保守性が悪くなる傾向があります。

一方で、ReactやVue.jsなどのフレームワークは、宣言的UIにより保守性が上がるものの、学習コスト・運用コストの点でtoo muchになるケースも少なくありません。実際、LaravelをAPIサーバーとして利用するようなフルSPAよりも、MPA + 小〜中規模のJavaScriptで十分に要件を満たすアプリケーションがほとんどではないかと思います。

そこで、jQueryに代わる選択肢として注目されているのがAlpine.jsです。Alpine.jsはMPAでリッチなUIを構築するのに適したJavaScriptフレームワークです。Livewireの作者が開発したOSSですのでLaravelやLivewireとの連携も簡単で、ビューファイル内に宣言的UIとして実装できるため保守性が高いことが特徴です。

本トークではLaravel MPAにおけるフロントエンドの実装手法についてお話します。Alpine.jsを使ったフロントエンド実装を中心に、宣言的UIと比べたときのjQueryの優位性、ViteによるビルドやNodeモジュールを使ったバージョン管理、JavaScriptの管理パターン、Blade連携、コンポーネント化について紹介します。このトークが、Laravel MPAにおけるフロントエンド技術選定の参考になれば幸いです。

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

Laravelアプリケーション開発にこれは入れよう 2025

tzm_freedom 田実 誠

LaravelはWebアプリケーションを簡単に早く作成できる人気のフレームワークの1つです。Laravel本体の機能は非常に充実しており、3rd partyライブラリを使わなくても柔軟な開発ができます。しかしながら、デフォルトの設定や機能だけではLaravelの強みを十分に活かしきれません。例えば、マジックメソッドを多用したフレームワークなため、コア機能だけではEloquentモデルのプロパティやFacadeメソッドのコード補完が効きません。そこで laravel-ide-helper のライブラリを使うと自動生成されたヘルパーファイルによりコード補完が効くようになり、開発効率が上がります。不正なプロパティ・メソッド呼び出しもPHPStan/Larastanなどの静的解析ツールを入れることで事前検知ができ、より堅牢な開発ができます。

本トークではLaravelのアプリケーション開発で入れるべきツールや設定について紹介します。コード補完、静的解析、ロギング、パフォーマンス改善、デバッグ、フロントエンド、フォーマッター、ライブラリの定期アップグレードなど、それらを導入する理由やできることを紹介します。

このトークで紹介するツールや設定により、皆様のLaravelアプリケーション開発がもっと効率的で堅牢で楽しいものになれば幸いです。

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

外部にひっぱられない! API を呼び出す時に専用の Result 型を作って型安全性を守ろう

kitkattsun0531 勝佐拓也

外部システムと連携を行うときに、頭を痛めるのが ”APIでの連携” です。
API で機能連携を行う場合、みなさんも一度はこんな経験があるのではないでしょうか?

「レスポンスデータが扱いづらい」
「エラーレスポンスを適切にハンドリングできない」

私たちのチームでも同様の課題に直面しましたが、
API 呼び出し時に専用の Result 型 を用意することで、解消することができました。

これであなたも、API の仕様に惑わされない実装ができるようになります。

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

「実装は今日からです。仕様はまだ決まっていません」〜オニオンアーキテクチャで短納期を切り抜けた話〜

kitkattsun0531 勝佐拓也

「実装は今日からです。仕様はまだ決まっていません。」
チームに告げられた計画はあまりに無謀で、誰もが炎上を覚悟した─────。

私たちのチームではスケジュールの都合上、仕様が確定する前に実装に着手する必要がありました。
この危機的状況を切り抜けるため、サービスで採用していた ”オニオンアーキテクチャ” の利点を最大限活かし、
ドメインモデルを中心として ”仕様が決まっているところから着手する戦略” を取りました。
この戦略により、仕様の確定を待たずに手を動かせたことによって、スケジュールの遅延を防ぐことに成功しました。

実際にオニオンアーキテクチャによって、開発がブーストした事例を紹介します。

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

PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて-

o0h_ きんじょうひでき

オブジェクト指向大好きPHPerのみんなで、構造化プログラミング以前のスタイルで考えてみよう というトークです
クラスも無ぇ、制御フローもマトモに無ぇ、globalやgoto頼り!!!
非構造化の世界で、ぼくらの「認知負荷」は、どうなっちゃうの・・!?


開発生産性や変更容易性が特に重んじられる昨今、「認知負荷」との闘いに多くの時間が費やされます。
プログラミング言語もまた、こうした課題を解決する「あるべき姿」へと進化してきました。

一方で、「解決済み」の問題は見えにくいものです。
関数を定義できる、if-elseが使えることに、感謝の気持ちを抱いていますか?

それを理解するためには、温故知新のアプローチが役立ちます。
時代を遡ってみましょう。
オブジェクト指向以前の・・・手続き型?いいえ、もっと根源へ──
脱・構造化です!

この探求の先に、「今とは全く違うように見えるパラダイム」と「現在の姿」が地続きであると実感することでしょう
そして今の世界にも通じる「良さ」の再確認へと繋がるトークを提供します

みんなでスパゲティを食べに行きましょう

対象者と得られること

  • 「どうしたら読むのに疲れるコードを生み出せるのか」に興味がある人
  • 逆説的に「普段の開発で避けるべきこと」を知る

話すこと

  • 構造化プログラミングの簡単なおさらい(定義・歴史)
  • 「非構造化」のルールに則って書いたコードの紹介: お題 => 簡易CMS
  • これらを踏まえ「我々が普段やっている&戦っていることはどんな意味があるの?」の確認

「非構造化」のルール(一部)

  • 使わない: クラスや例外、while(true)以外のループ、名前空間
  • 制限する: ユーザー定義関数 => 引数は使わない、値を返さない
  • 使う: gotoや標準関数は使う
1
レギュラートーク(20分)

アーキテクトと美学:美しさがシステムにもたらす秩序と未来

nrslib nrs

システム設計における「美しさ」は単なる見た目や感覚の問題ではありません
それは設計を維持し、守り、そして未来へ導くための重要な基盤です
本トークでは「美しさ」を設計の中心に据える意義と、それがアーキテクチャ全体の秩序や一貫性をどのように支えるのかを深掘りします

美しいコードやシステムに触れ、感動を覚えたことはないでしょうか
技巧を凝らしたコードに感嘆し、理路整然としたシステムの完成度に心を打たれた経験があるかもしれません
美しさには人の本能に訴えかける抗いがたい魅力があります
この魅力はアーキテクトが最も大切にする「システムの未来を形作る力」を秘めています

本トークでは以下の内容をお話します

  • 美しさの価値:美しさがなぜ有用で、アーキテクトにとって欠かせない要素であるのか
  • 審美眼の鍛え方:美しさを見極め、活用するために必要な視点やアプローチ
  • 実践的な活用法:美しさを設計プロセスに組み込み、システムの秩序を守るための具体的な方法

対象者:

  • システム設計やアーキテクチャに関心のあるエンジニア・リーダー
  • 持続可能な設計を目指す方
  • チームでの設計文化を改善し、秩序あるアーキテクチャを構築したい方

美しさが設計にもたらす力を探求し、設計の未来を描くインスピレーションを手にしましょう

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

レガシープロダクトの画面部品をUIコンポーネント化 〜駆逐してやる!!このプロダクトから... 一匹残らず!!〜

yamy096454848 yamamuuu

私が現在開発に携わっている販売管理サービス「楽楽販売」は誕生して15年以上経つプロダクトです。
フロントエンドにフレームワークは利用しておらず、長年にわたり静的に生成されるHTMLの画面部品コードがコピペされ続けており、共通化が行われていない状況に陥っています。
その結果コピペコードは新画面を作成するたびに増殖していき、PhpStormが親の仇の如く「Duplicated Code」を指摘してきます。

この課題を解消するため、私たちは以下の2つの目標を重視し「画面部品のUIコンポーネント化」に取り組みました。
 ・新しい画面を作成する際に、コピペする必要がない環境を構築する
 ・画面の構成パーツに何があるのかを容易に把握できる仕組みを作る

ゴールは以下2点です。
・複数画面から共通利用可能なUIコンポーネントを作成する
・将来的なコピペを駆逐すること

本セッションでは、取り組みの背景の課題から具体的な解決策、さらに実践例までを詳しくご紹介します。

■お話しすること
 ・なぜUIコンポーネント化が必要か
 ・どのようにコンポーネント化を進めたか
 ・コンポーネント部品を活用してもらうための施策

■想定する視聴者
 ・技術負債を解消したい人
 ・フロントエンドのフレームワークを利用していない人
 ・画面部品のUIコンポーネント化に興味がある人
 ・レガシープロダクトから脱却したい人

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

Slimで挑む!OpenAPI活用によるAPI開発の効率化と品質向上

takaram71 荒巻拓哉

OpenAPIはAPIの仕様を記述するための仕様で、リクエストやレスポンスの詳細をYAMLまたはJSON形式で記述することができます。これを採用すると、記載内容を統一できる、バージョン管理しやすいなど様々なメリットがあります。
しかし、単なる仕様書と考えていると、徐々に実装との乖離が生まれてしまうリスクがあります。

これを防ぐための仕組みとして、OpenAPIドキュメントを使ってコードを生成したり、実行時に検査をする手法があります。
本セッションでは、Slimフレームワークを採用したシステムにOpenAPIドキュメントを用いたバリデーションとテストを導入した実例をご紹介します。
具体的には以下のような内容を含みます。

  • OpenAPIを導入する際のポイントと注意点
  • 具体的な実装方法 (league/openapi-psr7-validator)
  • 導入の効果と進め方の反省点

Slim以外のフレームワークをお使いの方にも役立つセッションになるはずです。

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

技術的負債を正しく理解し、正しく付き合う

shogogg 河瀨 翔吾

ソフトウェア開発を行うエンジニアで「『技術的負債』という言葉を知らない」という方は今日においてほとんどいないと思います。その一方で「技術的負債とは何か」を正しく理解し、自信を持って説明できる人はあまり多くないように思います。その相手が非エンジニアであればなおさらです。

また、技術的負債についての理解が不十分なことによる誤解や偏見も散見されます。例えば「技術的負債=悪」というイメージから無用・無謀なリファクタリングを行ったり、逆に放置しすぎた結果、ビジネスにおけるリスクが表面化してしまうこともあります。

このトークを通じて技術的負債についての理解を深め、技術的負債とどのように向き合えばよいのか、その具体的なアプローチを考えるきっかけにしていただければと思います。

お話しすること

  • 技術的負債とはなにか
  • 技術的負債はいつ・どうして生まれるのか
  • 技術的負債を放置することで発生するビジネス面・技術面でのリスクとは
  • 技術的負債を最小限に抑えるいくつかのテクニック
  • 技術的負債とどう付き合っていくべきか
2
レギュラートーク(20分)

Laravelを写経せよ!

ittoku_ksm nori

メンター「力がほしいか、、、?」
私「ほしい!」
メンター「ならばLaravelを写経せよ」
私「???」

会社のメンターに実力をつけたいと相談したところ、自分の使っている道具を細部まで知ることによって、誰よりも強くなれると教えられました。
幅広く使ってもらうように作るフレームワークとそのフレームワークを使って作る業務に特化したアプリケーションでは、そもそも作るときの思想が違うのでは?と一度は思った私でしたが、そういう言い訳はやってから言わないといけないと思い、素直に写経を行うことにしました。

そこで写経の際にどのような順番で取り組み、その都度どのようなことを考え、そこで学んだこと、そして写経に意味があったのかどうかという、この挑戦の足跡を伝えていきたいと思います。

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

最速で成長する技術

皆さん、昨年度はどのように成長しましたか?
そして、今年度はどのような成長を計画していますか?

このトークでは、以下の方を対象に

  • キャリアに悩んでいるジュニア層の方
  • 「伸び悩んでいる」と感じている中堅の方

私自身が学習の速さにおいて一定の成果を上げてきた経験をもとに、次のような内容をお届けします。

  • 短期的に素早くキャッチアップするために実践してきた具体的な方法
  • 中期的に無駄なく成果を上げるために意識している戦術
  • 長期的に自身の価値を高め続けるために考えている戦略

このトークを通じて、皆さんが自身の成長を加速させるためのヒントを得られることを願っています。