PHP Conference Japan 2019 トーク一覧

採択 他イベントOK 25分枠

Chatworkのシステムから学ぶレガシーなPHPの限界とレガシーからの脱却

村上 俊介 shaka0maru
Chatworkでは10年近く前から運用されているプログラムがメインのシステムとして稼働しておりますが、近い将来に限界を迎えそうになっています。
システムがなぜ限界を迎えるのか、どういうタイミングで限界が訪れるのか。長く運用されているシステムだからこその理由や、PHPだからこその事情を踏まえ、将来に向けて継続的にシステムを運用していくために今後どうしていこうとしているのか について話します。
6
採択 他イベントOK Lightning Talks

設計文化のないチームに文化を広めたが冴えない一手で混沌を招いた話を聞いてほしい

柚口ましろう yu_mashirou
タイトルどおりですが、中途半端に「設計をする」という文化を浸透するためのやり方に不具合が生じるとチームが思わぬ方向へと向かうこともしばしば。
今回はそんな失敗した一例と解決した方法について、簡単に発表できればと思います。
5
採択 他イベントOK 25分枠

PHP における並列処理と非同期処理入門

めもり〜 m3m0r7
みなさんは PHP で並列処理や非同期処理をする方法を知ってますか?以前は pthreads といった拡張機能があり、 PHP で並列処理を実現するには主にこの拡張を使用していました。一方で非同期処理に関しては、libevent だったり最近だと Swoole が注目されており、容易に PHP で非同期処理を行うことができます。
pthreads はデータの受け渡しが難しかったり、導入にはいくつかのハードルがありましたが、Swoole は一般的な拡張機能の導入の方法がほぼ同じなため導入しやすいです。
本セッションでは、 phtreads と Swoole を比較しつつ、実際に今まで触れてきたり、 pthreads の導入に挫折はしたもののプロダクションに導入しようとしたり、
Swoole を使って実際にアプリケーション開発をした過程をノンフィクションでトークできればと思います。
19
採択 60分枠

思想と理想の果てに -- クリーンアーキテクチャのWEBフレームワークを作ろう

成瀬 允宣 nrslib
設計やアーキテクチャにはある種の理想という側面があります。
残念ながら現実では理想を実現する際に妥協を求められることもあります。
クリーンアーキテクチャもその類のひとつで、その理想を実現しようとするといくつもの問題にぶつかります。

たとえば定義するファイルが多すぎる問題、たとえばプレゼンターという考えがHTTPという技術にマッチしない問題……。これらの問題は致命的です。
こういった理想と現実の狭間に揺れながら現実的な解を見出すことこそアーキテクトの腕の見せ所です。
しからば致し方ない犠牲として理想を妥協するしかない――とは割り切れないのが人情です。

このトークではクリーンアーキテクチャの解説とその問題点の解説を行い、理想を追い求めてクリーンアーキテクチャの思想を元にPHP WEBフレームワークを作るというお話をいたします。
31
採択 他イベントOK Lightning Talks

PHP-CS-FixerをIDEに取り込ませてPSRを強制する開発スタイル

sogaoh sogaoh
PHPの開発でコーディング規約をどうするかはどの現場でも悩ましい話だと思います。
キャメルケースにする / スネークケースにする、などある程度の選択は個々に必要になるものの、
PHP-CS-Fixerに整形を委ねるのも1つの手ではないかと思います。

現在自分が所属している開発プロジェクトではPHP-CS-Fixerを利用しているので、
利用中の課題点と自分が感じた「クセ」について、簡単にお話しできればと思います。

大規模なカンファレンスでの「初めてのスピーカー」にチャレンジさせていただければ幸いです。
1
採択 他イベントOK 25分枠

「CPUとは何か」をPHPで考える

長谷川智希 tomzoh
中学生の頃にMSXというパソコンのCPUであるZ80のプログラミングを体験していました。

その約25年後、2016年にPHPで書かれたゲームボーイエミュレータのコードを読んで衝撃を受けました。ゲームボーイのCPUはZ80ベースであり、エミュレータで実装されていたのはまさにZ80の命令だったのです。この体験で、エミュレータがハードウェア仕様をソフトウェア的に表現したものであることを理解しました。

そしてさらにその3年後。名著「CPUの創りかた」で紹介されているCPU、TD4を実装し衝撃を受けました。そこに見たCPUは電気回路として表現された状態機械でした。

このトークではPHPでTD4のエミュレータを実装し、マシン語実行環境、エミュレータの対象、そして電気回路としてのCPUがどの様に動作するのかをメモリアクセスを中心に解説し、CPUの魅力をみなさまにお伝えします!
7
採択 他イベントOK 60分枠

Putting legacy to REST with middleware

Adam Culp adamculp
We fear modernizing legacy applications, or going API first. But it's not as futile as you might think. With modern PHP microframeworks geared toward middleware it can be a breeze.

Now the truth: It is a terribly difficult task full of pitfalls. But I will share how to do it in a step-by-step method that makes it much more approachable, and enable you to be a super hero.
4
採択 25分枠

PHPを学ぶということ

岸田健一郎 sizuhiko
【初心者向け】
PHPは言語としては初学者にもやさしく、入門しやすい言語かもしれません。
一方で、実際にWebアプリケーションを作るにあたり、知らなければいけない周辺知識はたくさんあります。
ではまず、Webアプリケーションフレームワークのチュートリアルをやっておけば良いのでしょうか?
また、どこから学んだら良いかわからず、入門書っぽい本で学習するのが良いでしょうか?
このセッションでは、初学者(Web系の言語入門者を含む)にとって、Webアプリケーションを開発することを学ぶにはどこから取り組むのが良いのか?ということを紹介します。
60分枠も申し込んでいますが、こちらは短縮版となっています。
3
採択 他イベントOK 25分枠

脆弱性から学ぶWebセキュリティ

バーチー hypermkt
Webアプリケーションの脆弱性は、どこに潜んでいて、いつ狙われるのか分かりません。ひとたびサイト改ざん・情報漏えいが発生したらビジネスに及ぼす影響は甚大です。

未然防止策として外部脆弱性診断・検査ツールなどがあり、脆弱性の発見・事前検知ができます。WAFを導入することで、外部からの不正な攻撃からWebアプリケーションを守ることも出来ます。

しかし、それで本当に万全でしょうか? いえ、そうは思いません。根底として大切なのは、エンジニア自身がWebセキュリティの正しい知識を持ち、安全なアプリケーション開発を行うことであると考えます。

Webアプリケーションエンジニアの皆さん、今改めてWebセキュリティを一緒に見直しませんか。本セッションでは、Webアプリケーションエンジニアが遭遇しやすい脆弱性の概要と危険性、そして対策方法についてお話します。
9
採択 他イベントOK 60分枠

PHP初心者セッション

柏岡秀男 kashioka
PHPカンファレンス恒例の本当の初心者向けセッションです。どのような言語か、どのような特徴があるのか、どのように学習していったらいいか。本当の一歩目の解説を行います。デザイナーさんや多言語の経験者の方でも理解できる内容です。仕事で利用したことがある方などは対象外となります。
採択 他イベントOK 60分枠

Hash, Cryptography, and PHP

Peter peter279k
The secure libraries in PHP 5.x are not very useful and reliable.
Fortunately, the PHP 7.x versions save PHP developers about the secure issues (including hash and cryptography).
In this session, I share my experiences about my company projects and present how to use the modern cryptography in PHP 7.x.
BTW, this session level is for beginner to intermediate.
1
採択 60分枠

How to Supercharge your PHP Web API

Aurimas Niekis aurimasniekis
My talk will be about implementing new not traditional methods to increase performance of PHP applications using tools like RoadRunner, Swoole, ReactPHP and etc. Will introduce these methods, explain how each of them work and how it affects development, pros & cons and real-life example if Wifi will be present I'll show live example how each of these tools increase performance over typical setup's
3
採択 他イベントOK Lightning Talks

Laravel + Nuxt.js + FirebaseでDXと開発コストを意識したSPA開発

カンボ@沖縄 kanbo0605
スタートアップ企業が自社サービスを開発するにあたって、
Laravel、Nuxt.js、Firebaseを使用し、開発コストとエンジニアのDX(Development Experience)も意識し、
SPA(Single Page Application)開発を実現した話をします。
技術的な面では、Laravelとどのように組み合わせて、全体のプロダクト設計したのか、
API設計、認証周り(JWT、SNS認証など)の工夫点などをお話します。
開発体制で工夫した点としては、Nuxt.js、Firebase、cypress(e2eテスト)、
GitlabCIなどの技術を採用する事によるDXの向上。
新しい技術を採用する中で、開発コストとのバランスを上手く調整した点。
スクラム開発による開発の効率化、チームの開発スピードの可視化などです。
7
採択 他イベントOK 25分枠

PHPからgoへの移行で分かったこと

樋口雅拓 mahiguch1
弊社バックエンドは、PHPエンジニアのみで開発を行なっていました。
PHPからgoへの移行を行ったところ、トレーニング、開発環境構築、障害対応など想定外の問題が発生しました。
時代の流れとともに、goへの移行が選択肢に上がるケースが増えて来ているかと思います。
これらの知見を共有することで、goに移行した方が良いケースと悪いケースを明らかにしたいと思います。

【アジェンダ】
* 移行前後のシステム構成
* PHPエンジニアがgolangを学ぶ時にハマりがちなこと
* golangに移行して良かった点
* 改めて分かったPHPの良さ

【登壇暦】
* PHP勉強会でのLT (この時の懇親会で移行の課題に付いて聞いてみたいとのご意見をいただきました。)
* 大規模なカンファレンスでの登壇は初めてです。
10
採択 他イベントOK 25分枠

Zend VMにおける例外の実装

hnw hnw
PHPスクリプトの実行時には「コンパイル」と呼ばれる処理が行われ、スクリプトはZend VM(PHPの仮想的なCPU)の命令列に変換されてから実行されます。このZend VMは本物のCPUと似た命令も持っていますが、本物のCPUではあり得ない命令も持っています。その一つが例外処理に関わるものでしょう。

本講演では、例外処理をZend VMはどのように実現しているのか、Zend VMと本物のCPUとの違いは何か、といった実装の詳細をPHPのCソースコードを交えて紹介します。
9
採択 他イベントOK Lightning Talks

PHPでgRPCってどこまでいけるの?

株式会社サイバーエージェント 白井 英 goodoo
近年、マイクロサービスの流行とともにプロトコルとして
gRPCが使われるのをよく目にします
PHPでgRPCを使おうと思ったとき、他の言語できるけれど
PHPでできないことはあるでしょうか?
Swooleを用いて、gRPCサーバを検証してみました
10
採択 他イベントOK 25分枠

PHPerのためのテストコード入門

02 / 大津 和槻 cocoeyes02
皆さんは普段テストコードを書いていますか?もしくはこれから導入しようと奮闘していますか?はたまたテストコードというのを初めて聞きましたか?
テストコードと一口に言っても、ユニットテスト、featureテスト、APIテスト、E2Eテストなどたくさんの種類のテストコードがあります。
テストコードを導入する前に「なぜそのテストコードを書くのか」を話せることを目的として、テストそのものやテストコードについてお話ししていきます。

当セッションでは、以下のような話をする予定です。
・そもそもなぜテストを書くのか
・なぜテストコードを導入するべきなのか
・それぞれのテストコードの特徴
・それぞれのテストコードのメリットデメリット
4
採択 他イベントOK 25分枠

5ヶ月でカバレッジを20%から90%にした話

吉田あひる strtyuu
この話は、オレオレフレームワークで作られたアプリケーションに秩序をもたらすべくヒィヒィ言いながらリファクタリングをし続けた男の5ヶ月間の記録である。

この話には以下のような内容が含まれる予定です
・OSSのフレームワークを使っていないアプリケーションの泳ぎ方
・テスト環境が整っていない状況でいかにテストを書くか
・テストとリファクタリングはどの程度のバランス感でやって行くといいのか
・リファクタリングにコストをかける意味はあるのか

※大規模なカンファレンスでの登壇は初となります
24
採択 他イベントOK 25分枠

Composerって何?どう動くの?読んでみました!

きんじょうひでき o0h_
Composerは、もはやPHPの現場に無くてはならない存在です。
内部構造に興味をいだいたことはないでしょうか?
ソースコードを読みましょう。今まで良く分からなかった「このエラーって何💢」に親しみを感じるかも知れません。
このセッションでは、 `composer install` を例にして、パッケージ名の解決・バージョンの解決・.lockファイルの吐き出しといった普段利用するComposerの挙動を読み解いていきたいと思います。
4
採択 他イベントOK 25分枠

15年続くWebサービスへのCI/CDとテストコードの導入

9bo9bo 9__bo
今年で15周年を迎えたWebサービスにテストコードとCI/CDを導入しました。
アプリケーションは何度かのリプレイスを経て、現行はPHP7とLaravelを基盤としたシステムで稼働しています。
一方で、データベースは古くから稼働したままのため、システム間の依存が多く見られ「サイトの規模の割にテストコードの実装が十分でなく、改修が怖い」といった課題がありました。
今回はマイグレーション管理されていないデータベース環境へのテストコードの導入とCI/CDの設定についてお話しします。
また、複数のシステムリプレイスの間に試行錯誤しつつ育てたテスト環境の歴史、CIによる継続的なパッケージアップデートとセキュリティチェックについてもご紹介したいと思います。
7
  • 1 (current)
  • 2
phpcon-2018-sponsors
2018 2017 スペシャル プラチナ ゴールド シルバー ブロンズ ランチ ネットワーク サンクス スポンサーセッション
初めてのスピーカー International CfPあり 来日意思あり ビデオ通話希望 採択あり LT採択あり
初心者向け 初めてのスピーカー インフラ 20回記念 設計 Test/CI/CD Security データベース レガシーコード フレームワーク