15分トーク

PHP の型宣言についてもっと理解しよう

naoki85_201612 naoki85

PHP 7 になってからいくつかの新機能がありましたが、その中でも型宣言については注目されていたのではないかと思います。
ただ、私の日々の作業の中に取り入れられているかと言われれば、その答えは No でした。
型宣言をすることで得られるメリットも複数あります。

そんな、あんまり PHP の型って使ってないし、いまいちよく分からないな、という型向けのセッションにしたいと思っています。

15分トーク

雰囲気でVPCを使ってるそこのあなたへ!AWSネットワークの基本を紐解きます。

canon1ky 村田主磨

近年当たり前の用に使われれている、AWS、GCPを始めとしたパブリッククラウドサービス。
DevOpsの概念の浸透とともに、アプリケーションエンジニアでもインフラ層を触ることはしばしば見受けられるようになりました。
しかし、そんな中でも意識する機会が少ないネットワーク。
あなたは雰囲気で触っていませんか?

弊社でEKSを使用しkubernetesクラスタをAWS上に構築したのですが、その時にネットワーク周りの様々な制約が出てきました。
その時の問題点の解決策と登場する概念を踏まえ、AWSのネットワークの基本を紐解きます。

こんな方へオススメ
・EC2を立てるときは、デフォルトVPCを使っている
・将来的にAWS上にkubernetesクラスタを構築したい
・AWSにちょっと詳しくなりたい

15分トーク

Azure Functionsを利用したServerless Architecture

seike460 清家史郎

普段AWSを懇意に利用している私がふとしたきっかけでAzure Functionsを利用する事になりました。

せっかくなのでAWS Lambdaとの勝手の違いをAWS エンジニア目線からお届けしようと思います。

PHPerKaigai2020が行われている頃には紆余曲折して悩み、苦しみ、答えを出している頃です。

その経験を赤裸々にお話しようと思います。

・想定する聴講者
 - Serverlessに興味のあるWEBエンジニア
 - AWSを利用しているクラウド系エンジニア
 - Azureに興味のあるクラウド系エンジニア

・お話する内容
 - AWS LambdaとAzure Functionsの違い
 - 構築するうえで感じたクラウドリソースの違い
 - Azure Functionsのメリット、デメリットの主観
 - 紆余曲折の内容を話せる範囲で

・お話しない内容
 - Azureゴリゴリのエンジニアに向けた話
 - Azure Functionsを利用する上での答え

1
採択
2020/02/11 15:00〜
Track B
15分トーク

Serverless Pattern

seike460 清家史郎

Serverlessは一般化してきています。

Serverless においてある程度決まったPatternがあります。

ServerlessなArchitectureを組むことでそのシステムはどの様なメリットを享受出来るのでしょうか。

今回はAWSを利用したServerless Patternを適用することで、
そのシステムが享受出来るメリットと構築する上での注意点を解説します。

・想定する聴講者
 - Serverlessに興味のあるWEBエンジニア
 - AWSを利用しているクラウド系エンジニア

・お話する内容
 - AWS Lambdaを中心としたServerless Pattern
 - Serverless Patternを構築するうえで考えるべきAWSリソースの特徴
 - Serverless Patternを構築することで得られるメリット
 - Serverless Patternを利用するうえで注意すべき事項

・お話しない内容
 - GCP、Azureの話
 - PHPを利用したServerless Pattern

15分トーク

Rectorを使って既存コードのupgradeをもっと手軽に

o0h_ きんじょうひでき

https://github.com/rectorphp/rector は、既存のPHPコードのリファクタリングやアップグレードを自動実行するツールです。‬

‪フレームワークのバージョンアップをした、IDEを本格的に導入し始めた、新しいバージョンのPHPを使い始めた・・・開発を続けていると、色々な場面で「コードの書き方を変える必要が出て来た」「今までの書き方だと足りていない」という問題が発生します。かといって、膨大な量の(しかも退屈な!)書き換えを行うのは、なかなか気の進まない作業です。‬

‪rectorを利用すると、設定したルールに従い簡単な書き換えを自動的に実施できます!‬

‪ツールの概要や使い方、独自のルール作成の方法を紹介したいと思います。‬また、php-parserの動かし方についても言及しながら、「rectorは内部で何を行なっているのか?」というイメージを掴むことで、この不思議でパワフルなツールが皆さんにとって「怖くないよ!」といえるような、手助けになればと思います。

15分トーク

PHPUnitでテストダブルについて考える

o0h_ きんじょうひでき

PHPUnitは、PHPソフトウェアのデファクトスタンダードとも言えるテストフレームワークです。それを利用して、どんなテストが書けるでしょう?
昨今のアプリケーションの開発は、より「責務」について重んじるようになり、それぞれの境界線を明確にする意欲が高まっているように感じます。そのため、開発者が「このテストは、何が出来れば(⇔何が出来なくて)良いんだっけ」を考えるのは正しい姿勢でしょう。

皆さんも、「モック」や「スタブ」が好きですよね。PHPUnitには、いくつかの「テストダブル 」の機能がサポートされています。このセッションでは、具体的なコード例を用いて、「やりたいテストを表現するための素敵な方法はないのかな」「どうしてこういう機能があるのかな」について考えてみたいと思います。

1
15分トーク

レガシーなPHPアプリケーションにLaravelを導入するのは間違っているだろうか

mao_sum 手島 尚人

皆さん、Laravelは大好きですか?私は大好きです。
皆さん、オレオレフレームワーク使ってますか?私は使っています。

今やPHPでWEBアプリケーションを作るならLaravelが候補に挙がるくらいには有名になりましたが、それはあくまでも新規案件のお話。
今回ご紹介するのは、レガシーなPHPアプリケーションにLaravelを導入したお話です。

しかしながら、一言に導入すると言っても、それは簡単な話ではありません。
いきなり全部のコードを入れ替えるわけにもいきません。
既存のサービスを止めるわけにもいきません。
Laravelは導入するけど、既存の資産はそのまま使いたい…!
などなど、いろいろな要望や懸念があるかと思います。

そんな中、私が担当するPHPアプリケーションでLaravelを導入するために取った戦略とは…!?

本セッションでは、以下のことを実際の実装を見つつハートフルにお伝えする予定です。

  • レガシーアプリケーションにLaravelを入れるまでの苦労話について
  • どのようなハマりポイントがあったかについて
  • Laravelのどの機能を使っているのかについて
  • プレーンなLaravelと比べて制限される機能について

Laravelをレガシーアプリケーションに導入してみたい方、どんな構成になっているのか気になられた方、どなたでも構いません。
ご興味を持たれた方はぜひご参加ください!!

採択
2020/02/09 18:10〜
Track B
15分トーク

Inside SWOOLE:非同期処理はどのようにして動くのか

koyhoge 小山哲志

最近注目を浴びているPHPの非同期処理機能拡張が「Swoole」です。Swoole を利用することで、PHP単独では実現不可能だった同時並列処理が実現できます。
では Swoole の非同期処理は、一体どのように実装されているのでしょうか?
本セッションでは Swoole のC++ソースコードの奥深くまで探索し、非同期処理がどのように実現されているかを解説します。
このセッションを聞けば、ブラックボックスの魔法のようだった Swoole がより身近になり、中で何が起きているか容易に想像できるようになるでしょう。

採択
2020/02/11 14:30〜
Track A
15分トーク

今だからこそ振り返る register_globals

gongoZ gongo

かつて

Q.「セキュアなWebアプリケーションを作るにはどうすればいいか」
A.「まず PHP を避ける」

とまで言わしめた 古い PHP が活躍していた時代、その中心的機能である register_globals を知っていますか。この機能を on にしたが最後、リクエストパラメータは問答無用でグローバル変数に展開されてしまうという、お手軽且つ凶悪な機能でした。変数汚染攻撃の温床ともなり、「PHP is 脆弱性」とまで言われるようになった所以です。

そんな register_globals も PHP 5.4 で姿を消し、この機能を使ったことのある人の方が少ない時代になっていると思います。
しかし、そんな時代だからこそ皆さんと振り返っていきたいです。

・ register_globals とはどんな機能なのか
・ ドキュメントには載っていない register_globals の動き
・ PHP 5.4 以上でも使える! register_globals

15分トーク

一切開発に手を出さずに言葉と資料でドメイン駆動設計を布教した

yu_mashirou しろぐちゆうま

ドメイン駆動設計をどのようにして知ってもらい、文化を広めるというのは非常に難しいです。
色んな手法で広めていくと思うのですが、今回私が行ったのは「言葉と資料」で駆動設計をプロダクトに盛り込むことにしました。
今回はドメイン駆動設計を布教した一連の流れをお話できればと思います。

ドメイン駆動設計を社内で布教したい、実践でやってもらいたいという方へ一例として知見に貯めていただければと思います。

採択
2020/02/11 10:25〜
Track A
15分トーク

自作して理解するxUnit

hgsgtk 東口 和暉

普段私たちが触れているPHPUnitなどは、xUnitと呼ばれるテスティングフレームワークの一つです。Kent Beck氏がSmalltalkで実装したものが様々な言語で広がってきた流れで生まれています。何気なく使っているこのPHPUnitを理解する足がかりに、xUnit自体を自分でPHPで実装すると、xUnitの考え方やPHPUnitに対する理解が深まるのではと思います。
このトークでは、そんなxUnitを実装して理解するという話です。聴講者の方々が普段使っているツールの中について考えるきっかけになれば幸いです。