PHPカンファレンス福岡2019

PHPカンファレンス福岡2019

2019.6.29(sat) 10:00 - 18:00
福岡ファッションビル 8階 A・B・C・Dホール
公式Twitterアカウント:  @phpcon_fukuoka  /  
公式ハッシュタグ: #phpconfuk

ABOUT

ついに5回目の開催となったPHPカンファレンス福岡!
福岡のIT業界を盛り上げていきたい、九州のPHPerと全国のPHPerが交流できる場を提供したい、もっと福岡のPHPに力を入れている会社を知って欲しい、そんな気持ちで2019年も開催が決定しました。
2018年は約300名の参加者となり、福岡において大きな規模のカンファレンスとなります。
PHPカンファレンス福岡に参加することで多くの刺激を得て、参加者間のつながりが生まれることを期待しています。
みんなで楽しみましょう!

本編について
今の開発現場では、PHP以外の知識・技術も求められています。
PHPを中心に、それ以外のトピックも広くカバーした内容となっていますので、初心者から上級者まで、PHPerでもPHPerでない方でも興味ある方は是非!
懇親会について
懇親会は18時から同会場で開催されます。
毎年100人以上の参加があり、食事をしながら楽しく交流しています。
初めての参加者の方でも入りやすく楽しみやすい懇親会だと思いますので、安心してご参加ください。

NEWS

ACCESS

会場のご案内
FFB ホール(福岡ファッションビル8階)
http://www.ffb.jp/
福岡市博多区博多駅前2-10-19 
-  GoogleMapを見る
-  Googleマップでルート検索
交通機関のご案内
  • JR博多駅(博多口)より徒歩7分
  • 福岡空港より地下鉄で7分
  • 地下鉄祇園駅より徒歩1分(5番出口)
  • 天神より地下鉄で4分

TIMETABLE

時間 Fusicホール HASIGOホール ロリポップ!ホール
9:30 受付開始
10:10 開会式・スポンサー紹介
10:30
Fusicホール    10:30〜10:45
PHP型検査・夢と理想と現実中級者向け
 うさみけんた |  tadsan

昨今、PhpStormのようなIDEやPhan/PHPStan/Psalmのような静的解析ツールが着々と進歩し、コードを「実行しなくても」エラーの兆候を事前に検出できる基盤が着々と整備されつつあります。では、これらのツールを導入して、型宣言やPHPDocを記述すればそれだけで新規プロジェクトで完璧に静的検査でエラー知らずの静的解析環境が完成するのでしょうか? この発表では現時点での静的検査の実態とベストプラクティスについての解説を試みます。

HASIGOホール    10:30〜10:45
PHPerの採用面接でぼくらは何を伝えあうべきか初級者向け
 kurikazu |  kurikazu

社員数2,000名規模のWebサービス会社でエンジニア採用を担当しています。空前のエンジニア売り手市場の現在、採用の難しさは日々感じているところです。中途・新卒含め年間100名以上の選考をしていますが、採用をする側も、エンジニアも、お互いが幸せになれる形をつくりたい。そのために、自分自身もいちエンジニアとしてどんな思いで面接に臨み、どんなことを伝え、話してもらうか。いつも心がけていることを言語化してお伝えできればと思います。

10:45 休憩15分 / Ask the Speaker(うさみさん、kurikazuさん) at Cホール
11:00
Fusicホール    11:00〜11:15
3ヶ月で20万行を消すためにやったこと中級者向け
 naopr |  naopr

メルカリにおいて、PHPで書かれたモノリスのコードをマイクロサービス化する準備として、不要なコードを3ヶ月で20万行消した話をします。
運用フェーズのサービスに携わるサーバサイドエンジニアであれば、多くの方が不要になったコードを削除したいと思っているのではないでしょうか。しかし、「消してよいコードをどうやって判断していいかわからない」「1人で消すには不要コードが多すぎてつらい」「不要コードを消してもサービスがよくなるわけじゃないのでモチベーションが湧きにくい」等の理由から実現が難しく手がつけられていないケースも多いのではないかと思います。
本セッションでは、メルカリで実際にコードを消した事例をもとに多くの会社・チームで役立つエッセンスをご紹介します。

HASIGOホール    11:00〜11:15
Monitoring PHP
中級者向け
 清家史郎 |  seike460

SLA100%は幻想です

Webアプリケーションを運用していると必ず監視が必要になります
今回はPHPにおける監視を、様々なツールと手法を駆使して「なにを」「なぜ」「どのように」監視すべきなのかを思考します

また監視を続けた先に見えてくるSREへの道について語ります

- お話すること
 - PHP Webアプリケーションで監視すべき項目
 - 監視すべき項目を監視する手法
 - 監視する手法を実現する為のツール
 - 監視とSRE

- 対象者
 - 監視をしていない方
 - 監視を人任せにしている方
 - なんとなく監視ツールを使ってる方

11:15 休憩15分 / Ask the Speaker(naoprさん、清家さん) at Cホール
11:30
Fusicホール    11:30〜11:50
〈スポンサーセッション〉株式会社Fusic
子育てとスキルアップを両立するエンジニアの生存戦略
 株式会社 Fusic 岡嵜雄平 |  @Y_uuu

Fusicには子育てに携わりながら仕事をするエンジニアが多数在籍しています。
特に昨年はちょっとした出産ラッシュで、パパ・ママデビューしたエンジニアが増えました。
私自身も二児の父でありながら、昨年1月にFusicにジョインして日々自己研鑽に励む立場です。
Fusicのパパ・ママエンジニアが如何にして「エンジニアとしてのスキルアップ」と「子育て」を両立しているか会社として子育てをサポートする体制をどのように作っているか、紹介します。

11:50
Fusicホール    11:50〜12:10
〈スポンサーセッション〉株式会社ハシゴ
(サイバーエージェントグループ)
エンジニア向け社内イベントの進化の歴史
 サイバーエージェントグループ 白井 英 |  goodoo

社内のエンジニアを盛り上げるイベントの一つとして技術を競うイベントがあります。
そもそもイベントの狙いとしては、参加するエンジニアの満足感もありますが、イベントを通して、他のエンジニアから刺激をうけたり、自分の技術力を測る物差しにしたり、様々です。
弊社で毎年行われてきた社内向けエンジニアの競技イベントの歴史を通して、その狙いの推移と進化を通してエンジニアの育成に対しての考え方をご紹介いたします。

12:10 休憩60分
13:10
Fusicホール    13:10〜13:55
Webサービスの成長を止めずにリファクタリングする技術中級者向け
 曽根壮大 |  soudai1025

PHPは息が長く、数年使われているWebサービスは珍しくありません。
しかしPHPの進化に対してプロダクトは追従できていますか?
PHPのバージョンアップ、フレームワークのバージョンアップ、そして勿論プロダクションコードのリファクタリングも必要です。
昨今、フレームワークやPHPのバージョンアップの話はあれど、ではどうやってプロダクションコードをアーキテクチャも含めて綺麗にしていくかを語られることは少ないように感じます。
そこで今回はプロダクションコードをリファクタリングする技術にフォーカスし、如何にサービスの成長を止めずにリファクタリングしていくかの戦略、テクニックをお伝えしたいと思います。

## 内容
- Webサービスを止めない工夫
- ModelのリファクタリングとAPI化とテストコード
- 機能単位にリプレースする方法
- 新機能とコンフリクトを防ぐ方法

## ターゲット層
- 数年モノのWebサービスを運用している人
- 既存のアプリケーションをリファクタリングしたい気持ちでいる人
- テストコードが無いコードに立ち向かっている人

HASIGOホール    13:10〜13:55
標準インターフェースを使ったアプリケーション開発中級者向け
 岸田健一郎 |  sizuhiko

フレームワーク使っていますか?
PHPで作るサーバーサイド、ブラウザで動作するWebフロントエンド、どちらの開発においてもフレームワークは開発の効率化(速度や品質)を強力にサポートしてくれます。
でもカンファレンスなどで発表される内容には、〇〇からXXに移行してみた、とかバージョンアップを頑張った、という話が多いなと感じることはないでしょうか?
もちろんフレームワークをまったく使わない開発というのは難しいかもしれません。
そこで標準インターフェースを意識することで少し遠回りになりますが、ライフサイクルの長いサービスのアプリケーションで壊滅的な技術困難を避けられる可能性が高まります。
このセッションでは、現時点で考えられるなかで、なるべくロックインせず効率的に開発するのに役立つ技術要素について紹介します。
サーバーサイド/フロントエンドのアプリケーション開発をしていく上での、1つの気づきになれば幸いです。

- 標準インターフェースとは?
- ライフサイクルの違い
- フレームワークとは
- SQLを意識する
- PHPでPSRを意識する
- Web標準を意識する
- 標準技術とコンポーネントがポータビリティを高める
- サーバーとクライアントの間でインターフェースを明確化する

14:00 休憩10分 / Ask the Speaker(岡嵜さん、白井さん、曽根さん、岸田さん) at Cホール
ロリポップ!ホール    14:00〜17:00
〈ハンズオン〉GMOペパボ株式会社
# PHPコードチャレンジ 〜マネクラからの挑戦状〜

ロリポップ!ホールでは3時間、チャレンジイベントを開催します!

GMOペパボに所属するエンジニアからPHPを使ったさまざまな課題を出題しますので、是非チャレンジしてみてください!
解いた課題や結果に応じて、ロリポップ!マネージドクラウドよりクーポンを進呈します!

同時に「はじめてのロリポップ!マネージドクラウド ハンズオン」も不定期開催しますので、お気軽にご参加ください!

※参加にはノートPCが必要です。

14:10
Fusicホール    14:10〜14:25
古き良き開発現場に新しい文化を作ろう!〜荒れた荒野を耕し、種を撒き、水を与え続ける話〜初級者向け
 松村那子 |  nako0123

こんな素敵なカンファレンスに参加しているけど、実は職場はまだまだレガシー。Gitすら使えない、毎日Excelの資料と格闘、なんでもメールでやり取り、Slack入れたいけどなかなか理解が得られない、開発環境の仮想化・自動化なんて夢のまた夢。明日からの仕事が憂鬱。もう転職だ!!

と、なっているそこのあなた!あきらめないで!
私が歩み続けている改善の日々と、明日から使える改善ポイントを共有します!

ほんの数年前、ここには何もなかった・・・まるで荒れた荒野のように。しかし私は耕し続けた。種を撒き、水を与え続けた。SubversionからGitへの移行とGitLabでの開発、もう壊しても怖くない!なぜならVagrantとDockerがあるから!Excel方眼紙と議事録_yyyymmdd.txtとの決別・Markdownとの出会い〜ドキュメントビルド・デプロイの自動化へ〜、「俺しか知らない話」を情報共有する!、Backlogが好きすぎる件、コンサバ上司の意識改革、社内勉強会で初めて食べたピザ、同僚をカンファレンスに誘ってみたあの日、などなど。エモいけどさりげなく使える技術の話満載でお届けします。

HASIGOホール    14:10〜14:25
PHPでURLルーティングを自作する中級者向け
 bmf_san |  bmf_san

フレームワークなどで何気なく使っているルーティングをPHPで自作してみました。
ライブラリの開発は普段の業務でのアプリケーション開発とは違った視点をもたらしてくれるので車輪の再発明であっても取り組む価値はゼロでありません。
今回のセッションでは、ルーティングを自作するに至った動機や実装のプロセスなどを紹介し、普段自分が使っている”道具”を自作してみることで得られる知見や楽しさをお話したいと思います。

14:25 休憩10分 / Ask the Speaker(松村さん、bmf_sanさん) at Cホール
14:35
Fusicホール    14:35〜15:05
ユニットテストの現場の問題を原則に立ち返って考える中級者向け
 東口和暉 |  hgsgtk

ユニットテストを書いていると次のような問題にでくわしませんか?「何をテストしているのかわかにくいテスト」・「共通のフィクスチャが絡み合ってテストがメンテナンスしづらい」とか。
これらを解決するにはさまざまなアプローチ・実現手段がありますが、解決にあたり「どういうテストが望ましいのか」や「なぜこの方法が効果的なのか」を抑えると、より様々な現場で生きる技能として自身に定着できるでしょう。
このトークでは、『xUnit Test Patterns』など網羅的な原則を扱ったものから、「テスト駆動開発」・「オブジェクト指向設計」の文脈の文献などから、ユニットテストの目的や原則を抑えた上で、「ユニットテスト作成の現場でどう当てはめて実践できるか」という点について話します。

HASIGOホール    14:35〜15:05
PHPの関数実行とその計測
上級者向け
 五十嵐進士 |  sji_ch

皆さんは PHP の処理、特に関数が、どのように処理系によって実行されているかをご存知でしょうか?
ZendVM における関数実行の仕組みの概要を知ることで、xhprof / tideways、phpspy や sample_prof といった計測ツールがどのような原理で動作するのかが分かり、それぞれどういった局面での利用に適しているか、という特性を知ることができます。
セッションの前半で ZendVM と関数の仕組みをざっくり、後半で各計測ツールとその仕組みの紹介をします。

15:05 休憩10分 / Ask the Speaker(東口さん、五十嵐さん) at Cホール
15:15
Fusicホール    15:15〜15:45
Laravel でやってみるクリーンアーキテクチャ中級者向け
 岡田正平 / おかしょい |  okashoi

ドメイン駆動設計やユースケース駆動開発などの文脈でレイヤードアーキテクチャやクリーンアーキテクチャといった言葉をよく聞くようになりました。
「名前は聞いたことあるけど、敷居が高そう......」「本は読んだけど実際に実装するイメージがつかない......」そんなことを感じている方もいらっしゃるのではないでしょうか?
本トークではそんな方に向けて、簡単なアプリケーションの実装例とともに、クリーンアーキテクチャの考え方や実装する上での Laravel の機能についてお話します!

HASIGOホール    15:15〜15:45
Log Operation -今あるログと向きあう-中級者向け
 小山健一郎 |  k1LoW

約1年前、私が見るログはほぼPHPアプリケーションのログだけでした。なぜならそれだけで十分だったからです。

しかし今、私が開発・運用に関わっているサービスは、

- それぞれ異なる言語で書かれたアプリケーション
- 複数のロールのRDBMS
- 多くのミドルウェア

が複数台構成(ロードバランシング構成やマスタースレーブ構成)で、それぞれが協調することで提供されています。

そして1年間、ログに関してだけでも多くの経験をすることができました。

本発表では、実際に私が得た経験から、様々な視点でログについてお話をしたいと思います。

話したいことは沢山あるのですが、例えば以下のようなセクションを考えています。

- トラブルシュートとログ
 - 複数サーバにまたがる
 - 複数ロールにまたがる
- メトリクスとしてのログ
- クエリログ
- セキュリティとログ
- オペレーションをログとして残すということ
- 「エラーログからソースコードを見にいく」はどのようなOSSにも通用するということ

15:45 休憩10分 / Ask the Speaker(岡田さん、小山さん) at Cホール
15:55
Fusicホール    15:55〜16:10
JAMstackアーキテクチャを用いたモダンWebサイト開発初級者向け
 浦田大貴 |  daiki7nohe

Webサイトの高いパフォーマンスやより良い開発者体験(DX) を可能とするJAMstackアーキテクチャが最近話題となっております。
すでにアメリカNYでは「JAMstack Conf」が開催されるほど注目されています。

GatsbyJSやGridsomeなどの静的サイトジェネレーター、ContentfulなどのHeadless CMSを利用することで、簡単にJAMstackアーキテクチャを実現できる環境はすでに整っています。

このセッションでは、JAMstackとは?からJAMstackアーキテクチャを実現するためのツール/サービス/開発手法についてお話します。

HASIGOホール    15:55〜16:10
クラウド環境下におけるAPIリトライ設計中級者向け
 山田幸司 |  koooxi

クラウド環境でAPIサービスを実装した際、DBがフェールオーバーのため接続に失敗するという障害がありました
その反省を踏まえて、API側の視点、クライアント側の視点などを踏まえてAPIのリトライ設計を見直したのでその内容を発表したいと思います

16:10 休憩10分 / Ask the Speaker(浦田さん、山田さん) at Cホール
16:20
Fusicホール    16:20〜16:50
PHPStanでCustomRuleを作る中級者向け
 川島慧 |  nazonohito51

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

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

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

HASIGOホール    16:20〜16:50
WebAuthn で作るパスワードレス WEB アプリケーション中級者向け
 k-masatany |  k_masatany

パスワードを用いない新しい認証方式として考案された Web Authentication(WebAuthn)が、W3C により正式勧告されました。
まだまだ対応しているブラウザや端末は少ないですが、将来的にはこの新しい仕組みが WEB 標準のログイン方法となります。

本セッションでは、WebAuthn の簡単な仕組みを説明し、実際に Laravel の認証機構として WebAuthn を組み込む際に行った Tips について発表したいと思います。

16:50 休憩10分 / Ask the Speaker(川島さん、k-masatanyさん) at Cホール
17:00
ライトニングトーク
Fusicホール    17:00〜17:05
はじめよう、パッケージ化初級者向け
 田部達也 |  ttabtt3

プロジェクトで横断的に利用されているソースコードを再利用したい、そんなときにはパッケージ化してしまおう。
…けど「パッケージ開発」って聞くと、リポジトリの登録とかハードルが高そう、大変そう。
と身構えてしまうエンジニアはきっと多いはず。

そんな人たちのためにパッケージ化をしてデプロイした話をしようとおもいます。


Fusicホール    17:05〜17:10
date()とかtime()の関数よりDateTimeクラス使った方が良さそう的な話初級者向け
 たきゃはし |  takahashiyuya

PHPで日付・時刻・時間を扱うためにdate()やtime()といった関数がありますが、DateTimeクラスやDateTimeライブラリを使った方が良いことをケースを交えて話したいと考えています


Fusicホール    17:10〜17:15
競技プログラミング始めませんか?初級者向け
 nabeen |  _nabeen

このトークは参加者が「競技プログラミングを始めてみよう」と思ってくれることを目標とします。

競技プログラミングそのものはそれなりに歴史があるものです。ここ最近はAtCoderを始めとし、競技プログラミングも一般に認知され始めるようになりましたが、まだまだマイナーな存在で、私の周りでも競技プログラミングに取り組んでいる人はあまりいません。

一番大きなネックは「競技プログラミングで強く」なったとしても、それを実務に生かしづらい(実務で生きるケースが少ない)ことだと思います。事実、多くの企業において競プロerのスキルを活かせる環境はありません。

このトークでは私自身が競技プログラミングに取り組むことでわかった「競技プログラミングの面白さ」「競技プログラミングの有用性」などについてお伝えします。これにより、参加者が「競技プログラミングを始めてみよう」と思ってくれることを目指します。


Fusicホール    17:15〜17:20
欧州GDPR法と日本企業への影響初級者向け
 蓮井
GDPRの概要と日本への影響と必要な対策、今後の展望など

Fusicホール    17:20〜17:25
Stripe+PHPでセキュアで安全な決済機能を作る初級者向け
 穴井怜 |  gorou_178

StripeはAPI型のオンライン決済サービスです。昨今クレジットカード情報の漏洩など問題になることがありますが、Stripeを利用するとクレジットカードの非保持化『「通過」させない、「保存」しない、「処理」しない』を実現できます。またStripeのAPIはOpenAPIになっており、APIのテストも行えます。セキュアで安全な決済機能の作り方をご紹介します。


Fusicホール    17:25〜17:30
知ると得するコマンドラインPHPの便利な使い方初級者向け
 富所亮 |  hanhan1978

コマンドラインPHPを使っていますか?バッチ実行だけではなく便利な使い方がたくさんあるんです。小技を憶えてサーバーメンテナンスや開発に役立てましょう!


Fusicホール    17:30〜17:35
VUIの今後について考えてみた初級者向け
 吉野雅耶 |  ayasamind

Amazon Alexa、Google Home、LINE Clovaなど、VUIが少しずつ世の中に浸透しつつあります。

そんな中、WebエンジニアとしてはVUIとどう接していけばよいでしょうか?

VUIの今後と、エンジニアとしてのVUIとの関わり方について、お話していきます。


Fusicホール    17:35〜17:40
型安全にi18nするには中級者向け
 fudafoota |  fudafoota

JavaScript製の国際化ライブラリであるi18nextを使ったフロントエンドおよび一部サーバーサイドでのサービスの多言語化事例をご紹介します。
本事例ではメタプログラミング的に同一ソースのデータからTypeScriptのモジュールおよびPHPのクラスを自動生成するというアプローチをとっています。
ヒューマンエラーによるありがちなバグを減らして、より安全にサービスを国際化するための静的解析技術の活用についてお話しします。


Fusicホール    17:40〜17:45
マリオが土管に入った時に起こっていたほんとうのこと初級者向け
 長谷川智希 |  tomzoh

2016年に「マリオが土管に入った時に何が起きているのか」というブログ記事を書きました。
これは、マリオが土管に入った時など、画面を書き換える時に、描画速度が遅いファミコンでどの様に工夫しているかという推測記事でした。この記事の中でスーパーマリオブラザーズのステージ開始時に「WORLD表示と残機表示をスプライトでしている」という推測をしました。

そして推測記事から2年後の2018年10月、私はPHPでファミコンエミュレータを実装したのですが、これにより私はスプライトOFFの状態でゲームを実行できる環境を手に入れました。
このトークでは2016年の推測は当たっていたかを中心にファミコンの画面切替について解説し、愛すべきレトロゲーム機の魅力をお伝えします!

HASIGOホール    17:00〜17:15
UDPベースのファイル転送ソフト開発と商用化までの5年の苦悩を15分に凝縮中級者向け
 木村文彦

100%転送できて当たり前、一見簡単そうに思える通信プロトコルの開発の世界で、世界最速を目指して商用化までの開発の苦悩、後で痛感した知財の重要さ、5G到来で変わる未来について、エンジニア視点でお話します。

HASIGOホール    17:15〜17:30
プロキシサーバ自作から学ぶ、HTTP通信中級者向け
 kobatako |  kobatako_

プロキシサーバを自作する中で学んだHTTPプロトコルのことについてお話ししたいと思います。
プロキシとしてはロードバランサーやキャッシュ機構、サーキットブレーカーの実装を行いました。
それぞれの実装で実際に行ったことや、気を付けたこと、レスポンス速度の向上、バランシングなどについてお話しします。
プロキシを自作することでHTTPのさばき方が少しわかった気がします。
プロキシ自体、クラウドネイティブの実装で広く使われてきていたりしているので、そんなプロキシの魅力を少しでもお伝えしたいと思います。

HASIGOホール    17:30〜17:45
創業から10年黒字を出し続けている会社を支えたプログラマーはPHP歴2年でした中級者向け
 矢上裕基

当社は今から10年前の2009年5月に設立しました。プログラマーは私一人だけ。当時の私はPHPプログラミング経験2年(うち業務としては1年半)しかなく、バージョン管理、チケット管理、コードレビュー、テストコード等と言ったチーム開発で必要な知識・スキルがまったく状態でしたが、それでもサービスを立ち上げ、大きな先行投資もなく1年目から10年間ずっと黒字を安定して出し続けてきました。
起業に興味のある方を対象に、当社の事例を紹介し、起業に必要なスキルはそんなに多くない、それよりもまずビジネスモデルが重要で、それをタイミングよく世に出せる勢いやスピードが必要ということを伝えたいと思います。
また、起業時に持っていなかったチーム開発に必要なものも、開発メンバーを増やすなかで、だんだんと整うようになってきました。そういった会社や自分の成長の楽しさを味わえるのも起業の醍醐味だと思いますので、そういったものも伝えられればと思います。

17:45 閉会式
18:00 Ask the Speaker(木村さん、kobatakoさん、矢上さん) at 閉会式会場の司会者エリア
懇親会受付開始
※ 受付はFusicホール入り口で行います。
18:15 懇親会開始
20:15 懇親会終了

STAFF

CONTACT

ご質問等はお気軽にお問い合わせ下さい。
メールでのお問い合わせ:
phpconfukuoka@gmail.com