Lightning talk (3 mins)

PHPUnit 9 時代のTest Doubleの作り方

hgsgtk 東口和暉

PHPUnit もバージョン 9 になりました。長年第一線で活躍し私達PHPerにテスト可能な開発環境を提供し続けてくれているPHPUnitは、その分歴史が長く、バージョンごとに これまでの使い方は deprecated になっていきます。

PHPUnit 9 では、さまざまな機能削除や非推奨勧告がありますが、その一つが表題にある MockBuilder::setMethods の deprecated です。

そこで改めてこの変更を機に、次の点をものの3分でお得に抑える時間を提供したく思います。

  • PHPUnitのTestDoubleの語彙整理の根拠 xUTP本とその該当箇所、createStub / createMockの違い
  • setMethodsからaddMethods/onlyMethodsになった使い方
  • deprecatedになった理由をissueの内容から抑えて背景思想を理解する
  • PHPUnit の内部実装ではどのような変更が行われたのか(これはPHPUnit 8でのaddMethods/onlyMethodsの話でもある)

LTっぽい内容凝縮トークになると思います。

17
Regular session (25 mins)

アジャイル開発見積実践 〜フィードバックを継続的に得るためのユーザーストーリー分割〜

hgsgtk 東口和暉

昨今のPHPerにとって、継続的に価値を提供するソフトウェアをつくるためには、言語等の技術要素に加えて、開発の流れや人に対するエンジニアリングも必要不可欠です。
「技術と人」両方に着目するようになると、XPやアジャイルなどの考え方・取り組みに最終的に帰着するチームは多いと思います。
アジャイル開発において、ユーザーストーリーをイテレーションごとに収まるような形で分割することは、プロダクトに対する検査と適応のリズムを得るために重要な取り組みです。ユーザーストーリーが大きすぎるものをそのまま取り組もうとすると、大きさゆえに見積自体の精度もより落ちてしまったり、その実現に期間を要することから顧客からのフィードバックも得づらくなります。

今回は、実際に所属企業で実践した実例を題材にしつつ、聴講いただいた皆様が明日から使える実践的な見積もり技術話をお届けできれば思っています。

11
Regular session (25 mins)

Community Strategy 101

chmazur Chris Mazur

Communities are increasingly important in this Digital Transformation era. Getting together people and technology with common interests, a strong sense of belonging and collaboration is a powerful platform to empower individuals and connect organizations with their audience.

With 20 years of experience in software development and more than 12 years being heavily involved in tech communities as community leader and strategic advisor in Argentina, New Zealand, Australia and US I would love to dive with you the principles of building diverse and innovative communities with a positive impact in the society.

1
Regular session (25 mins)

Messaging re:Born

Thr33One Nick Chiu

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.

Regular session (25 mins)

How to not break messaging

Thr33One Nick Chiu

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.

2
Long session (60 mins)

From dev to prod with GitLab CI

shochdoerfer Stephan Hochdoerfer

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)

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

ttskch たつきち

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

3
Regular session (25 mins)

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

ttskch たつきち

Symfonyユーザーの皆さんに朗報です。

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

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

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

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

2
Regular session (25 mins)

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

kazuhei__ かずへい

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

10
Lightning talk (3 mins)

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

canon1ky 村田主磨

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

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

3
Lightning talk (3 mins)

PHP で電卓を作る

m3m0r7 めもり〜

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

8
Regular session (25 mins)

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

m3m0r7 めもり〜

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

8
Regular session (25 mins)

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

m3m0r7 めもり〜

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

2
Regular session (25 mins)

SaaS で運用していた顧客管理システムをゼロから内製で開発、そして稼働するまで

m3m0r7 めもり〜

弊社では顧客管理システムを SaaS で管理していたのですが業務要件が拡大するにつれて SaaS が提供している API のコールが頻繁に発生し Rate Limit になってしまったり、顧客 1 人の詳細を開くのに
5 秒以上かかる、そしてシステムがスケールできないといった課題がありました。その課題を解決するための一歩として顧客管理システムの内製化をはじめました。
本トークでは、どのように内製化を進めていき、そして稼働するまでの軌跡をお話できればと思っています。

6
Long session (60 mins)

Elasticsearchを組み合わせて作るレコメンデーション

ex_takezawa 竹澤有貴

PHPや他の言語とも親和性も高くスケーラブルな検索エンジンのElasticsearchを活用し、
現代のWebアプリケーションでは必要不可欠なユーザーに対するレコメンデーションを実現することができます。
今回は実例を交え、その仕組みと大規模なアプリケーションでも対応可能なアーキテクチャ、
ミドルウェアの組み合わせも交え、PHPなどの言語でそれらを如何に実現するか、
機械学習の入門や、簡単にレコメンデーションを実現したい方すべての方へヒントになる様に詳解します。

13
Regular session (25 mins)

2年前にペチコンで話した内容が本になった。技術力をお金に換えるためのペチパー向け企画書講座

_yoshimasa 吉政忠志

人生においてお金があることで選択肢が増えることがあります。磨いてきた技術力を何らかの対価に変える方法の一つに企画があります。このコーナーではペチパー向けにできるだけ多くの実例をもとにした、採用される企画書の書き方をご説明します。また、より深く知りたい方向けに抽選で10名様に拙著「ITエンジニア向け企画力と企画書の教科書」(2020年3月出版)をプレゼントいたします。

2