PHPerKaigi 2021 トーク一覧

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

明日から使えるLaravel Livewire

林 雅之

明日から使えるLaravel Livewire

VueやReactでしっかりしたフロントエンドを構築できていますか? もしいろいろな事情でまだできていなのであれば、Laravel Livewireが第三の選択肢になるかもしれません。

Livewireを使えば、サーバサイドのコードだけで、リアクティブなフロントエンドを実現できます。

このセッションでは、リアクティブプログラミングの概要から、具体的にLivewireで実現できる「便利さ」まで詳しくご紹介します。

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

Casbinを用いたアクセス制御入門

820zacky つざき 820zacky

はじめてのアクセス制御の導入でCasbinというライブラリを使ってみたらすごくよかったので紹介します。

Casbinを用いたロールベースのアクセス制御の導入を例に挙げて、
権限モデルの種類やCasbin、CasbinのLaravel向けパッケージであるlaravel-authzなどについて話します。

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

カスタマイズだらけのB2Bアプリをマルチテナント型SaaSに作り変えた話

大河原麗偉

元々パッケージとして開発していたソフトウェアですが、リライトせずSaaS化をしたという話です。

qiitaで途中まで書いた話です。
https://qiita.com/Rei_okawara/private/ec0dfe9bf552f7d78101

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

今更聞けない?N+1 問題を生み出さないためのコードの書き方と生まれてしまったコードの直し方

m3m0r7 めもり〜 m3m0r7

みなさん N+1 問題ってご存知ですか?DB への接続をループ分で N 回実行し、+1 はカウントで全件数を取ってきたりすることを総称して N+1 問題というかと思います。他にもループ分で N 回実行しているコードだけのものも総称して N+1 問題と言ったりしますね。言葉の真意は神のみぞ知るですが、概ねこういった理解の方が多いのではないでしょうか。もちろん N+1 は DB に限らず外部リソースへの接続も同様と理解すべきです。外部リソースといえばキャッシュ用の Redis もそうですし、全文検索エンジンの Elasticsearch も同様です。1 回の接続であれば目を瞑ることもできますが、ウェブアプリケーションとして稼働している場合、そういうわけにもいきません。そして、N+1 問題はパフォーマンスチューニングにおいて重要なファクターの一つにあげられることも多いかと思いますが、具体的な改善方法は中々調べても出てきません。そこで、本トークでは N+1 問題をそもそも生み出さない方法はどうするのか、既存のアプリケーションから N+1 問題を改善するためにはどうしたらいいのか、といった今後あなたが開発をしていく上での一つの引き出しになれるようなトークを私の今までの経験を交えてできればと思います。

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

アウトプットのススメ~登壇・執筆で開ける優しい世界へのはじめの一歩の踏み出し方~

oyakata2438 おやかた oyakata2438

LTしたことある人、挙手。
カンファレンスで登壇したことある人、挙手。
本書いたことある人、挙手。
何かアウトプットしていますか?Twiterやブログだって十分です。

登壇や執筆なんて、つよつよエンジニアだけができるものだと思ってませんか?違いますよ?もっとカジュアルに登壇・執筆・アウトプットしてみましょう。

トークに自信がない?ネタがない?自分なんて初心者だから?そんな幻想・呪縛はポイです。あなたの「今」を切り取ったアウトプットをしてみましょう。必ず誰かが聞いてくれます。必ず誰かの役に立ちます。そして自分も得るものがあります。必ず次につながります。

アウトプットの始め方、育て方、広げ方、トークネタの作り方、そのあとの広がり、やってうれしかったこと、などなど。

やってみようかなと思った時がはじめ時。アウトプットをはじめることで開ける優しい世界の一端を紹介し、あなたをアウトプットの世界にお誘いします。

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

Advent Calendarを6年やって見えてきたもの

HiroyaYamamoto1 やまもとひろや HiroyaYamamoto1

Advent Calendar(アドベントカレンダー)、以降アドカレと呼称します。
エンジニア界隈の人なら聞いたことがある人が多いでしょう。
エンジニア界隈でいうと12/1~25に記事を投稿していくイベントです。

僕が所属している組織では6年連続でアドカレを実施しています。
私は実施1年目からの発起人です。
はじめは人が集まらず1人でいくつも記事を書いてなんとか25個埋めていました。
運営として代表としてこれではいけないと思い
・地道な声掛け
・せっかく参加して投稿してもらった記事はしっかり読んで感想をFB
などコツコツ続けた結果6年も続けることができています。

・どんなキッカケで開始されたのか
・アドカレを行なうメリット、デメリット
・6年やって見えてきたもの
・これからやってみようと思う人と団体にアドバイス

このあたりを中心にお話できればと思います。
みんなアドカレやろうぜ!

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

Beyond a Tech Company―なぜ、コネヒトはテックビジョンをつくったのか?

itosho itosho itosho

「ママリ」を運営するコネヒトは2020年12月にConnehito Tech Visionとして「Beyond a Tech Company」というビジョンを公開しました。本セッションでは、なぜテックビジョンをつくったのか?そもそも、テックビジョンとは何か?といった話から、技術のコモディティ化が進み、アフターデジタルな世界の実装が進む中で、今後開発組織はどうあるべきか?どういった技術戦略が求められてくるのか?といったお話を出来ればと思います。本セッションとこのテックビジョンの紹介を通じて、一つの開発組織の在り方を提示したいと考えています。

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

PHP・Laravel・PHPUnit バージョンアップ紀行

sogaoh sogaoh sogaoh

自分はこれまで、いくつかのバージョンアップを実行してきました。

  • PHP 7.2 -> 7.4 、7.3 -> 7.4
  • Laravel 5.6 -> 5.7 -> 5.8
  • PHPUnit 5 -> 6 (-> 7 -> 8 -> 9)

Docker の利用により以前よりは格段に難易度は下がっているように思うものの、
躓いたポイントや乗り越えた事例をいくつかお話しできればと思います。

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

いざという時のためにPHPのリファクタリングツール「Rector」を手懐けておく

o0h_ きんじょうひでき o0h_

何らかの理由によって「既存のクラスやAPIの使い方が変更された、それに対応しないといけない!」という場面が、
しばしば開発の現場には発生します。
その時に、なるべく「人間の目と手で作業する」という負担は避けたい・・面倒くさいな・・と思うのが人の心情ではないでしょうか。

https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。
こいつを上手く使えれば、あの退屈で機械的な作業を真の意味で「機械の作業」にする夢が叶うかも知れません!!

本セッションでは、Rectorについて紹介し、具体的に活用するための方法を話したいと思います。

おしながき

  • Rectorってなに?
  • どういう仕組で動いてるの?
  • 具体的にどうやって使われてるの? 〜CakePHP4の アップグレードコマンドを例に〜
  • 独自ルールを作ってみる
3
他イベントOK レギュラートーク(20分)

「気になったらOSSのコード+αを読んでいる」という自分になる

o0h_ きんじょうひでき o0h_

普段の開発において、OSSのライブラリやフレームワークの利用は欠かせません。
そこで「これはどう動くんだろう」「何でこんな動きをするんだ」と思った時にできること・・・公式のドキュメントを読んで見る、インターネットに公開されているブログ等の情報を探してみる。
そして「ソースコードを読んで見る」、「マージまでの経緯を読んで見る」ことです!
ソースコードを読むためには、多少ボリュームのあるソフトウェアからでも「目的の場所を手早く見つけてみる」のが重要です。
また、OSSならではの利点として、コードだけでなく「そこに至るまでにどんな議論があったか」という情報にもアクセスすることができます。ここでもまた、多少のコツを掴んでおくと便利です。

今まで「フレームワークのコードを読んでみるのは苦手だ」「ググって欲しい情報に近い解説やQ&Aが出てこなかったら諦めちゃう」という日々を過ごしていたあなた!
私の周りにも、「ライブラリのコードを読むのは怖い」「面倒くさそう、億劫だ」という人がチラホラいるものと感じます。
もし「ドキュメント探すよりコード読んだ方が早いわ」という選択肢を手に入れられたら、きっと楽しいことになりますよ・・!

明日からは「もっとライブラリと仲良くなれるぞ♡」な日々を歩んでいきませんか?
本セッションが、そのための勇気をもたらす最初の一歩となれればと思います!

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

ゼロベースから Laravel を用いた API 実装オートメーション

m3m0r7 めもり〜 m3m0r7

弊社のシステムはバックエンドのフレームワークは Laravel を使用、そして OpenAPI と呼ばれる API の設計書を書けば CRUD に対応した API が自動的に実装されるような仕組みを用いて自動生成し、最後にバリデーションを書けば、一つの API が完成します。
もともと弊社の社内システムは SaaS 上にしかなかった、かつバックエンドエンジニアが私一人である中で、どう効率的にゼロベースからプロダクトを組み上げてプロダクトのローンチを早められるかが鍵でした。
CRUD に対応した API 実装、正常系・異常系テストの生成自動化、API のドキュメントの記述、全文検索エンジンへどう自動的に繋ぎこむか、例外処理はどうするか?といった全ての事情を汲み取りながら基盤開発に邁進し、
今では一つあたりの API の実装は 10 分もかからないレベルになりました。本トークでは、この基盤の構築をした経験を元に、考えてきた事、実行してきたこと、判断に迷ったこと、そして Laravel を使った実装についてのお話をできればと思います。

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

PHP で電卓を作る

m3m0r7 めもり〜 m3m0r7

プログラミング覚えたての時、電卓を作るといったことをした方や、今現在プログラミングを学習中で電卓を作っている方もいらっしゃるかと思います。
電卓を作るといえば「1+1」と入力したら単純に「2」が出力されるイメージでしょうか。作っているうちに、「あれ?「((1 + 2) × 3)-((1 + 2) × 3)」みたいな式はどうするんだ?」と疑問に思った方も少なくないと思います。そこで本トークでは3分間という短い時間で、複雑な式を計算できる、もう一段階上の電卓を作る方法についてお話します。

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

PHPer のための TypeScript の歩み方

m3m0r7 めもり〜 m3m0r7

ふと「別の言語も学んでみたいけど、とっつき方がわからない」と思う方も多いのではないでしょうか。
特に近年よく使われる TypeScript などを触ってみたいけど、難しそうと思いなかなか手を出しづらいと思っている方もいらっしゃるかもしれません。
TypeScript をチョットワカルようになるだけでも、業務の分野が広がり、フロントエンドエンジニアの業務がどういったことをやっているのか理解しやすくなります。
ちなみに、私は TypeScript を初めて触ったときに作ったものは、ハムスター監視システムでした。
そこで、PHPer である私がどのように TypeScript を学習し、ハムスター監視システムを作り、そして業務レベルまで扱えるようにしたのか本トークでお話させていただければと思います。

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

PHPer のための Go の歩み方

m3m0r7 めもり〜 m3m0r7

ふと「別の言語も学んでみたいけど、とっつき方がわからない」と思う方も多いのではないでしょうか。
特に近年よく使われる Go などを触ってみたいけど、難しそうと思いなかなか手を出しづらいと思っている方もいらっしゃるかもしれません。
Go をチョットワカルようになるだけでも PHP にはない新鮮さ、楽しさを感じることができます。
ちなみに、私は Go を初めて触ったときに作ったものは、ハムスター監視システムで、もともと PHP で作られていたシステムを学習の意味も含めて Go にリプレイスしました。
主に大きい学習としては非同期に処理ができる WebSocket サーバーの実装をゼロから作り上げた点です。もともと Go は既にいろんな WebSocket のサードパーティモジュールが提供されています。しかし、あえて茨の道を進むことにしました。
そこで PHPer である私が Go を歩むにあたってどのように学習をして、WebSocket サーバーの実装を行っていったかを本トークでお話できればと思います。

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

PHP8 野良ビルド物語

m3m0r7 めもり〜 m3m0r7

待望の PHP8 が出ましたね!
パッケージマネージャーで PHP をインストールすることが多い昨今、ビルドって実際にどうやるんだろう?と疑問に思っている方も多数いらっしゃると思います。
敷居が高そう、難しそう、そう思っている方もいらっしゃると思います。しかし本当は PHP そのもののビルドはそんなに難しくありません。
ということでトークの時間を目一杯使って PHP8 のビルドをオーディエンスの皆様と一緒にライブ形式でやってみたいと思います。
本トークで、ビルドをどうやるのか感覚を掴んでいただき、ぜひ様々なシーンでご活用できるようになっていただければと思います。

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

PHPで作るオンラインカンファレンス向け録画システム

tomzoh 長谷川智希 tomzoh

去る9/19〜9/21にiOSDC Japan 2020という技術カンファレスがオンラインで開催され、60本のトークと20本のLTが実施されました。
実施された60本のトークはすべて事前収録され、それを当日に再生する形でカンファレンスを開催しましたが、60本の動画の編集にかかった日数は3日ほどでした。動画編集に詳しい方であればちょっと驚く期間かと思います。

この高速編集を支えたのはPHPでした。

このトークでは私がどの様にPHPでオンラインカンファレンス向け録画システムを構築したのか、そして、同じ様なシステムを作りたい方のためのサービス連携のコツをお話しします。

  • Zoom, YouTube Live, Dropbox を連携させた収録システムの作り方
  • GD, ffmpeg を使用したオンラインカンファレンス用動画編集システムの作り方
  • PHPでサービス連携するためのコツ

このトークを聞いたみなさんが、PHPで高度なシステム連携アプリを作るきっかけになることを期待しています!

参考:
iOSDC Japan 2020
https://iosdc.jp/2020/
iOSDC Japan 2020 トーク動画
https://www.youtube.com/playlist?list=PLod2oSGQp3W4BV6sLUdMwlZD0NHt9mHP7

4