PHPerKaigi 2022 プロポーザル一覧

他イベントOK LT(5分)

PHPとSvelte、二人は仲良しアプリケーション開発

fku_mnk fkuMnk fku_mnk

Cybernetically enhanced web apps【Svelte】とは、一つのファイルにJavaScriptとかCSSとかHTMLをまとめて書いてエイッ!ってやるとWebアプリになるあのReactとかVue的存在です。
ではなぜここでSvelteの話をするのか? それは、何か使ってみたら便利で楽しかったしこれは内緒にしておこうとおもったけど、使う人が増えたほうがもっと便利になるので、ぜひ皆様もこの春PHPにSvelteをCyberneticallyにenhancedしてWebをappsしてみませんか?
今回は次の2つの事例を5分間でご紹介します。
・SvelteをPHPの非同期アーマーとしてREST装着したアプリケーション
・既存PHPアプリケーションへの追加UIとして、HTMLタグのデータ属性でSvelteコンポーネントを接続
※非同期アーマーという言葉はありません。

2
他イベントOK LT(5分)

PHPerだってPHPから「OKグーグル」したい!

hnw hnw hnw

「OKグーグル」と声を掛けると家の電気やテレビをつけてくれるGoogleアシスタント、みなさんお使いでしょうか。私は毎日大声でGoogleに話しかけています。しかし声を出すのもダルいときってありますよね。そんなときはプログラムからGoogleに話しかければいいんです。

ところでプログラムからGoogleアシスタントにアクセスしようと思うとPythonかGoの事例が多いんですね。Googleアシスタントの裏側はgRPCなのでPythonやGoが多いのは自然っちゃ自然ですけど、PHPもgRPCの正式サポート言語(クライアントのみ)ですから、やればできるはずです。

そんなわけで、本トークではPHPからGoogle Assistant APIを使って「OKグーグル」してみましょう。他の言語より少し大変だったりしますが、PHPだってgRPCで遊べるんです!

9
他イベントOK レギュラートーク(20分)

QAエンジニア奮闘記

grem_ito gremito grem_ito

QAエンジニア業務をやり始めて4年目になります。
大規模では、テストの自動化やQA業務の課題を可視化させてワークフローの最適化を経験し、小規模では、ワンオペによる俗人化やそもそもQA業務がマニュアル化されていないQA環境の整備するなど、様々なQAの現場でQA業務を経験してきました。
最近では、QAメンバーの採用で苦戦しており、とくにエンジニア採用で苦戦している以上にQAエンジニアやテストエンジニアがいない問題が深刻になっています。
本トークでは、QAエンジニア奮闘記と題してこれまでとこれからのフリーのQAエンジニアとして奮闘する話ができたら嬉しいです。

1
他イベントOK レギュラートーク(40分)

エンジニアとデザイナがOOUI(オブジェクト指向UI)モデリングによってチームになっていく話(40分)

sam8helloworld 若野 貴大 sam8helloworld

20分のレビュラートークでは以下のように主にOOUIモデリングをエンジニアとデザイナで行う過程の話になっています。

  • OOUIモデリングの簡単な説明
  • チーム状況と課題
  • OOUIモデリングで得られた効果
  • ドメインモデリングとの対比
  • チームで行っていく中で感じた課題
  • 副次的に得られた効果

40分の本トークではそれに加えてOOUIのモデリングをどう実装に落とし込んで幸せになったのかを弊社BASEでの事例を元にお話させて頂きます。

4
他イベントOK レギュラートーク(20分)

CakePHP 2 系のプロジェクトを Laravel にリプレースした話

naoki85_201612 naoki85 naoki85_201612

CakePHP 2 系のサポート終了に伴い、関わっているプロジェクトを Laravel でリプレースしました。
当時、 Laravel は触ったことがない状態だったものの、PHP のイベントを聞いて興味を持ちました。
Laravel は器用なことができるフレームワークだと感じていますが、その反面、Laravel を導入したばかりの時にはチームで決めていくことがいくつかありました。

また、 Laravel 化に合わせ、CI の拡充やインフラの整備、 PHP 8 対応なども進めたため、本トークではこれらの知見の共有を行う予定です。

1
他イベントOK レギュラートーク(20分)

エンジニアとデザイナがOOUI(オブジェクト指向UI)モデリングによってチームになっていく話(20分)

sam8helloworld 若野 貴大 sam8helloworld

チームで会話している時にデザイナとエンジニアでは同じ名詞に対してでも頭に浮かべているものが異なります。
デザイナはユーザのメンタルモデルを元に、エンジニアはシステム設計や要件を元に会話していることがほとんどだったので常にお互いの話が理解しにくく、デザイナをチームの中でも孤立させてしまっていました。

そのような問題を解決すべく、私のチームではエンジニアとデザイナで定期的にプロダクトに対してOOUIでのモデリングを行ってきました。
本トークではこの取り組みから以下のことをまとめて発表する予定です。

  • OOUIモデリングの簡単な説明
  • チーム状況と課題
  • OOUIモデリングで得られた効果
  • ドメインモデリングとの対比
  • チームで行っていく中で感じた課題
  • 副次的に得られた効果
3
他イベントOK レギュラートーク(20分)

PHP流 quicktypeとの付き合いかた

yosatak たけうちよしたか yosatak

PHPでも型を付ける事で不意なバグを減らしながら、快適にプログラミングする事ができる静的解析ツールが開発されています。
また、PHPのヴァージョンが上がるにつれて型に関するサポートも充実してきており、現代のPHPは、昔のPHPの印象で語られる世界とは別の世界と言っても過言ではないでしょう

他の言語でも型システムが強力なしくみが導入されたり、強力な言語が話題になったりしていますが、フロントエンドフレームワークと通信する時など、言語を跨いだ型情報の共有に便利な仕組みがquicktypeです

PHPはquicktypeでの対応が現時点では無いのですが、有効に利用するための工夫を纏め発表します。

3
他イベントOK LT(5分)

テストコードの DRY と DAMP

_heartyfluid 加賀田 裕介 _heartyfluid

コーディングの中でいわゆる「共通化」について考えるとき、プロダクトコードとテストコードではやや違う観点が必要になるようです。テストコードを書き始めて間もない現場には「プロダクトコードは書き慣れているがテストコードには不慣れ」なメンバーが多く、レビュー時などにこの勘所をうまく説明できず困ることが時折ありました。

最近、DRY (Don't Repeat Yourself) 原則と対になる DAMP (Descriptive and Meaningful Phrases) 原則という概念に触れたことで、この状況を腑分けし言語化できるようになってきました。DRY と DAMP について最近考えていることをお話ししたいと思います。

1
他イベントOK LT(5分)

コードレビューで人間関係を悪くしないための「デウス・エクス・マキナ」パターン

_heartyfluid 加賀田 裕介 _heartyfluid

コードフォーマッターや静的解析ツールなどを使ってコードレビューの手間を減らすことの重要性はしばしば強調されます。しかし、ツールによるコードレビューの自動化には、単なる工数削減だけでなく「意見の衝突、およびそれによる対人ストレスの緩和」にもどうやら効果があるようです。

「デウス・エクス・マキナ」パターンは、この仮説にわたしが勝手に命名したものです。この仮説に至るきっかけになった現場でのエピソードや、関連して考えていることについてお話ししたいと思っています。

3
他イベントOK レギュラートーク(20分)

AWS Amplifyでフルサーバーレスな開発を始めよう

seike460 清家史郎 seike460

フルサーバーレスな構成を取る場合、必要な様々なクラウドサービスの知識に加え
実践的な利用方法が求められます。

フルサーバーレスの恩恵を受けたいが、その第一歩が難しい。
その悩みをAWS Amplifyは解消してくれます。

AWS Amplify で出来ることをご紹介しながらReact + GraphQLで作成するログイン付きの
サンプルWebアプリケーションを作成する流れについてご説明します。

具体的な手法をなぞることで、
どの様にフルサーバーレスなアプリケーションを作成するかを学びましょう!

  • 想定する聴講者
    • フルサーバーレスアプリケーションに興味がある方
    • 具体的なフルサーバーレスアプリケーション開発の始め方を知りたい方
4
他イベントOK LT(5分)

PHPからGoを呼び出す

tzm_freedom 田実 誠 tzm_freedom

このLTではFFIやANTLRによる言語実装など、あらゆる手段を使ってPHPからGoを呼び出す方法を紹介します。
実用性は皆無です。
PHPを通じて技術を楽しむLTとなっております。

1
他イベントOK レギュラートーク(20分)

計測ことはじめ 〜アプリケーションを知るために〜

seike460 清家史郎 seike460

推測するな、計測せよ
パフォーマンスチューニングの文脈でよく使われる格言です。

ではこの格言を実際に実行するにはどの様な手法をとるべきなのでしょうか。

一言に計測と言っても、Webアプリケーションには
Webサーバー、アプリケーション、データーベース、フロントエンドと様々なレイヤーが存在します。

今回はWebアプリケーションを計測する第一歩を進める為に必要な手法についてお話します。

アプリケーションを計測する手法を知ることで、アプリケーションが内包している問題を見つけ、さらなる改善を進める一手にしましょう。

  • 想定する聴講者
    • なぜ計測するのかを知りたい方
    • Webアプリケーションを計測する手法について幅広く知りたい方
    • N+1問題、DBパフォーマンス等の課題を抱えている方
5
他イベントOK レギュラートーク(40分)

AWS Amplifyを用いて爆速で作るフルサーバーレスアプリケーション

seike460 清家史郎 seike460

フルサーバーレスな構成を取る場合、必要な様々なクラウドサービスの知識に加え
実践的な利用方法が求められます。

フルサーバーレスの恩恵を受けたいが、その第一歩が難しい。
そのような悩みを、定まったフレームワーク上でフルサーバーレスな構成を簡単に実現出来るAWS Amplifyを利用することで解決出来ます。

今回はその流れについてReact + GraphQLで作成するログイン付きの
Webアプリケーションをバックエンドアプリケーションを開発することなく爆速で構築する手法について、
フルサーバーレスにしたことで得られたメリット・デメリットも含めてお話します。

  • 想定する聴講者
    • フルサーバーレスアプリケーションに興味がある方
    • バックエンドアプリケーション構築ができず困っている方
    • サーバーレスアプリケーションのメリット、デメリットを知りたい方
3
他イベントOK レギュラートーク(20分)

HTTPリクエストの行方 〜Laravelがレスポンスを返すまで〜

seike460 清家史郎 seike460

Webアプリケーションはどうして動くのでしょうか。

ブラウザ等のクライアントから送信されたHTTPリクエストを契機に、
Webアプリケーションでは様々なレイヤーでの情報処理が行われます。

今回はその情報処理の流れをLaravelを例に追うことで、
Webサーバー、Laravelアプリケーション、データーベースと
レイヤー毎で行われている処理とそのレイヤー毎のつなぎ込み部分に迫ります。

HTTPヘッダーを含むHTTPリクエストの流れを追って、真にWebアプリケーションがどうして動くのかを知り、
必要な処理をどこに組み込むことが効果的なのかを知る一助になれば幸いです。

  • 想定する聴講者
    • HTTPリクエストからレスポンスまでの流れをよく知らない方
    • HTTPヘッダーについて知りたい方
    • ウェブアプリケーションにおけるレイヤー毎の役割を整理したい方
6
他イベントOK LT(5分)

【視聴者参加型】PHP この記号はなんでしょう?【高速 LT クイズ】

maikeru 三雲 maikeru

初心者も楽しめる、視聴者参加型の高速 LT クイズと解説です。
易しいレベルから、殆ど知られていない難しいレベルまでを4択クイズで高速 LT します。
チャットや Twitter などでどんどんお答えください!

初心者はプログラミングを始めていくと、記号が意外とググりにくいということに気づくと思います。
また他の言語を習得している上級者は、突然聞かれると一瞬他言語と混ざっちゃってわからなくなることがあると思います。
高速で問題を出されると、初心者も上級者も楽しめると思った次第です。
気分転換の頭の体操にいかがですか?

以下、例題です。これを問題文を読むところも含めて10秒程度で次々解いていくイメージです。

問題:べき乗 (例:2の3乗など)を計算する記号はどれ?
A. ^
B. **
C. ^^
D. 記号はない(pow() 関数で対応)

他イベントOK レギュラートーク(20分)

エラー監視とテスト体制への改善作戦

zosokh ヒエイカザト zosokh

毎日流れてくるエラーに皆さんはどう向き合ってますか?
エラーを出さない事が一番ですが、完全に塞ぐ事は難しいと考えます。
サービス運用の中で本番環境から発生するエラー(サーバー・クライアントサイド・サードパーティ起因のエラー)への監視体制と、
エラー・バグ防御のためチームで行っているテストコード文化づくりの話をします。

  • sentryを使ったエラー監視体制
  • エラー種類の集計
  • チームでテストコードを書くために
  • カバレッジ向上へ向けた施策

【トーク対象】

  • webサービス運用エンジニアの方
  • いまいちサービスのエラーを把握しきれていない方。知らないふりしている方。
  • テストコード書いてない方。書きたい方。
  • 明日なんとかしよう、、と思って数ヶ月経っている方。
2
LT(5分)

何でもキレイにiterationする方法を考える in PHP

nukisashineko ぬさし nukisashineko

php の基本の foreach 。
しっかり正しく記述できていますか?

foreach は簡単そうに見えて柔軟すぎて、結局難しかったりします。

こんな悩みはありませんか?
・foreach の中に if 文がたくさん詰まってしまう。
・Promise を foreach で回すのが難しく感じる
 ・同時実行上限
 ・終了時上限の付与
・Generator が苦手
 ・遅延処理が書けるって聞くけどよくわからない
 ・結局 foreach で終了までを全部詰め直すから読みにくくなってしまう

それらを解決する概念が下記の3つです。
・map処理
・並列処理
・遅延処理

この概念をいい感じに foreach で説明できたらいいなって思います。

2
他イベントOK レギュラートーク(20分)

リモートワークで仕事もプライベートももっと充実させちゃおう

yoko_94b 下岡葉子 yoko_94b

コロナ禍でリモートワークになったエンジニアは数多くいらっしゃる事と思います。
そろそろ2年が経とうとしていて、少しずつリモートワークに慣れてきても、やっぱりオンラインとオフラインの差はある。
それぞれのメリット・デメリットを認識した上で、ワークライフバランスを上げつつ仕事を進める方法を、リモートワーク経験20年超&フルリモート転職の経験を踏まえてお話したいと思います。

1
LT(5分)

PHPerKaigi 2021で当日スタッフをした話

yoko_94b 下岡葉子 yoko_94b

スタッフには興味あるけど「スタッフってつよつよエンジニアばかりなんじゃないの?」とか「自分なんかにもできるのかな?」なんて不安を感じて応募を躊躇ってしまっていませんか?
いつもお世話になるばかりだった私が、当日スタッフに応募しようと思った動機と、実際にやってみてどうだったかをお話ししたいと思います。

他イベントOK レギュラートーク(20分)

GitHub Actions Deep Dive using PHP

k1LoW 小山健一郎 k1LoW

2018年のGitHub UniverseでGitHub Actionsが発表されてから約3年、今ではGitHubを代表するなくてはならない機能の1つになっています。

発表者もv2(not HCL)から使い始めており、作成したOSSのCI/CD環境として有効に活用するだけでなく、独自に作成したActionもいくつかGitHub Marketplaceに公開しています。

本発表では「PHPで独自Actionを作成する」ことを通じて、GitHub Actionsを使いこなすに当たって、私の知る知見を時間の許す限り紹介します。

細かすぎて全く必要のなさそうな情報ばかりかもしれません。しかし、あなたがGitHub Actionsを使いつづけていくといつか必要になる情報かもしれません。

GitHub Actionsをより深く知ってCI/CDだけでなくさまざまな自動化効率化を実現しましょう。

4