PHP Conference Japan 2020 プロポーザル一覧

他イベントOK Regular session (25 mins)

Messaging re:Born

Nick Chiu Thr33One
How Apache Kafka is different from other messaging systems like RabbitMQ.
What are the advantages and disadvantages and why you should
consider changing your service communication.
他イベントOK Regular session (25 mins)

How to not break messaging

Nick Chiu Thr33One
We all know about API versioning and how painful it can be to maintain these,
especially for many services and over a long time.
What if there was a better way for this using messaging?
We will dive in, how Apache Kafka and Apache Avro can make your life
easier and how you can have evolving schemas.
他イベントOK Regular session (25 mins)

Service communication re:Born

Nick Chiu Thr33One
As we move more and more to microservices communication between services becomes more important.
Using messaging is an effective way and gives us a lot of freedom & benefits, especially when using Apache Kafka.
This helps services to be very resilient and being able to scale without losing the control and overview.
他イベントOK Lightning talk (3 mins)

PHPer のための Vim 実践入門

濱田 晃輔 hamakou108
Vim は他のエディタに代えられない素晴らしい開発体験を提供してくれます。
その一方 PhpStorm や VS Code のような IDE が持つ豊富な開発補助機能が Vanilla Vim には存在しないため、実用面では IDE の後塵を拝する状況となっています。

Vim か IDE のどちらかなんて選べない!
そんな私は Vim をいかに IDE の書き味に仕上げることができるか、その可能性を突き詰めてみました。
Neovim と各種 Vim Plugins 、 Language Server の PHP Intelephense を使ってファイラ、自動補完、スニペット、リンタなどの機能を実現する方法を紹介します。
4
Long session (60 mins)

From dev to prod with GitLab CI

From dev to prod with GitLab CI shochdoerfer
Continuous Delivery Pipeline as code is key helping you to ensure long-term maintainability. Treating your pipeline as code helps you to version it in your SCM of choice, makes changes easily traceable, and lets anyone on your team make required changes. In this session, I will show you how we build and maintain our Continuous Delivery pipeline using tools like GitLab CI, Docker, Nexus, and Traefik. Together we will take a deep dive into the GitLab CI Build Pipelines to build and deploy docker containers to dev, stage, and production environments.
Regular session (25 mins)

How good are my tests?

From dev to prod with GitLab CI shochdoerfer
How to measure the quality of unit tests? Code coverage is not necessarily a good indicator to answer this question. What other options do we have? Do we need tests to test the quality of our tests? In some way, yes we do. In this session, I will introduce you to the concept of mutation-based testing and how this technique can be used to improve the quality of your test suite.
他イベントOK Regular session (25 mins)

【Symfony】DBマイグレーションの前に常にmysqldumpを実行するようにして心の平穏ゲットだぜ!

たつきち ttskch
SymfonyプロジェクトでのDBマイグレーションの不安を和らげるために、マイグレーションを実行する前にmysqldumpを出力するようにする方法について紹介します。
ちゃんとBlue Green Deploymentしているようなプロジェクトでは無縁の話ですが、サーバー1台にアプリもDBも同居しているような古き良き構成ではとても役立ちます。
インフラに投資してもらえないSymfonyプロジェクトをお持ちの方必見!
1
他イベントOK Regular session (25 mins)

【Symfony】シンプルでカスタマイズしやすい最強のページネーションバンドル

たつきち ttskch
Symfonyユーザーの皆さんに朗報です。

シンプルでカスタマイズしやすい最強のページネーションバンドルを作りました。
https://github.com/ttskch/TtskchPaginatorBundle

・超軽量
・Symfony以外に一切依存なし
・ページャー部分のHTMLなどはtwigで簡単にカスタマイズ可能
・見出し部分を簡単にソートのためのリンクにできる
・検索フォームとの連動も簡単
・ページャー部分のHTMLのBootstrap4テーマをプリセット

といった特徴を備えています。

本セッションでは、このバンドルを使って実際にページネーションを実装する手順や、Doctrineと連携した応用的な使い方について解説します。
1
他イベントOK Lightning talk (3 mins)

めざせブレークポイントマスター

つざき 820zacky
ブレークポイントを制するものがデバッグを制する。
PhpStormのブレークポイントを学び、ブレークポイントの真のチカラを解放しましょう。

PhpStormのブレークポイントには様々なオプションがあります。
「条件」、「ログ出力」、「次のブレークポイントに到達するまで無効にする」など、デバッグを便利にするオプションについて例を挙げながら解説します。
5
他イベントOK Regular session (25 mins)

LaravelとAWSでサービスとともに設計を成長させる

かずへい kazuhei__
開発当初はインスタンス一つで動いていたWebサービスも機能が増えるにつれて複雑になっていきます。
メールを送りたい、定期実行したい、高度な検索をしたい、ログを取りたい、アセットをCDNに置きたい。
Laravelをサービスをつなぎ合わせる糊として使うことでAWSにはたくさんの便利なサービスを有効活用できます。
設計が変化していった変遷をその時の苦労話を交えてお伝えします。
5
他イベントOK Lightning talk (3 mins)

やってはいけない!PHPあるある

村田主磨 canon1ky
便利メソッドが豊富で、高速に開発を行いたい時にももってこいなPHP!
しかし、アンチパターンを踏んでしまうとチームメンバーが入れ替わった際などの、技術的負債を大きく残してしまいます。

本LTでは、今までチーム開発を行う中で「ここ辛いよね」と話題に上がったパターンを、なぜ辛かったのかと共に紹介します。
また、それらの回避策も合わせてお話しします。
他イベントOK Regular session (25 mins)

Laravel × オニオンアーキテクチャで始めるテスト駆動開発

村田主磨 canon1ky
皆さんは単体テストを書いていますか?
結合テストを書いていますか?
テスト駆動開発をしていますか?

テスト駆動開発と言っても、どの部品の単位でテストを書けば良いか悩む方も多いのではないでしょうか。
テストを書く上ではソフトウェア設計への配慮が欠かせません。

ソフトウェア設計の大切さ、テスト駆動開発で単体テスト、結合テストを書く利点について理解を深め、その後にオニオンアーキテクチャを採用したソフトウェアでテスト駆動を行う手順を語っていきます。

当セッションでは下記のような話をする予定です。
・なぜテストを書く上でソフトウェア設計が大切なのか
・単体テストを書く利点
・結合テストを書く利点
・オニオンアーキテクチャの解説
・オニオンアーキテクチャでTDDを行う手順
1
他イベントOK Regular session (25 mins)

本番でしか起きない問題に早く気が付けるように、僕は Laravel Dusk で CI する

sogaoh sogaoh
昨年、最低限の機能でリリースとなった新サービス。
今も開発が続いているのですが、機能追加をリリースするたびに何かしらトラブルが発生してしまい、切り戻して終わる、ということが頻発していました。
この状況をなんとかしようと思い、足りてない施策をいくつか始めていきました。
Unit Test の自動化、PSR-4 チェック、そして、Laravel Dusk での Browser Test。
このセッションでは、開発から本番へ進む際にめぐりあった数々のトラブルをどう乗り越えて来たのか、と、
量産体制に入ることができている Laravel Dusk の Test 整備方法の一例を、デモを交えてご紹介できればと思います。
6
他イベントOK Regular session (25 mins)

DNS改ざん検知ツールの実装とDNSパケットの世界

市川@cakephper cakephper
30年以上前に作られたDNSの仕組みが今もなお同じように動作し、私たちのインターネットを支えている。2020年、令和の時代に熱いDNSの話をして、インターネットの基礎を支える技術に興味を持ってもらいたい。

DNSレジストラの脆弱性によりドメインハイジャック事件が起こっている。この事象を防ぐのは難しく、いかに早く改ざんを検知するかにかかっている。
そこでDNSのネームサーバ情報を定期的にチェックして改ざんを検知し、通知するツールを作成してOSSで公開した。
https://github.com/ichikaway/nschecker

本セッションでは、DNS改ざんによるドメインハイジャック、DNSの基本的な仕組み、検知方法を紹介し、実際の実装に関わるDNSプロトコルの実装を解説する。
基本的にDNSパケットはUDP 512バイトでやりとりされ、その制約から1bit単位で意味を持つようになっている。この意味を解説しながら、どのようなDNSパケットを送信するのか、受診パケットを解析するかを実装を交えて紹介する。
5
Long session (60 mins)

Functional Programming in PHP

Lochemem Michael agiroloki
Functional Programming is a programming paradigm that has, since its inception, gradually pervaded through the realm of programming. After all, in theory, it holds that any entity capable of simulating a Turing Machine is Functional Programming-affable. PHP is not outside the parameters of Functional Programming and is, in fact, eligible for the paradigm despite appearing to be ill-equipped for such a purpose.

Functional Programming, though currently in the zeitgeist, has a parlance whose perceived complexity poses some trouble in understanding its cornerstone principles. My talk, titled Functional Programming in PHP, is another in a long line of trials at effectively distilling Functional Programming knowledge for PHP audiences. I will, in the time afforded to me, attempt to discuss the foundations of the paradigm, its relevance and history, PHP's aptness for FP, technical hallmarks - immutability, composition, referential transparency, and function purity - as well as applicable meta concepts like Functors and Monads for building real-world applications.
1
他イベントOK Lightning talk (3 mins)

再コンパイル不要! core dump さえ吐ければ gdb デバッグできます

鈴木 智也 yamotuki
Laravel Artisan コマンドの突然の Segmentation fault。他に出力は無かった。

手がかりが無い中、core dump さえ吐ければセグフォ対応は出来るという情報だけを覚えていた。
core dump といえば gdb。gdb といえばバイナリの再コンパイル。茨の道に決まってる。
実際には再コンパイルしなくても 1. gdb コマンド、2. core dumpファイル、3. Segmentation fault を吐いたバイナリ、の三種のパーツが揃えばデバッグ可能であった。

PHPerとしてはややハードルの高いツールたちを使って問題解決にこぎつけた方法を共有します。
8
他イベントOK Lightning talk (3 mins)

PHP で電卓を作る

めもり〜 m3m0r7
プログラミング覚えたての時、電卓を作るといったことをした方や、今現在プログラミングを学習中で電卓を作っている方もいらっしゃるかと思います。
電卓を作るといえば「1+1」と入力したら単純に「2」が出力されるイメージでしょうか。作っているうちに、「あれ?「((1 + 2) × 3)-((1 + 2) × 3)」みたいな式はどうするんだ?」と疑問に思った方も少なくないと思います。そこで本トークでは3分間という短い時間で、複雑な式を計算できる、もう一段階上の電卓を作る方法についてお話します。
3
他イベントOK Regular session (25 mins)

ゼロベースから Laravel を用いた API 実装オートメーション

めもり〜 m3m0r7
弊社のシステムはバックエンドのフレームワークは Laravel を使用、そして OpenAPI と呼ばれる API の設計書を書けば CRUD に対応した API が自動的に実装されるような仕組みを用いて自動生成し、最後にバリデーションを書けば、一つの API が完成します。
もともと弊社の社内システムは SaaS 上にしかなく、かつバックエンドエンジニアが私一人である中で、どう効率的にゼロベースからプロダクトを組み上げるとプロダクトのローンチを早められるかが鍵でした。
CRUD に対応した API 実装、正常系・異常系テストの生成自動化、API のドキュメントの記述、全文検索エンジンへどう自動的に繋ぎこむか、例外処理はどうするか?といった全ての事情を汲み取りながら基盤開発に邁進し、
今では一つあたりの API の実装は 10 分もかからないレベルになりました。本トークでは、この基盤の構築をした経験を元に、考えてきた事、実行してきたこと、判断に迷ったこと、そして Laravel を使った実装についてのお話をできればと思います。
2
他イベントOK Long session (60 mins)

ゼロベースから Laravel を用いた API 実装オートメーション

めもり〜 m3m0r7
弊社のシステムはバックエンドのフレームワークは Laravel を使用、そして OpenAPI と呼ばれる API の設計書を書けば CRUD に対応した API が自動的に実装されるような仕組みを用いて自動生成し、最後にバリデーションを書けば、一つの API が完成します。
もともと弊社の社内システムは SaaS 上にしかなく、かつバックエンドエンジニアが私一人である中で、どう効率的にゼロベースからプロダクトを組み上げるとプロダクトのローンチを早められるかが鍵でした。
CRUD に対応した API 実装、正常系・異常系テストの生成自動化、API のドキュメントの記述、全文検索エンジンへどう自動的に繋ぎこむか、例外処理はどうするか?といった全ての事情を汲み取りながら基盤開発に邁進し、
今では一つあたりの API の実装は 10 分もかからないレベルになりました。本トークでは、この基盤の構築をした経験を元に、考えてきた事、実行してきたこと、判断に迷ったこと、そして Laravel を使った実装についてのお話をできればと思います。
3
他イベントOK Regular session (25 mins)

ゼロチームからスタート地点まで

めもり〜 m3m0r7
弊社にはプロダクト開発部というものがありませんでした。物流のオペレーションは全て SaaS のシステム一つのみ。そのシステムを内製化するため
プロダクト開発部のチームをゼロから設計し、今ではエンジニア 3 名、デザイナー 1 名の小さいですがチームが組み上がってきました。
チームを組み上げていくにあたって大切にしてきたこと、そしてチームにおける技術の価値観の定義についてお話できればと思います。
1
  • 1 (current)
  • 2