PHPerKaigi 2020 トーク一覧

LT

エンジニアとして、母として、20年の歴史を振り返る

s_yo_ko 下岡 s_yo_ko

昨年、子供が成人式を迎えた記念に、子育てもエンジニアとして働くことも、どちらも諦めずに過ごした21年間を振り返りたいと思います。
・実家には頼れない!
・リモートワーク
・保活とか子供の受験とか
・保護者会とかPTAとか
・残業できない自分
・旦那は気軽に飲み会に…
・勉強会などのイベントに参加する旦那(エンジニア)を見送る一方、いつも留守番の私
そして、今。

PHPとは関係ない話ですみません。
イベント参加される方々に、送り出す側の気持ちを伝えたいと共に、
子育て真っ最中の方やこれから子育てする若い方々に、エールを送れたらと思います。

2
ルーキーズLT

Laravel Vapro で、Laravelをお手軽 Severless化

akki_megane 秋葉 誠一 akki_megane

Laravel Vapro とは、Laravelのアプリケーションを、AWS Lambda 上に構築しするためのサービスです。
AWS Lambda 上に構築することにより、LaravelをSeverless 化することができ、
Severless の特徴である、「管理コストの低減」、「自動スケーリング」、「従量課金」の恩恵を受けることができます。

Laravel Vapor は、Laravelの製作者 Taylor Otwell 氏自らが、10ヶ月 週 40時間をかけて作成したサービスで、2019/09/11 に正式 リリースされたばかりです。
このサービス自体有料なので、使うのに躊躇されている方や、「実際どうなのよ? 」
と思っている方向けに、Laravel Vapro についてお話できればと思います。

ルーキーズLT

テスト熱中症対策

akki_megane 秋葉 誠一 akki_megane

昨今PHP界隈でもテストコードを書くことが当たり前になってきました。
テストコードのある開発体験をすると、一時期からテストが大好きになる時期がやってきます。
このことはTDD本では テスト熱中症 (test infected) と表現しています。

テスト熱中症 自体悪いことではありませんが、
テスト熱中症が悪いほうに悪化すると、手当たり次第見境なくテストを書き、
テストを書くことが自体目的となってしまうことがあります(実際私がそう)。

テストコードは道具であって、テストコード書くこと目的にしてはいけません。
そんな戒めを込めた話しをできればと思います。

他イベントOK ルーキーズLT

アーキテクチャをとりいれようとした時の失敗談

7272_f あんどす 7272_f

新規プロジェクトを立ち上げる際、悩むことの一つにアプリケーションのアーキテクチャ設計があります。
私自身、プロジェクトの立ち上げで、アーキテクチャ設計をおこなったりするのですが、
その中で体験した失敗談を中心にお話させて頂けたらと思います。

以下、アジェンダ(予定)です。
・アーキテクチャについて
・失敗談
 ・メンバーへのアーキテクチャ浸透
 ・アーキテクチャへの固執
・まとめ

他イベントOK 30分トーク

マスターデータの管理運用と実装について

KentarouTakeda 武田 憲太郎 KentarouTakeda

パフォーマンス・スケーラビリティ・開発・運用、
これら多角的な観点から「マスタデータ」を考えます。

都道府県マスタ : 1:北海道/2:青森/3:岩手/4:宮城 …
金融機関コード : 1:みずほ銀行/5:三菱UFJ銀行/9:三井住友銀行 …
ポケモン一覧 : 1:フシギダネ/2:フシギソウ/3:フシギバナ/4:ヒトカゲ …
カテゴリ一覧 : general:一般/social:世の中/economics:政治と経済 …

変わらないデータでしょうか?変わるデータでしょうか?変わるとしたらいつでしょうか?運用するの誰でしょうか?

データの特性を捉えた適切な実装により、開発と運用の双方を効率化できます。その方法をご紹介します。

1
LT

誰でも簡単に始められるBDD(ビーチ駆動開発)のススメ

kanbo0605 カンボ@沖縄 kanbo0605

私の会社では、沖縄で半年に一回、開発合宿を主催しており、その中で海辺で開発をした話をします。
実際、海辺でビーチ駆動開発をしてどうだったか?開発は捗るのか?支障はないのか?注意点などを話させて頂きます。

他イベントOK LT

4年に1度動くWebサービスの技術的変遷

itosho itosho itosho

私は2012年からうるう年の2月29日にだけ動く「PRESENT4229」というWebサービスを個人で運営しています。4年に1度という特性上、サービスイン前にほぼフルスクラッチでシステムのリプレイスを行っています。
本セッションでは「PRESENT4229」が辿ってきた技術的変遷を紹介しながら、Web技術がこの8年間でどのように進化・変化してきたのかを読み解きたいと思います。そして、来る2020年2月29日、 3回目のサービスインを控えた「PRESENT4229」の裏側をどこよりも早くお話させていただきます!

PRESENT4229: https://present4229.com/

2
他イベントOK ルーキーズLT

Laravelを新しく社内標準にするために奮闘したお話

AkitoTsukahara Tsukahara AkitoTsukahara

慣れ親しんだフレームワークでいろんな案件に挑戦するのも良いですが、
エンジニアとしては、新しい技術で案件に挑戦したくなるものですよね。

LTでご紹介させていただきたいのは、
Laravelを社内標準に追加させてもらった際に
社内であれこれ相談・説得したり、実際にサービスを作ったりしたお話です。

▼あらすじ
新しいフレームワークを新しく導入するには色々とハードルを超えないといけませんでした。

特にクライアントのサービスで導入するには
以下のチェックポイントをクリアして、ディレクターに納得してもらう必要がありました。

・導入することによりクライアントに与える事ができるメリットを考える
・工数がオーバーしないか確認する
・技術相談できる相手がいるか確認する

これらのポイントをどのようにクリアしていったのか...!?
Laravelを導入して、組織はハッピーになれたのか...!?

他イベントOK LT

コミュニティに助けられたから、みんな悲鳴をあげよう

nyamucoro ういろう nyamucoro

エンジニアとして落ちこぼれだった私が、
1年かけて生まれ変わった(と思う)理由って?

ただの落ちこぼれが、今ではあちこちで登壇してたりします。

ブログ・登壇いろいろやってましたが、
私は、1%の努力と、99%の幸運で今ここに居ます。

・友人の存在
・若手ものづくり集団の存在
・そして、PHPerコミュニティの存在

今の私がいるのは、その1%の悲鳴と99%の温かいコミュニティで
出来ているってお話をします。

声を上げないと、助けられないってお話です。

1
他イベントOK LT

Laravelの6.xがバージョンアップ多い理由って?

nyamucoro ういろう nyamucoro

『Laravel5系』ってひとくくりにするのは間違ってるってお話します。

■結論
Laravel6.xからセマンティックバージョニングになったよ

Laravelが6になってから、めっちゃバージョン上がってない!?
って思った人はたくさんいると思います。

でもそれは、5までと違って、6からはバージョニングが変わったからです!

■内容
・セマンティックバージョニングって?
・今起こってるバージョンアップって?
・どんなの増えてる?
・セマンティックバージョニングにしないって過去のドキュメントにあった気がすr

他イベントOK 30分トーク

バージョンアップで心が折れた話

nyamucoro ういろう nyamucoro

注)この話はフィクションです。きっと。

■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人

皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。

でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。

これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。

■内容
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ
・見えない終わり
・把握できない予算、見積もり
・PHPのアプデは簡単だったという圧力
・本当はマイナーバージョンアップではない誤解
・把握できないバージョンアップの利点

1
他イベントOK 15分トーク

バージョンアップで心が折れた話

nyamucoro ういろう nyamucoro

注)この話はフィクションです。きっと。

■対象
・今最新を使っている人(メインターゲットです)
・これからやる人
・もうやって、あるある話を聞いて涙したい人

皆さん、バージョンアップしてますか?
PHPや、Laravel、古くなってきたからバージョンアップしよう。
よくある話ですね。

でも、何も考えずにプログラムを書くと、あとで痛い目を見ます。

これは、本当にあったかはわからない、バージョンアップで悲しみを背負った人の話。

■内容(変更あるかもしれません)
・vendor配下をいじった報い
・コードをコピペで拡張した悲しみ
・Laravelを見捨ててPHP上げたらLaravelがお亡くなりに
・テストコードなんてなかった
・このライブラリはもう居ない
・消えた機能
・見つからない変更点
・再度襲いかかるコピペの悲しみ

他イベントOK 15分トーク

PHPを倒そうと戦った10年間の苦闘

mahiguch1 樋口雅拓 mahiguch1

静的型付言語なら、こんな苦労はしないで済むのに!
そう思った経験は、ありませんか?
それを強く感じたため、PHPに変わる何かを探し始めました。
そして、以下の5つのチャレンジを行いました。

  • チャレンジ1: Scalaを使ったチャットシステム
  • チャレンジ2: Haskellを使った大陸間レプリケーションバッチ
  • チャレンジ3: goを使ったメディアサービス
  • チャレンジ4: pythonを使った推薦システム
  • チャレンジ5: Kotlinを使ったカンファレンスアプリ

これらのチャレンジを通じて、どのような成果を達成できたか、そしてPHPと比べて良かった点と悪かった点について発表します。

1
他イベントOK 15分トーク

PHPerがこれから「型」とお付き合いしていくために

penguin_no_045 やなせ たかし penguin_no_045

PHP でも「型」に関する議論が盛り上がっている今、一度「型」についておさらいしてみませんか?
近年、主要なプログラミング言語の「型」を取り巻く環境が変化しています。もちろん PHP も例外ではなく、7.0 以降「型」に関する機能を強化しています。
PHP では型ヒントの強化や、Java ではローカル型推論が導入されるなど、さまざまな言語で「型」に関する機能が拡張されています。
この拡張の傾向としては、動的型付け言語(PHP, Python)は漸進的型付けを導入する、静的型付け言語(Java, C#)は型推論を導入するというのがよくみられます。
その結果、言語の型付けの方式に寄らず、必要な個所に型を記述するというスタイルに収束していきそうな気配すらあります。
しかし、両者の間で「型」そのものの扱いには明確に差があります。その差とは何でしょうか?その差は何をもたらすのでしょうか?
そして、PHP 上で「型」と向き合う時が来たとき、どのように付き合っていくのがいいのでしょうか?
このセッションでは、両者の「型」の進化をおさらいしながら、PHP がこれから「型」と付き合っていく上で得られるものや課題、PHPer が「型」とうまく付き合っていくための基礎知識についておなしします。

1
他イベントOK 15分トーク

僕たちがもくもく勉強会コミュニティをやめ、PHP向けコミュニティを立ち上げた理由。活かされたもの。捨てたもの。

miracle_fjsw 藤澤貴之 miracle_fjsw

「コミュニティ運営を通して、エンジニアとの繋がりを広げ、自己成長につなげたい。」
そんな思いで、私たちは、2019年1月から、特にジャンルを問わない「もくもく勉強会」コミュニティを立ち上げ、9月までにのべ100人超の方に参加して頂くことができました。
10月からは、それまでの「もくもく勉強会」をやめ、「PHPを主軸としたWeb開発に関する勉強会コミュニティ」として再始動をしています。
本セッションでは、私たちが、なぜスタイルを変えてコミュニティを再始動するに至ったか、どのように変えたのかという点に触れつつ、これまでコミュニティ運営をやってみたうえでの、気づき・学び、安定したコミュニティ運営のためにやっていることなどをご紹介します。

1
他イベントOK LT

ヘッドレスCMS「microCMS」を使ったJAMstack構成でコーポレートサイトをリニューアルした話

kanbo0605 カンボ@沖縄 kanbo0605

Nuxt.js + Netlify + ヘッドレスCMS「microCMS」のJAMstack構成でコーポレートサイトをリニューアルした話をします。
この構成で開発することによって、サイトの表示速度の改善、UXの向上、開発スピードの向上に繋がりました。
また、microCMSは管理画面上でユーザの操作に必要な部分だけを見せるような構成になっており、ユーザ目線でもとても便利だと思います。

他イベントOK 30分トーク

音声知識ゼロ!音声データの解析・ベクトル化・学習をマイクロサービスとして開発して得たこと

_ohshige 大重智志 _ohshige

ユーザ投稿型の音声配信サービス内のひとつの機能として、あるユーザにとって好きな投稿をレコメンドすることになりました。
分析の結果、「好きな投稿=よく聴く投稿に似ているもの」であるだろうと仮定し、似ている投稿とは何なのかの研究が始まりました。
投稿データは音声の波形データであるので、その音声データを解析して特徴ベクトル化し、それを用いて似ている投稿を学習により推定することにしました。
そして最終的に、音声知識が皆無である中、音声データの解析手法やベクトル化手法とその実装について試行錯誤し、最終的にはサービスにそのまま組み込むのではなくGCP上でマイクロサービス化することで疎結合なシステムを作り上げました。

これは、Pythonを用いて、音声知識がゼロの状態から、数多の音声データを聴き様々な手法を試し学習させマイクロサービスを完成させた、PHPerによるトークとなります。

具体的には以下のような内容を予定しています。

  • 音とは何か
  • 「似ている」とは何なのか
  • どのような解析手法を使ったのか
  • どのように特徴ベクトル化しているのか
  • どのような学習をさせたのか
  • 最終的にどのようなレコメンドになったのか
  • 設計・マイクロサービスについて

基本的にPythonを使って実装しており、PHPの話は一切出来てきません!

想定している対象者

  • 音声解析に少し興味がある
  • 機械学習に少し興味がある
  • マイクロサービスに少し興味がある
  • Pythonが好き

話さないこと

  • 音声解析の本格的な理論
  • 機械学習の本格的な理論
  • PHP!
6
他イベントOK 15分トーク

音声知識ゼロ!音声データの解析・ベクトル化・学習をマイクロサービスとして開発して得たこと

_ohshige 大重智志 _ohshige

ユーザ投稿型の音声配信サービス内のひとつの機能として、あるユーザにとって好きな投稿をレコメンドすることになりました。
分析の結果、「好きな投稿=よく聴く投稿に似ているもの」であるだろうと仮定し、似ている投稿とは何なのかの研究が始まりました。
投稿データは音声の波形データであるので、その音声データを解析して特徴ベクトル化し、それを用いて似ている投稿を学習により推定することにしました。
そして最終的に、音声知識が皆無である中、音声データの解析手法やベクトル化手法とその実装について試行錯誤し、最終的にはサービスにそのまま組み込むのではなくGCP上でマイクロサービス化することで疎結合なシステムを作り上げました。

これは、Pythonを用いて、音声知識がゼロの状態から、数多の音声データを聴き様々な手法を試し学習させマイクロサービスを完成させた、PHPerによるトークとなります。

具体的には以下のような内容を予定しています。

  • 音とは何か
  • 「似ている」とは何なのか
  • どのような解析手法を使ったのか
  • どのように特徴ベクトル化しているのか
  • どのような学習をさせたのか
  • 最終的にどのようなレコメンドになったのか
  • 設計・マイクロサービスについて

基本的にPythonを使って実装しており、PHPの話は一切出来てきません!

想定している対象者

  • 音声解析に少し興味がある
  • 機械学習に少し興味がある
  • マイクロサービスに少し興味がある
  • Pythonが好き

話さないこと

  • 音声解析の本格的な理論
  • 機械学習の本格的な理論
  • PHP!
7
他イベントOK 30分トーク

新規開発において経験未熟なチームに新たな「設計」について受け入れてもらうために取り組んだこと

_ohshige 大重智志 _ohshige

新規サービスの立ち上げに伴い新しいチームが発足しました。
これまではデータベースの設計であったりAPIエンドポイントの設計であったりはもちろんしっかりとやってきましたが、恥ずかしながらアプリケーションコード自体の設計はしっかりとはやってきませんでした。
ファットなコントローラーにテストも不十分という環境が当たり前のなか、新しいチームでの開発が始まるにあたり、せっかくなら良い設計のサービスにしようと思いたちました。
設計指針として様々な選択肢がありますが、今回はクリーンアーキテクチャを採用することにしました。
私自身も含めて設計に明るいメンバーはおらず、リリース日も決まってしまっているなかで、新たな「設計」を取り入れることをチームに受け入れてもらうために奔走し、挑戦しました。

これは、ひとりの設計初心者であるPHPerが、設計初心者チームに受け入れてもらうために取り組んだことに関するトークとなります。

具体的には以下のような内容を予定しています。

  • なぜ「設計」に挑戦しようと思ったのか
  • 設計で何を解決したかったのか
  • なぜクリーンアーキテクチャを採用したのか
  • どのような設計にしたのか
  • チームメンバーに受け入れてもらうために取り組んだこと
  • 取り組みとして成功したことと失敗したこと
  • 設計に挑戦して良かったこと
  • チームで設計に挑戦したその先

チームに受け入れてもらうために行ったことがメインで、設計手法自体はサブになる予定です。
PHPの話も少しだけ出てくると思います。

想定している対象者

  • 設計を取り入れたいと悩んでいる
  • レガシーな環境に辟易している

話さないこと

  • 詳細な設計論
8
他イベントOK 15分トーク

新規開発において経験未熟なチームに新たな「設計」について受け入れてもらうために取り組んだこと

_ohshige 大重智志 _ohshige

新規サービスの立ち上げに伴い新しいチームが発足しました。
これまではデータベースの設計であったりAPIエンドポイントの設計であったりはもちろんしっかりとやってきましたが、恥ずかしながらアプリケーションコード自体の設計はしっかりとはやってきませんでした。
ファットなコントローラーにテストも不十分という環境が当たり前のなか、新しいチームでの開発が始まるにあたり、せっかくなら良い設計のサービスにしようと思いたちました。
設計指針として様々な選択肢がありますが、今回はクリーンアーキテクチャを採用することにしました。
私自身も含めて設計に明るいメンバーはおらず、リリース日も決まってしまっているなかで、新たな「設計」を取り入れることをチームに受け入れてもらうために奔走し、挑戦しました。

これは、ひとりの設計初心者であるPHPerが、設計初心者チームに受け入れてもらうために取り組んだことに関するトークとなります。

具体的には以下のような内容を予定しています。

  • なぜ「設計」に挑戦しようと思ったのか
  • 設計で何を解決したかったのか
  • なぜクリーンアーキテクチャを採用したのか
  • どのような設計にしたのか
  • チームメンバーに受け入れてもらうために取り組んだこと
  • 取り組みとして成功したことと失敗したこと
  • 設計に挑戦して良かったこと
  • チームで設計に挑戦したその先

チームに受け入れてもらうために行ったことがメインで、設計手法自体はサブになる予定です。
PHPの話も少しだけ出てくると思います。

想定している対象者

  • 設計を取り入れたいと悩んでいる
  • レガシーな環境に辟易している

話さないこと

  • 詳細な設計論
6