Regular session (25 mins)

PHPerの私がお勧めするSPAフロントエンド開発環境

kaz_29 渡辺一宏

最近ではフロントエンド側をJavaScript(typescript)を使用して開発するケースがかなり増えていると思います。
私もここ数年、いくつかのフロントエンドアプリを作ってきました。

しかし、フロントエンドの開発環境は、進化・変化が早くキャッチアップするのがなかなかに大変です。

このセッションでは、PHPer/Bakerの私が最近気に入っている、React/Next.jsなどを利用したSPAフロントエンドの開発環境、技術要素、開発方法などについて紹介します。

5
Regular session (25 mins)

Laravel Livewire で体験する Server-side Two-Way Bindings

localdisk localdisk

昨今インタラクティブなwebアプリケーションの需要が高まっています。

その需要を満たすため React, Vue.js, Angular 等の JavaScript Framework を使いこなす必要がありますが、フロントエンドの学習コストの問題でなかなか手をつけられない人も多いのではないかと私は推測しています。

Laravel Livewire はそういった問題を解決するために開発されたライブラリで、フロントエンドの多くの処理をサーバーサイドで記述することができます。
本セッションでは Laravel Livewire の紹介と、実際のライブコーディングをあわせてその便利さを体験してもらいます。

5
Regular session (25 mins)

Symfony CLIを使ってPHPアプリケーションの開発用Webサーバをつくる

ippey_s 角田 一平

MAMPやvagrant、Dockerなど、PHPアプリケーションを開発・検証するWebサーバをつくるにはいろいろな方法があります。
いずれも便利なツールですが、"Symfony CLI"でも簡単に開発Webサーバをつくることができます。
Symfony CLIを使って、そこそこ快適な、壊しやすい開発Webサーバのつくり方をご紹介します。

Lightning talk (3 mins)

PHPで動的なOGP画像を生成しよう!

gamu1012 サイトウ

各コンテンツのタイトルが含まれるような動的な自動生成のOGP画像を活用しているサービスが増えてきました。

これを実現する方法はいくつかありますが、私達になじみのあるPHPでも、もちろん実装することができます。

このLTではOGP画像生成のながれとポイントなどをご紹介します。

8
Regular session (25 mins)

ライフステージ別技術イベントとの付き合い方 〜仕事と子育て、時々勉強会〜

s_yo_ko しもおか

エンジニア夫を見送る側、見送られる側、両方の経験をしてきました。
独り身の時には気軽に参加していた勉強会やカンファレンス。
パートナーができたら?子供ができたら?
いつまでも今までと同じように参加できると思っていたりしませんか?
長年イベント参加するには家族の理解を怠ってはいけません。
送り出す側の気持ちを伝えたいと共に、子育て真っ最中の方やこれから子育てする若い方々に、エールを送りたいと思います。

6
Long session (60 mins)

Laravelの黒魔術(拡大版)

localdisk localdisk

Laravelの黒魔術

ここ数年、Laravelの利用者は大幅に増えました。

Laravelにはたくさんの便利な機能がありますが、その機能はどのように動いているか知っていますか?

本セッションではLaravelのコードの中で私がとくに面白い!と思ったものを(なるべく)わかりやすく解説します。

拡大版はおもしろポイントを増やしてがっつり解説します。

7
Lightning talk (3 mins)

俺のCDD(カンファレンス駆動開発)は始まったばかりだ!

goodoo 株式会社サイバーエージェント 白井 英

世の中のエンジニアでマネージメントをしている方は、たくさんいるかと思います。
私もその中の一人です。
普段、業務の中でコードを書くことができず、かといってメンバーのマネージメントに
技術力が必要ないか、というと、そういうわけでわけではありません。
そこで、CDDです。
業務以外にコードを書く習慣、モチベーションを保ち、エンジニアのQOLをあげる
方法をお話できればとおもいます。

1
Lightning talk (3 mins)

隣のリモートワーク事情

itosho itosho

新型コロナウイルスにより私たちの生活は一変しました。私が所属するコネヒト株式会社ではもともとリモートワークは行っていなかったのですが、例に漏れず緊急事態宣言が発令される少し前にフルリモートワーク体制に踏み切りました。
今後どうなるかは分かりませんが、突然リモートワークに踏み切った会社がこの9ヶ月の間に経験したこと、上手くいった取り組み、逆に上手くいかなかった取り組みを1つの事例としてお話出来ればと思っています。

1
Regular session (25 mins)

最高のエンジニア評価制度を目指して

itosho itosho

評価や目標の制度に対して、皆さんはどんなイメージを持っていますか?程度の差こそあれ、皆さん一度くらいは不満を持ったことがあるのではないでしょうか?
私が所属するコネヒト株式会社では今年度から評価制度をフルリニューアルしました。本セッションでは、何故フルリニューアルすることになったのか?どのような評価制度なのか?どのように運用しているかなど評価制度の仕組みや裏側をお話させていただきます。
評価制度は技術的なトピックと比べるとまだまだ普段なかなか表に出ることのないトピックではありますが、エンジニアの仕事の中で重要な要素の1つだと私は考えています。ですので、本セッションを通じて評価制度についての議論やナレッジの交流が前進するように失敗談も含めてお話出来ればと思っています。

10
Regular session (25 mins)

PHPのSession Poolをまじめに考える

goodoo 株式会社サイバーエージェント 白井 英

Google Cloud SpannerのPHPのライブラリにはSession Poolが実装されています。
これは、複数のプロセス間でキャッシュされたセッションを共有するを実現しています。
本セッションでは、どのように、プロセスをまたいで、Session Poolを実現しているのか?
また、Cloud Spanner以外の応用についてご紹介します

5
Regular session (25 mins)

テストを設計する

kazuhei__ かずへい

アプリケーションに自動テストを組み込むのは今では一般的なことになりました。
しかし、テストにはUIテスト、統合テスト、ユニットテストといった種類があり、どこまでをどのテストでカバーすべきなのか、実際にどうやって書けば良いのかについては、まだまだ手探りの方も多いのではないでしょうか?

テストの設計には正解はないと思います。それはどれくらいのコストをかけて、どれくらいのリターンを得ようとするかがチームによって違うからです。それでも、実際に業務でテストを書いている経験から、どのようにテストを分割するべきか、モックはどのように使うべきか、という知見を話せたらと思います。

11
Lightning talk (3 mins)

openapi-psr7-validator を Middleware に組み込んでみた

sogaoh sogaoh

OpenAPI PSR-7 Message (HTTP Request/Response) Validator^1 というやや新しめのライブラリがあります。
定義された REST API 仕様に即しているかをチェックしてくれるのですが、これを Laravel の Middleware に組み込むという取り組みをしました。その結果、

  • レスポンス^2 のみならずリクエストに関してもAPI仕様に即しているかをチェックできるようになった
  • API ごとに テストメソッドを作らなくても良くなって、テスト実装負荷が少なくなった

といったメリットを得ることができました。
一方で、未解決の課題もあり、応急処置としてリクエスト・レスポンス両方を Validate するクラスと、レスポンスのみを Validate するクラスに分けるといった苦し紛れなこともしました。

本LTでは、この実装における良いところ悪いところを紹介して、ライブラリ活用についての何らかの知見を共有できればと思います。

8
Regular session (25 mins)

PHPer のための Go の歩み方

m3m0r7 めもり〜

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

8
Regular session (25 mins)

PHPer のための TypeScript の歩み方

m3m0r7 めもり〜

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

5
Regular session (25 mins)

既存アプリケーションにLaravelを適用するを考える

古賀敦士

私が携わっているシステムでは、過去に既存PHPアプリケーションにLaravelを導入した経緯があり、bootstrap処理の中で独自設定を施しています。
これによってLaravelのデフォルト設定を都合が良いようにカスタマイズして使っています。
Laravelのデフォルト設定がどうなっていて、どういうカスタマイズをなぜやっているかをベースに、既存アプリケーションへの適用についてお話しできればと思います!
これから導入を考えている、設定をいじりたい、フレームワークのソースコードに興味があるという方の一助になれば幸いです。

5
Regular session (25 mins)

事業を支えるレガシーコードとの向き合い方

takushinohara 篠原 卓

私の所属する組織では、10年以上に渡って「小さなお葬式」というWeb集客型の葬儀サービスを提供し続けています。
サービスを構成するWebサイトや基幹システムをはじめ、関連するほぼすべてのシステムをPHPで開発しています。
本セッションでは、事業の急成長とともに肥大化・複雑化していった基幹システムをドメイン駆動設計を足がかりにリプレースした話を軸にして、
レガシーコードやレガシーシステムと向き合ってきた私達の過去〜現在〜未来についてお話させて頂きます。

8
Regular session (25 mins)

私が歩んできた「エンジニアのキャリア論」

saik1010 斉藤健太

株式会社ウエディングパークでエンジニアリングマネージャーをしています。

このプロポーザルを書いている10月からSREへジョブチェンジすることを決断しました。
私のこれまで歩んできたキャリアは、サーバサイド→マネジメント→QA→SREと、あらゆる職種を渡り歩いてきました。

PHP界隈のエンジニアを初めとして、昨今のエンジニアにおいてのキャリアパスは多岐に渡っており、
自分がどこに進めばいいか?何を極めていくべきか?どういう人材でありたいか?は頭を悩ませている人も多いはず。

今回は、私が10年間のエンジニアとしての歩んできたキャリアを1つ1つ棚卸しをしながら、
それぞれの分岐点で何を考えてきたか、失敗と成功例、キャリア整理の仕方など、
実際に経験し、実践をしてきたことをお伝えできればと思います!

3
Lightning talk (3 mins)

急に「採用の面接出てもらえませんか」と言われたら

sobaimoo 山崎 一樹

昨今のエンジニアの採用活動においては、人事の採用担当者やエンジニアリングマネージャーだけでなく、現場で活躍するエンジニアのかたも採用活動に関わることが多いのではないでしょうか。
また、採用の精度を上げることが課題となっている会社組織も多いのではないでしょうか。

これから採用に関わるPHPerの方々に向けて、私の失敗を踏まえながら、面接において気をつけるポイントを紹介したいと思います。

8
Regular session (25 mins)

Re:Startup Day-1

ariaki4dev ariaki

他社事業を買収し再出発するWeb系スタートアップの技術責任者。こんな経験をされる方は少ないのではないでしょうか。
このセッションでは「君、明日から技術責任者ね」と言われたエンジニアが何を考え、どう判断するのか、現在進行系のリアルな経験談をお話します。
一般的な職位のあるべき論ではなく「スタートアップのDay-1に立った」私を主語にしキャリアと思考についてお伝えします。
技術中心思考から事業全体へと視座をあげ意識を変革することは、すべてのエンジニアにとって成長のきっかけになるはずです。
技術職でのキャリアアップをめざし今後どう成長していくべきか悩まれている方に、ぜひ聴いていただきたい内容です。

6
Regular session (25 mins)

PHPと乱数

ariaki4dev ariaki

PHPには乱数生成関数がたくさん実装されていますが、いったいどれを使えばいいでしょうか?

rand()
mt_rand()
random_int()
random_bytes()
openssl_random_pseudo_bytes()

なんでこんなに関数があるんでしょうね。
みなさんはどの関数をどんな目的で使ってますか?それって本当に安全ですか?
それぞれどんな歴史的経緯があり、アルゴリズムや実装ってどうなっているでしょうか。
このセッションでは、そもそも乱数とは何か基礎知識からはじめ、PHPでの実装を踏まえながら解説を進めます。
さぁ、PHPの闇に触れましょう。

6