レギュラートーク 15分

Progate で 勉強しました!的な 新人スタッフを 現場で1人月に昇華するまでの道のり

_mikakane 後藤知宏

未経験スタッフやスクール卒で、 FizzBuzz もかけない…みたいなスタッフを
業務で活躍できるレベルまで持っていくために必要なものはなにか、みたいなお話をします。

技術知識と業務知識は違うよ、みたいなお話とか、社内教育のプロセスについてなど

レギュラートーク 15分

レガシー組織でlaravel使ってdddしてみた話

tama_camp tama_camp

普段の弊社はレガシーな環境で開発をしている。web系の企業なのにサーバーは未だオンプレだし、phpのバージョンをあげるにも四苦八苦しているし、slackを使い始めたのもつい半年前だし、フレームワークは使っていない。そんな弊社は社員が40人程度しかいないのにコミュニケーションエラーが多く、営業からのリクエストも開発側では聞いてないなど不毛な議論をしている。なのでDDDを導入して営業側もドメインマスターとして開発に関わってもらう体制に変更中。この体制変更を営業に理解してもらう上で躓くところ、こう話すと理解してもらいやすいよといったTIPSになります。

採択
2019/03/30 10:40〜
Track B
レギュラートーク 30分

フレームワークを作りながらLaravelのアーキテクチャを学ぶ

Fendo181 endu

PHP界隈で最も普及したフルスタックフレームワークであるLaravel。
便利なフレームワークが持つ豊富な機能に”甘い”魅力を感じる一方で「なぜLaravelではファサードを採用しているのか?」、「なぜEloquent を採用しているのか?」と言った疑問を考えた事はあるでしょうか?
「“How” ages faster than “Why”(手段は本質よりも早く廃れる)」と言う言葉があるように、Laravelでのメソッドの呼び出し方は他のPHPのFWでは通用しませんし、他の言語でも意味をなさないもしれません。しかし、Laravelで採用されている技術やアーキテクチャは言語の壁を超えて流用ができると考えています。

この発表では0からフレームワークを作りながらLaravelで採用されているアーキテクチャが「なぜ良いのか?」っと言った視点で発表をしたいと思います。

レギュラートーク 15分

PHPerとして取り組むすべてのユーザーのためのWebアクセシビリティ

shiori_pk 古賀詩織

Webアクセシビリティに取り組むのはディレクター?デザイナー?フロントエンドエンジニア?
いえ、私たちPHPerもしっかりと取り組んで行かなければなりません。

アクセシビリティと聞くと障がい者向けの取り組みかと思われますが、一概にそうとは言えないでしょう。
もしかすると、あなたが作っているWebサイトは身近な誰かがアクセス出来ないかもしれません。

今回のトークではAPI設計の際に考えるべきWebアクセシビリティについて話します。
PHPerだからWebアクセシビリティについて考えるのは関係ないとは言わせません!

4
レギュラートーク 15分

心理的安全性デザインパターンとアンチパターン

inase17000 星 永亮

最近なにかと話題の「心理的安全性」ですが、私が過去に10以上の本や記事をインプットした結果で、できるだけわかりやすくイメージがつきやすいように説明します!
・心理的安全性とは(一般的な定義と、間違った定義を解説!)
・心理的安全性は誰のもの?(心理的安全性を作り出す人は誰なのか、誰であるべきなのかを解説!)
・心理的安全性の高め方3選、壊し方3選(実例含めて、デザインパターンとアンチパターンを紹介!)
・明日からできる心理的安全性確保活動
15分を目一杯使って、「心理的安全性」のことだけひたすら話し、考える時間にしようと思います。

7
レギュラートーク 15分

テストできるライブラリ - 割り込みの技術

niisantokyo 新倉涼太

最近ではPHPアプリケーション開発において、自動テストを入れるのが普通な状況になってきましたが、一方で外部ライブラリをどうやって扱おうかが悩みどころです。mockを使ってライブラリを置き換え、インターフェースのテストだけで済ませてもいいのですが、ライブラリの仕組みを使って、より突っ込んだテストができないかとも思います。そこで、ライブラリの通常処理に、別の処理を割り込む仕組みを利用することで、より意味のあるテストをかけることを、GuzzleやSwiftMailerを例にとって解説していこうと思います。

採択
2019/03/31 11:25〜
Track B
レギュラートーク 15分

PhpStormでコードを理解する技術

tenkoma 田中孝治

PhpStormを知っていますか?
PHPStormはプラグインのインストールや設定カスタマイズをしなくても様々な便利な機能がついている統合開発環境です。
しかし、自分のプロジェクトに合わせて多少の設定を行うと、コードリーディングがさらに楽になります。
このトークではPHPユーザー向けに読みたいコードを探し出すための検索機能から、静的解析連携、テスト・デバッグを使ってコードを理解する方法などを説明して、PhpStormがプログラマのコードを理解する能力をどう拡張してくれるか紹介します。

採択
2019/03/31 14:55〜
Track A
ルーキーズLT

はじめまして!Webアクセシビリティ -PHPer編-

shiori_pk 古賀詩織

PHPerの皆さんは普段Webアクセシビリティについて何か取り組んでいますか?
皆さんが作っているWebサイト、Webサービスは本当に、すべてのユーザーに使ってもらえるものですか?

今回のLTでは

  • Webアクセシビリティの概要
  • よくあるWebアクセシビリティのアンチパターン
  • PHPerとして考えるべきWebアクセシビリティについて

を紹介したいと思います。

レギュラートーク 30分

バグ・脆弱性の温床10連発

tadsan うさみけんた

PHPはそれ自体がWebに特化した機能を持つ開発環境ですが、使用方法を誤ると予期せず実行が中断されたり、脆弱性の温床になるようなパターンがいくつもあります。このトークでは時間の許す限りパターンの紹介と解決策の提案を紹介します。 (タイトルの10の進数表記は任意の整数とする)

レギュラートーク 15分

パケットを操作してサーバ、クライアントを騙してみる

kobatako_ kobatako

アプリケーション開発をしてれば忘れがちなネットワーク周り。
そんなネットワークからパケットを操作し、色々と実験をしてみました。
内容としては障害、攻撃、冗長化をメインにそれぞれの実装方法と挙動について見てみたいと思っています。
パケットを操作することで改ざんをしたり、クライアントにバレずにサーバを切り替えたりなど自分の興味の赴くままにやってみました。
カオスエンジニアリングにも挑戦してみたいと思いその入り口として、障害実装もしています。

実装方法は自作ソフトウェアルータを利用してその中でL3、L4のパケットを操作して実装してみました。
言語はErlang、Elixirを使って実装をしています。

実装する中で気づいたこと、気をつけること、今後やりたいことなどについても話せればと思います。

2
採択
2019/03/31 10:25〜
Track B
レギュラートーク 15分

255オクテットのドメインはツラみがある!

rela1470 Jun Watanabe

皆さんの日常生活には欠かせない、ドメインという仕組み。
なんとなく使っていませんか!?

例えば、何文字まで長く出来るかわかりますか?
(タイトルでネタバレ)

ドメインを最長にした際、
・メールアドレスはどうなる?
・Nginxの設定は?
・サーバーレスは?
・SSL証明書は?

今回は仕様最長のドメインで実際にサイト運営した経験を題材に、
RFCの仕様からFirebase検討までの奮闘記をお話します。

採択
2019/03/31 10:55〜
Track B
レギュラートーク 15分

PHPerKaigi2019のサイトができるまで

cotolier_risa yasui risa

PHPerKaigi2019にてデザインスポンサーとしてWebサイトの制作をさせていただきました!PHPerKaigi2019のサイトができるまでの過程において、デザインに込めた想いやワークフロー、Nuxt.jsでの実装の内容でお話したいと思います。

レギュラートーク 30分

AWS Lambdaカスタムランタイムで始めるサーバレスPHP

taiko19xx 木村俊彦

これまで、AWSのサーバレス実行環境であるLambdaで実行できる言語は限りがあり、場合によっては新たな言語を習得しなければなりませんでした。
しかし、昨年の追加されたLambdaのカスタムランタイム機能により、(ある程度の準備こそ必要ですが)PHPを初めとする自分が今まで使い慣れている言語で開発及び実行できるようになり、より手軽にサーバレス開発が行えるようになりました。
本セッションでは、Lambda+PHPという環境を通じて、
・PHPカスタムランタイムの動かし方や作り方
・どのように動くのか
・どのような用途に向いているのか
といった概要や、各種フレームワークを動かしてみた結果といった調査結果などについてお話します。

2
採択
2019/03/31 15:00〜
Track A
ルーキーズLT

レガシーコードに最低限の秩序をもたせる

juve534 ユーベ

仕様書もないレガシーモジュールに最低限の秩序をもたせる為に何ができるかを考え、対応した話をします。
主にCI環境を構築した話になると思います。

テストコードを書いて、カバレッジ100%とかは非現実的な話はしません。

レギュラートーク 15分

AWS Lambdaカスタムランタイムで始めるサーバレスPHP

taiko19xx 木村俊彦

これまで、AWSのサーバレス実行環境であるLambdaで実行できる言語は限りがあり、場合によっては新たな言語を習得しなければなりませんでした。
しかし、昨年の追加されたLambdaのカスタムランタイム機能により、(ある程度の準備こそ必要ですが)PHPを初めとする自分が今まで使い慣れている言語で開発及び実行できるようになり、より手軽にサーバレス開発が行えるようになりました。
本セッションでは、Lambda+PHPという環境を通じて、
・PHPカスタムランタイムの動かし方や作り方
・どのように動くのか
・どのような用途に向いているのか
といった概要や、各種フレームワークを動かしてみた結果といった調査結果などについてお話します。

3
レギュラートーク 15分

PHPStanで独自ルールを作る

nazonohito51 川島慧

PHPStanは優秀な静的解析ライブラリではありますが、あらかじめ提供されているRuleの利用に留まってはいませんでしょうか?
同ライブラリにはCustomRuleという独自のルールを作成できる機能があります。

自分でルールを書けば外部のツールと連携したチェックなども可能で、例えばGitと連携させることで新しく追加されたクラスのみチェックして「これから新しく作るクラスは戻り値型宣言必ず書いて!」みたいな複雑なルールも作れます。

CustomRuleはあまりドキュメントに記述は無いので、基本的に自分で既存のコードを調べて作る必要があり少し面倒です。
今回は「こんなのだったらすぐ出来る」みたいなPHPStanの解析機能を列挙することでみなさんに独自ルールを作ることの一助になれればと思います。

1
採択
2019/03/31 14:15〜
Track B
レギュラートーク 15分

Swooleのフレームワークをくらべてみた

goodoo 白井 英

uzullaさんのPHPerKaigi2018「大統一PHP」(https://speakerdeck.com/uzulla/da-tong-php)で紹介されているSwooleという非同期かつ、Coroutineの仕組みをもったPHPのextensionがあります
Swooleを用いたフレームワークはいくつかあります。
今回、EasySwoole(v2,v3)、Swoft、Laravel-Swooleの4つを比べてみた結果をお話しします。
それぞれのフレームワークのISUCON8予選のベンチマークの結果をお伝えします(恒例)
No.1 Swooleフレームワークはどれだ!

採択
2019/03/31 16:05〜
Track A
LT

単方向依存を実現する静的解析ライブラリのご紹介

nazonohito51 川島慧

設計への意識の高まりとともに、クラスの依存関係をコントロールすることに関心を持つエンジニアが増えてきましたが、現状依存ルールを順守するには人間の目で確認せざるを得ません。
クラスの依存関係を人間の目で一瞥するのは基本的に難しく、うっかり循環依存になってしまってないかレビューするのも手間です。

そこでPHPStanをベースに依存関係を解析するライブラリを作成しました。
これによりルールの順守を機械的にチェックすることが可能になるほか、そのリポジトリの依存ルールを設定ファイルとして管理し、ルールを明示することができるようになります。

また全クラスの依存関係を解析してグラフ化することも可能(予定)ですので、初めて見るリポジトリを解析する時にその依存関係から大まかな構造を把握できるような使い道もあります。

今回はこのライブラリの紹介をさせていただければと思います。

レギュラートーク 15分

単方向依存を実現する静的解析ライブラリのご紹介

nazonohito51 川島慧

設計への意識の高まりとともに、クラスの依存関係をコントロールすることに関心を持つエンジニアが増えてきましたが、現状依存ルールを順守するには人間の目で確認せざるを得ません。
クラスの依存関係を人間の目で一瞥するのは基本的に難しく、うっかり循環依存になってしまってないかレビューするのも手間です。

そこでPHPStanをベースに依存関係を解析するライブラリを作成しました。
これによりルールの順守を機械的にチェックすることが可能になるほか、そのリポジトリの依存ルールを設定ファイルとして管理し、ルールを明示することができるようになります。

また全クラスの依存関係を解析してグラフ化することも可能(予定)ですので、初めて見るリポジトリを解析する時にその依存関係から大まかな構造を把握できるような使い道もあります。

今回はこのライブラリの紹介をさせていただければと思います。

2
採択
2019/03/30 16:45〜
Track B
レギュラートーク 15分

Swooleでフレームワークを高速化 - もう動作が遅いなんて言わせない!

niisantokyo 新倉涼太

今話題のSwooleはPHPにイベント形式の非同期処理をエクステンションという形で導入することができます。これを利用することで、PHPのフレームワークを高速化してみようと試みます。一般に、フレームワークや外部ライブラリを利用していると、それらのソースファイルを読み込むために多くの時間がかかるようで、Swooleを使ってイベント形式のサーバを建てることで、この読み込みコストをほぼゼロにできると期待できます。今回はLaravelを例に取り、Swooleによる高速化の導入、及び、Swooleによってどれだけ高速化できたかを、apacheやfpmなどの別の形式のサーバと比較します。また、Swooleの導入によって発生する問題についても言及します。