PHPerKaigi 2020 プロポーザル一覧

他イベントOK 15分トーク

静的解析の育て方

杉山 祐一 oogFranz
静的解析はプログラマにフィードバックを最も早く返す仕組みの一つで、コード品質をチームで高める際にも非常に有用です。
しかし、既存のプロダクトに対し静的解析をただ導入した場合、対応しきれないほどのエラーやワーニングが表示されるだけで、コード品質向上への効果が薄くなってしまいます。
本トークでは既存プロダクトにPhanやPhpStormのInspectionといった静的解析ツールを導入し、その後コードの品質向上効果を高めるために、静的解析を育てていった一部始終をお話しします。
6
ルーキーズLT

テスト熱中症対策

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

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

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

PHPシステムをコンテナで動かすための取り組みのすべて

きくもと takakiku
PHPで稼働しているサービスをクラウド移行に向けてまずはコンテナ化し、現状のオンプレ上で動かそうとしています。
実際にコンテナ化しようとすると、Dockerfileが長大になったりとか、デプロイの方法に悩むことが多いのではなかいと思います。
そこで、このトークではPHPコンテナを動かす過程での私たちの
・itamaeを利用したDocker Image作成
・LVSを利用したBlue-Greenデプロイメントの方法
・AWS Systems Manager RunCommand を利用したデプロイの方法
・開発環境でのDocker Imagerの利用方法
などについて、実際の取り組みを生の声として話します。
2
他イベントOK ルーキーズLT

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

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

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

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

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

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

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

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

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

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

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

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

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

Deep Module in PHP

itosho itosho
突然ですが「良いコード」とはどういうコードでしょうか?正解は一つではありませんが、私は「複雑さ」(Complexity)が見えないコードが良いコードだと考えています。複雑さが見えないコードはインターフェースが直感的で、リーダビリティが高くて、変更が容易です。
では、複雑さが見えないコードを実現するにはどうすればよいでしょうか?そこで登場するのが「deep module」という考え方です。「deep module」はスタンフォード大学のJohn Ousterhout教授が『A Philosophy of Software Design』という書籍で提唱しているモジュール設計の考え方です。
本セッションでは「deep module」とは何か?deep moduleを実現するにはどうすればよいか?という疑問をPHPのコードを用いて可能限り具体的に解説したいと思います。「deep module」を理解すれば、きっと今よりも「良いコード」が書けます!
3
LT

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

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

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

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から始めるテスト駆動開発

Tsukahara AkitoTsukahara
恥ずかしいお話ですが、自分は最近までテストコードをちゃんと書いたことがありませんでした。。。
LTではLaravelを新規に導入したタイミングで一念発起し、テスト駆動開発を始めたお話です。

テスト初心者でも、テスト駆動開発は始められるんだ!と、
自分と同じような状況の方にとって、少しでも励みになれればと思います。

▼あらすじ
・テスト駆動開発したいなーと、思ったきっかけ
・0か100じゃなくて、少しづつ始めることが大切
・テスト駆動開発始めてみた感じたこと
他イベントOK ルーキーズLT

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

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

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

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

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

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

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

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

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

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

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

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

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

声を上げないと、助けられないってお話です。
1
他イベントOK LT

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

想定している対象者
- 音声解析に少し興味がある
- 機械学習に少し興味がある
- マイクロサービスに少し興味がある
- Pythonが好き

話さないこと
- 音声解析の本格的な理論
- 機械学習の本格的な理論
- PHP!
6
phperkaigi-2019 sponsors phperkaigi-2019 potential-sponsors
仮採択 情熱加点 非採択
仮採択 他を採択済 非採択