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

OSSから学ぶ方法入門~PHPStanに学ぶ並列処理~

inoco

このトークでは、OSSから学ぶ方法について話します。

学習のためにOSSに触れるとよいと聞きますが、言うは易し行うは難し、学ぶことにもハードルがあると感じたことはありませんか?

私は丸腰ではコードが読めません。環境を整え、道具を駆使して、少しばかり工夫しながら読み進めてゆきます。このトークでは、PHPStanの並列処理を題材に、一定複雑な処理がどのように実装されているのかを紐解いてゆく過程を見てゆきます。

チュートリアルの次のステップとして、既に稼働実績のある実用的なコードから学ぶことで実践力を高めようという試みです。

このトークではOSSから学ぶことのハードルを下げることを目指します。スキルアップへの引き出しが一つ増えれば幸いです。

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

いつどこで何が何バイト使うか分かりますか? PHP スクリプトのメモリ使用量入門

sji_ch sji

実行中の PHP スクリプト内の各要素は、それぞれがメモリ上に何らかの領域を占有しています。ローカル変数のための領域、配列の各要素やハッシュテーブルを収めるための領域、文字列のための領域、オブジェクトやそのプロパティを収めるための領域。実行中に様々な領域が確保され、そして不要になると解放されたり、意外とスクリプト終了まで解放されなかったりします。

PHP には標準の組み込み関数として memory_get_usage() や memory_get_peak_usage() といった関数があり、呼び出し時点でのメモリ使用量や実行開始からのピーク値を得ることができます。しかし、これらを呼んでも「どこで」「何が」「何バイト」メモリを使っているかまでは追えません。

このトークではスクリプト内の各要素について、処理系内で何がどうメモリを消費するかを時間の許す限り1つ1つ手当り次第に解説します。

5
採択
2024/06/22 15:55〜
Fusicホール
レギュラートーク(15分)

アプリケーションをリプレイスしたら、チームとサービス運用に向き合えた

zosokh チャン

8年運用しているPHPアプリケーションをリプレイスするのにあたって、目的整理とチームに向き合い、奮闘と決断した話をします。

  • リプレイスの目的とやりたい事を整理できた話
  • 運営を続けなからリプレイスへのリソースを割く話
  • 事業決済者へのリプレイス打診の話
  • 解消したかった技術負債へ取り組みと決断。やる決断、やらない決断。
  • リプレイス実行とその後

長年運用しているサービスの技術負債を解消しきれず、リプレイスを検討している方へサポートになれれば幸いです。

レギュラートーク(15分)
U25(25歳以下) 初登壇 九州勢

【VSML/VSS】動画を編集できる言語を作った話

PigeonsHouse 鳩屋敷

みなさんは動画編集をやったことはありますか?
動画編集とは元来めんどくさく手間がかかるものではあるのですが,普段からWebアプリの開発をしている私は,以下のようなことを考えていました.
HTML/CSSのように複数オブジェクトを一つのコンテナのように扱えたら,CSSのように統括して装飾を指定できたら,HTMLレンダラーが相対値から計算して値を指定するように,動画のオブジェクトの時間長も編集アプリが計算して指定してくれたら,もっと楽に動画編集できるのになぁ,と.
そこで私は,HTML/CSSをベースとした,動画の構成を記述する言語を記述することで動画編集を行えるという技術を開発しました.

↓以下の記事でも紹介しておりますが,ここからの進捗についても発表したいと考えております.
https://qiita.com/PigeonsHouse/items/7e3a3c4ed8473a61f4ac

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

ちょっとした自動化のためにパッと書くスクリプトをどこまで作り込むか

okashoi おかしょい/岡田 正平

プログラマーとして生きていると、仕事をする中であるいは日々の生活の中で、ちょっとした自動化のためにスクリプトを書くことがあるでしょう。
そういったスクリプトはすぐに使い捨てるつもりだったり、あとで修正することもなかったりするかもしれません。

このとき、みなさんは「最低限の品質」をどこに置きますか?
いざ、ぱっと聞かれると返答に困るような質問かもしれません。

私のなかではある程度の基準があります。
本トークでは「ちょっとした自動化のためにパッと書いたスクリプト」をいくつかのレベルに分けて、どこまで作り込むかの観点と判断基準の一例をお見せします。

7
レギュラートーク(15分)
U25(25歳以下)

PHPer向けゲーム、「PHP8.3秒チャレンジ」 開発秘話

shunsock shunsock

PHPerKaigi 2024で一千を風靡したPHPer向けゲーム、「PHP8.3秒チャレンジ」の企画や開発の裏話をします!

PHP 8.3秒チャレンジとは、PHPの最新版である8.3をみんなで目指そうというコンセプトのストップウォッチゲームです
8.3秒ぴったりに止めるという至ってシンプルなゲームですが、通常のストップウォッチと異なり、途中から数字が消えてしまうので目押しはできません

このゲームをPR TIMES企業ブースで展開したところ、現地でXでも大変盛り上がりました!
本セッションでは以下の観点から裏話をお話しする予定です!

  • 企画: ゲーム形式・コンセプトの誕生秘話
  • 開発: API・インフラの工数削減話・Leaf PHPによるPHP APIの実装をした話など

このトークは、イベントで何かブラウザを使った出し物をしたい方の参考になることを目標としています✨

5
採択
2024/06/22 15:40〜
Fusicホール
レギュラートーク(15分)

設計の考え方 - インターフェースと腐敗防止層編

okashoi おかしょい/岡田 正平

PHP を含む、クラスベースのオブジェクト指向プログラミング機能を持つ言語(あるいはそれ以外の言語でも)インターフェースを利用できます。
アプリケーションの実装上の設計を考えたことがある人は、インターフェースが使えると何が嬉しいのか?どんな場面で使えばよいのか?と思ったことがあるのではないでしょうか。

本トークでは、また設計の文脈で聞いたことがあるかもしれない「腐敗防止層」というワードとともにインターフェースの使い方、ひいては設計全般に通用する考え方をお話します。

想定聴講者

以下を満たす方が聴講することを想定します。

  • PHP のコードは一通り書ける(フレームワーク上でも可)
  • 機能追加等によって、実装上の設計を考える必要がある(考えたことがある)
  • クラスベースのオブジェクト指向プログラミングにおける「継承」等の挙動はわかる
レギュラートーク(15分)

バリエーションに立ち向かって強くなろう

77web 菱田裕美

開発時に厄介なのはバリエーション。
PHPerは日々フレームワークごとの違い・バージョンごとの違い・データベースの違い・クラウドインフラの違いといった純粋に技術的なバリエーションに悩むこともあれば、複数の異なる配送業者・複数の異なるAPI接続先・複数の異なる計算方式といった要求・要件のバリエーションにも悩んでいることでしょう。
このバリエーションへの対処法を整えることでエンジニアとして強くなる方法をお話します。

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

依存パッケージの更新してますか??おさらいcomposer update

blue_goheimochi 大橋 佑太

依存パッケージの更新はしていますか??

小さくコツコツ手をつけておけばよかった…そんな気持ちになることもあるかもしれません。。
日々降ってくる、マイナーバージョン・パッチバージョンの更新を適応するのは大事です。

メジャーバージョンがあった場合はどうでしょう??
依存パッケージ間の依存関係があるなど、マイナーバージョン・パッチバージョンの更新と比較して、複数のパッケージの同時更新が必要だったりもします。Renovateがプルリクエストを出してきたが、エラーになってそのままマージにならない…なんてこともあったりします。

本トークではパッケージを更新するコマンドであるcomposer updateをおさらいしつつ、何ができるか?何が起こるか?を確認しながら、今一度パッケージのバージョンアップについての手順やはまりポイントについてお話ししたいと思っています。

4
採択
2024/06/22 17:10〜
ホライズンテクノロジーホール
レギュラートーク(15分)

composer dump-autoloadを「なんとなく使う」から「理解して使う」になる

aki_artisan あかつか

「開発環境でクラスが読み込めないからとりあえず打つ」
「手順書に打てって書いてあるから実行する」

composer dump-autoloadを実行する時にこのように場面に遭遇したことはないでしょうか?

実は、dump-autoloadを打つべきタイミングには、明確な場面があります。内容をよく知ることで、「とりあえず打ってるけど、よく分からなくて不安…」を解消しませんか?

話すこと

  • dump-autoloadを実行したとき何が起こっているか

対象者

  • dump-autoloadをいつ打つべきか分からない方
  • psr-4以外のautoloadを使ってみたい方
レギュラートーク(15分)
U25(25歳以下) 初登壇

自分が暮らす地方都市でハンズオンイベントを開催して気づいたこと

hacusk はくすけ

私は首都圏企業の札幌開発拠点のエンジニアとして働いており、弊社では定期的に札幌市内でエンジニア向けのイベントを開催しています。

イベントで学生や初学者の方々と交流する中で、
「エンジニアを目指していく上でどんなことを学べば良いのか」「実際の開発の現場ではどのようなことをしているのか」
という情報を特に地方都市では得る機会が少ないと感じました。

少しでもきっかけになればと思い、「Laravelを用いて勤怠管理システムを作成する」というお題で、要件の検討や設計も実施するソフトウェア開発を体験いただくハンズオンを開催し
道内の学生や初学者の方計10名に参加いただきました。

本セッションではイベントを通して自身が気づいたことと経験、エンジニアを目指す人々がどんなことを気にしているのか
そして地方都市でこそもっとハンズオンイベントを開催した方が良い理由をお話しします。

4
採択
2024/06/22 10:25〜
Fusicホール
レギュラートーク(15分)

PHP コードの実行モデルを理解する

shin1x1 新原 雅司

PHP コードを実行するために必要なのが、PHP 実行環境です。

多くの Web アプリケーションでは、php-fpm や Apache httpd モジュールの mod_php を利用しているでしょう。こうした環境では、HTTP リクエストごとに独立したコンテクストで PHP コードが実行されます。個々のコンテクストは独立しているので、外部リソースを共有しない限り、お互いの干渉を気にせずにアプリケーションコードを実装できます。

本発表では、このような PHP の動作モデルをご存知無い方を対象に、どのように PHP コードが動作しているのかを図解を交えて解説します。

セッションのゴール
PHP アプリケーションがどのように動作するかイメージできる。

6
レギュラートーク(15分)
U25(25歳以下) 九州勢

100 人規模の開発チームはどうやってオンプレ GitHub からクラウド GitHub に移行したか

man_2_fork 福田 航生

GitHub Enterprise には、自社サーバにインストールして利用する GitHub Enterprise Server (GHES) と GitHub Enterprise Cloud (GHEC) があります。
会社によっては、自社のサーバでデータを保持したい等の理由で GHES を使用していると思います。

サイボウズの Garoon 開発チームでも GHES で開発を進めてきましたが、最近その負荷が高まっており、運用の限界が見えていました。
そのため、リポジトリを github.com (GitHub Enterprise Cloud) に移行しています。

しかしながら、100 人規模のチームで利用しており、ほぼ毎日のリリースへの影響もあるため、移行はなるべく開発を止めずに行う必要があります。
このセッションではそのためにやったことや移行時の困りごとなどを共有します。

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

小さく価値を届けるために、決定を遅らせながら作る技術

stwile871 スタヰル

柔軟に小さく作る。言葉は簡単だが、実際には難しいところである。
顧客の欲しいものは本当のところ顧客自身もわかっていないことも多々ある。

我々も顧客に寄り添って価値を想像するために、小さく決めて開発をする必要が出てきた。

しかし時には、小さく作ることが開発チームのエゴになるときもありうる。顧客だけでなくチームとしてどの単位が最小価値なのか、悩まれる方も多いのではないだろうか。

小さな、動くものが正義。嘘か真か、顧客や世の中に問いながら細かく作り、大きな決定を遅らせる開発手法を紹介しようと思う。

話すこと

  • 決めなきゃいけないことだけ、決断を刻む
  • 松・竹・梅で三点見積もり
  • インタフェースで区切った決定駆動開発
3
レギュラートーク(15分)
九州勢

PHPだからこそわかる!入門よかBPF

udzura 近藤うちお

eBPF(いいBPF、あるいはよかBPF)はLinuxの最先端技術の一つです。具体的用途として、ネットワークパケットのフィルターやフォワーディング、可観測性ツール、セキュリティ関係のツールの内部で利用されています。

eBPFはLinuxの謎技術なので一見難しそうですが、実は簡単な内容なら、C言語風DSLのパターンとPythonやRubyなどLLの若干の知識だけで、問題なく使えます。bpftraceという簡単に使えるコマンドツールも存在し、PHPのアプリ改善にも活用できるのです!

今回のトークでは、まず、PHPのためのeBPFの概要と、その周辺技術やツールなどを紹介します。その後、PHPと関連ミドルウェアを題材に、eBPFを使ってみましょう。例えばPHPの友達Apacheの計測であったり、PHP自体のアプリケーションprobeを利用した例をデモします。

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

プログラミング言語を跨いだ採用でオンボーディングをサボるな

suguru_ohki スー

どの企業でもPHPerのミドルクラス、テックリードクラスの採用とオンボーディングには苦労されていることと思います。特にオンボーディングにおいては、別言語をメインでやっていた方を採用し、活躍してもらうためにはこのくらいはキャッチアップできるだろうし、大丈夫!というサボりが、認知負荷を高め、活躍までのリードタイムを長くしたり、副業エンジニアの離職を招きます。このトークでは、実際にTechTrainの開発現場で行なっているオンボーディングを出来る限り見せながら、一般的に利用できる形式にしてお伝えします。

対象者

  1. テックリードを採用したものの、活躍してもらうために必要なことに悩むEM
  2. 初めて業務委託エンジニアを採用した1人目エンジニア
  3. マネジメント経験がないが、任されたスモールチームのテックリード
4
レギュラートーク(15分)

作って理解するルーティングとDIコンテナのカンケイ

PHPerなら誰しも通ったことのある(?)オレオレフレームワーク作り
ルーティングやDIコンテナのライブラリをcomposer requireすることでオレオレフレームワークを作ることは簡単ですが、今回はあえて(四角い?)車輪の再発明をすることで、普段皆さんが使っているであろうフレームワークやそのコンポーネントがどんなことをやっているのか?を掘り下げていきます

このトークを聞いて欲しい人

  • Laravelでコンストラクタやメソッドにクラス名書くといい感じに解決される仕組みが説明できない人
  • オレオレフレームワークを作ったことがない人
  • PHPで何か作ってみたいけど何作ったらいいかわからない人

このトークの目指すところ

一般的なFWがどのようにルーティングとコントローラーを繋げているか雰囲気をつかめた!

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

PHPerが認定スクラムマスターになって起きた変化

皆さん、スクラム開発してますか?
このトークでは雰囲気でしかスクラムを知らなかった私が認定スクラムマスター(RSM)研修を通じて

  • 理解が深まったこと
  • 勘違いしていたことに気づいたこと
  • 新たに学んだこと

を共有しつつ、知識のアップデートと適応により私の周りで実際に起きた変化についてお話します

このトークを聞いて欲しい人

  • アジャイルとかスクラムという言葉は聞いたことあるけどよくわからない方
  • スクラムはやっているんだけどなんかうまくいってない...という方
  • そもそもうちはウォーターフォールだからな...という方

このトークの目指すところ

「明日から始められる何か」を持って帰ってもらうことを目指します

2
レギュラートーク(15分)
初登壇

数学が苦手でも怖くない! ~PHPで学ぶ三角関数~

025cm えび🦐

みなさん三角関数覚えていますか?
本発表では、三角関数の基礎から説明し、それがどのようにソフトウェア開発のフロントエンドで活用されているのか、具体的な有用性を伝えることを目指します。

目標:
三角関数の基本的な概念を理解し、どのようにソフトウェア開発において生かされているのか理解する

話すこと(予定):
・三角関数の基礎: 三角関数の定義と基本的な性質
・実例
三角関数がどのように問題解決に役立つのか、円状のオブジェクトの接触判定を行うプログラムを通じ解説を行う。

対象:
三角関数を理解したい人
三角関数が実際にどのように使われているのか知りたい人

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

PHP スクリプトの内部状態を見える化する

sji_ch sji

実行中のPHP スクリプト内部は様々な配列やオブジェクト、文字列にその他スカラ値といった値の飛び交う混沌とした空間で、ふつうの PHP プログラマーは何がどうなっているかを詳細に把握することなく、けっこう漠然としたイメージでスクリプトの状態をとらえつつ日々の仕事をこなしています。トラブルシュートのためにデバッガやログから局所的なデータの流れを追いかけることはあっても、全体として「スクリプトの状態」がどんな形のものなのか、のイメージを持っている人は少ないことかと思います。

このトークでは自作のメモリ解析ツール Reli を活用し、実行中の PHP スクリプトの内部状態を様々な形で見える化していく方法を紹介します。SQL でスクリプトの状態を問い合わせて表にしたり、データ可視化ライブラリを使って超かっこいいグラフを見せたりします。

3