LT(5分)

サービスを1から立ち上げて「やって良かったこと・悪かったこと」を5分で振り返る

kataokatsuki kataokatsuki 片岡克樹

サービスの立ち上げ、数年間の運用を通し
「試行錯誤を繰り返し、致命傷を負わない戦い方」
を少しずつ学んできました。

その経験を通し

  • やって良かった
  • もっとこうすれば良かった
  • どうしていいか未だにわからん

と感じた話をします。

具体例

  • テスト0の状態から、ユニットテストやE2Eテストを整備した話
  • EC2にsshで入ってgit pullする状態から、TerraformやECSを使っていい感じにした話
  • 「営業の方に頼まれたものをとりあえず作る」から、「本当に求めていそうなものを理解し、できるだけ無駄なものを作らないようにシフトした」話

望むこと

熟練のエンジニアの方にも、初心者の方にも「わかる、ウケる」と感じてもらえる話をして
「いいものを作ろうとしている仲間」
として交流のきっかけができればいいなと思います。

2
採択
2023/03/24 11:15〜
Track A
レギュラートーク(40分)

ブラウザの向こう側で「200 OK」を返すまでに何が起きているのか調べてみた

akase244 akase244

「ブラウザでURLを入力してwebページが表示されるまでの仕組みを説明してください」
こんな質問をされたら、あなただったらどのように答えますか?

webアプリケーションを開発する上で、多くの技術的要素を理解していることが求められますが、
正直なところ現時点では上記の質問に対してうまく説明できるかは不安です。

この状況を踏まえ、普段何気なく利用しているブラウザの向こう側の仕組みについて、
自分なりに色々と調べてみて、当日の登壇では時間の許す限りその調査結果をお伝えしようと思います。

LT(5分)

PHPとラズパイでカメの餌やりを自動化する

hoku_FA 北斗

PHPで実際にモノを動かしてみたいと思ったことはありませんか?
ラズペリーパイ(ラズパイ)のGPIOをPHPで制御することで、アクチュエータ(電気シリンダなど)を動作させることができます。

ラズパイとはシングルボードコンピュータで、電子工作や、近年では産業用途・IoTなどでも使用されています。

普段PHPを扱っているとPC上で完結する仕事が多いと思いますが、たまには現実のモノを動化してみると面白いです。

1
LT(5分)

Slackカスタムレスポンスを活用してtimesをカオスにしよう!

for__3 zoe

Slackのtimes文化根付いてますか〜?
Slackにて個人チャンネルを作りtwitterのようにつぶやく分報チャンネルことtimesですが、油断すると業務の話ばっかりになったり、投稿ハードルがあり投稿されなかったり、、うまく運用していくのがなかなか難しいものです。
そこで私がtimesでやっている様々な工夫を一挙に公開したいと思います。

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

私の考えるエンジニア教育論

for__3 zoe

開発組織の開発力、生産性を上げるために避けては通れないエンジニア一人ひとりの技術力アップ。
私がEMとしてここ数年考え実践してきたエンジニアの教育において必要な要素や考え方について整理して話します。

トーク内容

メンバーを教育する際に気をつけていること
エンジニア教育する際のマインド
レベルごとの教育スタンス(ティーチング、コーチングの使い分け)
教育にまつわる理論(認知特性やラーニングピラミッドを活用する話)

想定視聴者

組織のエンジニア教育にミッションを持ち悩んでる人
エンジニアとして今後の成長方針に悩んでる人
教育に興味がある人

含まれないもの

エンジニアに必要な個別技術の習得方法
エンジニアとしてどのような個別技術を学ぶべきか

2
LT(5分)

その説明、コードコメントに書く?コミットメッセージに書く?プルリクエストに書く?

okashoi おかしょい/岡田 正平

先輩「この実装はどうしてこうなっているの?」
自分「ここは〇〇という理由でこうしています!」
先輩「了解です、その説明はコードコメントに書いておくとよいので追記お願いします~」
コードレビューを受けているとき、こんな経験はありませんか?

コードで表現できないことを説明したいとき、それを書く場所の候補はコードコメント、コミットメッセージ、プルリクエスト(説明欄やコメント)と多岐に渡ります。
「どこに書けばいいのかわからない!」そんなときの指針となるお話をします。

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

ISUCON の PHP 実装を RoadRunner で動作させてみる

okashoi おかしょい/岡田 正平

PHP によって書かれた一般的な Web アプリケーションはリクエストごとに独立したプロセスによって処理が行われます。
そのようなアーキテクチャは ISUCON の参考実装が提供されている言語の中でも異質です。

RoadRunner は Go 製の PHP アプリケーションサーバで、リソースをリクエストをまたいで使い回すようにでき、他の言語と近いアーキテクチャを実現できます。
これによって他の言語と同じ土俵で戦うことができるのか、は気になるところですが、それ以前にそもそも RoadRunner に載せ替えることはできるのでしょうか?

本セッションでは ISUCON 12 予選問題の PHP 実装を RoadRunner で動作させるために必要なことと、RoadRunner に載せ替えたことによって変わることを説明します。

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

【ライブコーディング】素朴で考慮漏れのある PHP コードをテストコードとともに補強していく

okashoi おかしょい/岡田 正平

テストコードの書き方について説明する資料等は世の中に充実しつつあります。
一方で具体的にテストコードを書いていく様子を説明、実演する資料というのはまだ数が限られています。

そこで今回はソフトウェアテストの領域でよく題材とされる「マイヤーズの三角形問題」の実装を取り上げ、
素朴な PHP コードからはじまり、テストコードを補いながら、ときにつまづきつつ、解くべき問題を捉えたコードへと洗練させていく過程を実演します。

本セッションで扱うテーマ

  • テストファーストなアプローチによるコーディング、リファクタリング
  • PHPUnit の基本的な使用法と data provider の活用

本セッションで扱わないテーマ

  • テスト戦略やテスト設計について
6
採択
2023/03/25 11:15〜
Track A
レギュラートーク(40分)

いろいろなフレームワークの仕組みを index.php から読み解こう

okashoi おかしょい/岡田 正平

同じPHPでも、単一ファイルでWebページを表示するのとフレームワークを使うのとでは書き方が大きく変わります。
みなさんは不思議に思ったことはないでしょうか?

  • どうしてURLと対応するPHPファイルがなくてもHTTPリクエストを処理できるのか
  • どうしてHTTPリクエストを受け取るとControllerのメソッドが呼ばれるのか
  • どうしてecho等をしていないのにHTTPレスポンスを返せるのか
    そんな数々の「どうして」は、処理の起点となるindex.phpを読み解くことで答えが見えてきます。

フレームワークが動く仕組みを理解すれば適切な実装方法を判断したり、デバッグの際に役に立つでしょう。

本トークでは以下に示すフレームワークを取り上げ、index.phpを起点にフレームワークが動く仕組みを説明します。

  • CakePHP
  • Laravel
  • Slim
  • Symfony
採択
2023/03/25 14:50〜
Track A
LT(5分)

可能な限り確実にmkdirを成功させるには

oogFranz すぎやま@MASH弦楽団

みなさんはPHPからディレクトリを作ったことはありますか?
PHPには mkdir というファイルシステム関数があるため、ディレクトリを作成するのに困ることは少ないかもしれません。
しかしながら、パスの指定方法や実行タイミング、パーミッションの指定方法を正しく理解していないと、
mkdirでエラーが発生したり、思った通りのディレクトリが作成されなかったりします。
このトークでは、ラッパー関数を作成しながらmkdirだけでもどのような問題が発生する可能性があるのかをお話しします。

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

PHP初心者が現場で立ち往生せず成長しいきのこるには

uzulla uzulla

PHP現場に放り込まれた、右も左も分からないジュニアエンジニアがどうサバイブすればよいのか…を偏見で語ります

  • どの本・サイト・Youtubeをみるべき?
  • 「『武器』は装備しなきゃ意味ないぜ!」
  • 「『わからないこと』がわからないこと」に立ち向かう
  • ちょっとまってその実装!実装前にまず設計(?)!
  • コミット前、PR前に一息つこう
  • 恐ろしい(?)レビューに落ち着いて対処
  • Merge後に振り返り
  • 忙殺(主観)や無力感(主観)を避ける

PHPエンジニア初心者が心がけるべき事を紹介します
「先輩」へのメッセージもあります

※ N個の現場経験を元にしており、特定現場の話ではない
※ もっと良い「先輩」がいればそちらを優先せよ
※ 「お前はそんな立派なの?」「自分を棚上げは『先輩しぐさ』の基本ですよ」

8
レギュラートーク(40分)

「金が無い!(出したくない!)」PHPerのケチケチ運用 2023

uzulla uzulla

「 なんてこった!PHPウェブアプリ公開は何かと金がかかる!なんでかJS方面は無料が多いってのに!?」そんな嘆き声が聞こえてきます。どうですか?

「当たり前では?」と思いますが、やはり金はかけたくないと思う、リーンですよリーンスタートアップ。

あげく円安の時代、t2.microですら¥2000円弱/月かかる今、我々PHPerはどのように無料もしくは低料金でPHPを使えば良いのでしょうか…?
安くあわよくば無料でPHPウェブアプリを公開する縛りプレー(???)のテク紹介をしたいと思います。

副次的に、様々なPHP環境構築やサービスの紹介になる予定です。

  • 保証をするものではなく、実践は自己責任です
  • 規約的に多分グレーでも、「倫理」的にはギリギリな要素を含みます
  • 初心者でもOKです、多分
  • 「昨今のフロントエンド界隈、うらやましいなァ!」
8
採択
2023/03/25 12:55〜
Track A
レギュラートーク(20分)

計測できるレガシーさを捉え、コード改善に対処する

blue_goheimochi 大橋 佑太

コードのレガシーさには計測できるレガシーさと計測できないレガシーさがあると考えています。
私自身、計測できないレガシーさをうまく察知し、それを「コードの不吉な臭い」として感じ取るのは得意ではありません…。
しかし、

  • コードはどれくらい大きいか?
  • 重複コードはあるか?
  • コーディング規約が守られているか?
  • 循環的複雑度は?
  • コードにエラーはないか?
  • etc

このような情報は各種ツールを利用することで計測できます。
計測した数値を活用することで「コードの不吉な臭い」が少しずつ見え、実際にどこに手を加えて改善・リファクタリングをしていくと効率がよさいか?という道筋が見えてきます。

本トークでは主にツールで計測できるコードのレガシーさに着目しながら、どのようにコードを改善していけるか?をお話しさせていただき、皆様のリファクタリング活動の一助となればと思っております。

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

財務諸表とFour Keysから「組織のパフォーマンス」を考えてみよう

isanasan_ いさな

DORAによる調査、State of DevOpsが定義し、書籍「LeanとDevOpsの科学」の広まりと共に浸透したFour Keysという指標は、ソフトウェアデリバリのパフォーマンスを示すだけでなく、組織そのもののパフォーマンスに因果関係があると知られています。

ところで、この「組織そのもののパフォーマンス」というのは一体なんのことなのでしょうか?
本トークでは、「組織そのもののパフォーマンス」を財務諸表の観点から眺めることでFour Keysとの関連性を考えてみようと思います。

13
採択
2023/03/24 15:50〜
Track A
レギュラートーク(20分)

クローズドなサービスをIdentity-Aware Proxyを使って安全に公開する

■ 背景
サービスの管理用システムや社内専用システムはどの様にアクセスを制限していますか?
外部からアクセスができないよう会社のIPアドレス限定でアクセス許可を行う形が多いかなと思います。
しかし、これでは在宅勤務時など社外からアクセスできない弊害が……。
そこで、Google CloudのIdentity-Aware Proxy(IAP)を利用し、クローズドなサービスにどこからでも安全にアクセスできるようにします。

■ お話すること
・IAPを活用してサービスを守りつつ、安全にクローズドなサービスを公開していくための構成やポイントをお話します。
・IAPで認証されたことを前提に、パスワードレスで利用できるサービスとしたPHPのコードも交えてお話していきます。

■ 前提
・Google Cloudを利用した構成についてのお話です
・Googleアカウントを使った認証をベースにお話します

採択
2023/03/24 12:55〜
Track B
レギュラートーク(20分)
オンライン登壇

時間を気にせず普通にカンニングもしつつ ISUCON12 本選問題を PHP でやってみる

sji_ch sji

ISUCON は「いい感じにスピードアップコンテスト」の略で、ほぼ同様の処理をするよう作られた Web サービスの参考実装が複数の言語で用意され、参加者は競技中好きな言語を選んでその性能改善をしていきます。2022 年に実施された ISUCON12 の本選参加チームには PHP は使われなかったのですが、参考実装はきちんと存在しています。

このトークでは ISUCON12 本選問題の PHP 参考実装を使い、時間制限を気にせず、本選参加者の感想ブログの取り組みを平然とパクりつつ、PHP でどこまでスコアが伸びるか試した際の知見をお話します。

PHP はサービスをいい感じにスピードアップするのには不向きなのでしょうか。Go のような本選常連組の言語にはかなわないのでしょうか。それとも、本選で良い成績を残した他言語の参加者と同じ取り組みをすれば、同じようなスコアが出せるものなのでしょうか。

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

令和5年最新版(予定)オレオレフレームワークの解説と、それを取り巻く情勢について

uzulla uzulla

「オレオレフレームワークは忌むべきもの」ですが、昨今はライブラリや”設計”の浸透、PHPエコシステムの進化も進み、私見としては「禁忌する理由が減ってきた」という実感があります。

過去様々なオレオレフレームワークを作ってきた私の「令和5年最新版オレオレフレームワーク(仮称)」の設計をご紹介しつつ、私がオレオレフレームワークに取り組む理由である「既存のフレームワーク」のペインポイントと私がもつ”疑義”についてトークします。

同時に、なぜ過去のオレオレフレームワークが禁忌されたのか、ベタープラクティス・アンチパターン、「オレオレフレームワーク実行犯」である私の見解(≒自己弁護)もお話します。

さあ、再びフレームワークを我が手に

対象聴講者

  • 中級以上、たとえばDI程度の概念を理解しているなど
10
採択
記事(8ページ)

入門 Amp 〜 純 PHP でも非同期処理ができる! 〜

sji_ch sji

PHP の非同期処理ライブラリ Amp (https://amphp.org/) の入門記事です
豊富な非同期処理機能を持つ Amp を使い、簡易なアプリケーションを作る方法を紹介します

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

データベース/SQLを全く知らない方へ、世界一分かりやすく解説します!

ttskch たつきち

PHPerKaigiに参加される方の中には、またプログラミング経験がほとんどなく
これからPHPを勉強しようと考えているという方も多くいらっしゃると思います。

そんな方々へ向けて、Webアプリケーション開発に必須の知識である
データベースやSQLというものを、世界一分かりやすく解説します!!!

このトークのゴールは、
・データベースという概念をなんとなく理解すること
・簡単なSQLを自力で書けるようになること
です。

僕自身が初心者の頃にこういう説明をしてほしかった…と思うような
順序と言葉遣い、例示を用いて、初心者向けに本当に世界一丁寧に(当社調べ)解説します!
ぜひお楽しみに!!!

※データベース/SQLというものを全く知らない方に基本のキを腑に落としていただくことが目的のトークなので、
分かりやすさを優先して厳密さを多少犠牲にする場面があります。上級者の方はご注意ください。

3
採択
2023/03/24 17:30〜
Track A
LT(5分)

PeachPieを使ってPHPを.NETで動かしてみた

9rokirishima くろきり

.NETというとC#というイメージでPHPerにとってはあまり関係ないものと思っていませんか?
なんとPHPも.NETのランタイムで実行することができるんです!
PeachPieというオープンソースプロジェクトがあり、それを用いることでコンパイルしたPHPを.NETランタイム上で実行し、C#とPHPの相互運用が可能になりました。

このトークではPeachPieの紹介と、実際にPeachPieを用いて個人開発してみた際の知見や感想をお話しします。