採択
2019/03/31 10:55〜
Track A
レギュラートーク 15分

PHPでURLルーティングをつくる

bmf_san bmf_san

PHPでURLルーティングをつくってみた話をします。
普段フレームワークを活用していると、ルーティングの実装はフレームワークが用意したパッケージや外部ライブラリ依存であることが多く、自作するモチベーションやメリットはあまり浮かばないかもしれません。
今回、実用性のあるものを作り上げるのは難しかったですが、敢えて車輪の再発明に挑戦することで
様々なライブラリの実装パターンや実行速度のパフォーマンスの懸念点を知る機会になったり、
アルゴリズムの実装力(エンジニアの基礎体力)を鍛える良い練習にもなりました。
15分の時間内でURLルーティングを自作するメリットと楽しさについてお話できればと思います。

採択
2019/03/30 16:15〜
Track B
レギュラートーク 15分

サーバーレスPHP

ippey_s 角田 一平

去年の11月にAWS LambdaでCustom Runtimeがサポートされることが発表されました。
PHPでは "PHP Layer for AWS Lambda" を利用して、サーバーレスなPHP実行環境を構築することができるようになりました。
そんなサーバーレスPHPの概要や環境構築手順、Symfonyなどのフレームワークを利用する際のTipsなどをご紹介したいと思います。

採択
2019/03/30 14:45〜
Track A
レギュラートーク 30分

モバイルアプリ向けAPI開発を通じて学んだこと

hypermkt バーチー

モバイルアプリ向けのAPI開発、今となっては当たり前の開発要件です。しかし、一般的なWebアプリケーション開発しか経験が無かった我々にとっては難しい課題でした。

プロジェクト開始から1年、ホームページ作成サービスグーペのiOSアプリは、2019年1月中旬にリリースする運びとなりました。初めてのRESTful API, 技術選定, 既存サービス向けのモバイルアプリ開発ゆえの課題, クラス設計, セキュリティ対策, プッシュ通知, 認証, チームコミュニケーションなど様々な課題がありました。

本セッションでは我々が経験した課題をどのように解決し何を学んだのか、プロジェクト全体を通じてご紹介したいと思います。特に今後新規でモバイルアプリを開発されるAPI開発者におすすめです。

LT

PHP停止の気付き 〜サービス監視ツール〜

seike460 清家史郎

みなさん試行錯誤してPHPサービスを止めないように努力されていると思いますが、
現実世界上でSLA100%を完全保証することは不可能です

であれば当然止まった時に「気付く」ツールを使います
私がPHPと触れ合う中で試した各種ツールについてお話します

  • ツール提供情報
  • 導入難易度
  • お金
1
採択
2019/03/31 14:15〜
Track A
レギュラートーク 15分

PHP監視、サービスを守る為に行う不測の事態への努力

seike460 清家史郎

みなさん試行錯誤してPHPサービスを止めないように努力されていると思いますが、
現実世界上でSLA100%を完全保証することは不可能です

では最速で復帰させる為にどの様な努力を行えば宜しいのでしょうか?

僕が行っている最速で「気付く」方法を赤裸々に語ります

  • サーバの中からのアプローチ
  • サーバの外からのアプローチ
  • 各種のアプローチを行う金の弾丸と努力の結晶

PHPのエラーが発生して何が起きたかを慌てるのではなくて、
発生した瞬間に認識する方法を思考します

レギュラートーク 30分

PHPを救うことについて語るときに僕の語ること

seike460 清家史郎

みなさん試行錯誤してPHPサービスを止めないように努力されていると思いますが、
現実世界上でSLA100%を完全保証することは不可能です
サービスを止めない努力の先の、止まった時に如何にしてPHPを最速で復帰させるのか、僕の考えをお話します

  • サービスとOSSによる外形監視、症状監視
  • 症状に応じた初期調査による思考と原因究明
  • 原因に対する思考と復旧方法

みんながお世話になってるPHP、そのPHPを助ける方法を思考しましょう

1
採択
2019/03/30 14:15〜
Track A
レギュラートーク 15分

設計力を上げるバリエーションの見極め術

77web 77web

昨年のベストトーク賞「SOLIDの原則ってどういうふうに使うの?」でも話題になったとおり、設計の難度を上げるのは「バリエーション」です。
そのバリエーションの発生パターンの見極め・予測法こそがプログラマーとしての経験値と言っても過言ではないと思います。
いざバリエーションが発生してから「しまった…!」とならないように、発生しうるバリエーションの予測精度を上げるには設計時にどこに注目・注意すればいいか?のコツをお伝えします。

採択
2019/03/31 11:25〜
Track A
レギュラートーク 30分

Hack HTTP Request and Response Interfaces

ex_takezawa ytake

Hackには、HTTPの処理に関してPSR-7のように相互運用を可能にするためのインターフェースが存在します。
PSR-7と異なるインターフェースはなぜ用意されたのか、
PSR-7とHackのインターフェースの違いはなにか、
Hackでの実装例と他言語のHTTP処理を比べながら、リクエストレスポンスの表現について理解を深めるセッションです。

レギュラートーク 30分

New Designs : Streaming Architecture

ex_takezawa ytake

マイクロサービスアーキテクチャを実現するために利用される分散型メッセージングミドルウェア。
PHPアプリケーションで導入している方も多いのではないでしょうか?
メッセージングミドルウェアの中でも大規模アプリケーションで導入事例も多いApache Kafkaには、
単純なメッセージングのほかにもストリーム処理を支えるKafka Streamsやデータハブとして機能するKafka Connectなどがあります。
本セッションではKafka Streamsに焦点を当てて、
ストリーム処理のアーキテクチャ設計についてPHPアプリケーションを支えるデータ処理の入り口へ案内します。

2
レギュラートーク 15分

Zaim における PHP アプリケーションの運用

naoki85_201612 naoki85

Zaim はオンライン家計簿のアプリですが、運用上 PHP の役割が大きいです。
今回の発表では、Zaim における PHP アプリケーションの運用において、使用しているツールや直近の困ったことなどを共有させていただきたいと思います。

2
採択
2019/03/30 15:30〜
Track A
レギュラートーク 30分

3ヶ月でphp5.5から7.2にバージョンアップした現在と今後の向き合い方

kosachan3 kosa3

3ヶ月でphp5.5のサイトを7.2へバージョンアップリリースした過程の記録と現在のサイトの変化、そこから得た今後の対策についての3つの点からお話しします。

・phpバージョンアップでのプロジェクト体制や取り決めたルールと開発過程での数々のハマった課題を掘り下げリリースまでこぎつけた記録についての紹介。

・リリース後のサイトの品質やパフォーマンスの変化、当時同様にphpバージョンアップをしていた姉妹サイトとの比較や事例紹介。

・php7.3や今後のphpバージョンアップを見据えてやったこと、事前にやりたかったことの共有。

採択
2019/03/30 17:15〜
Track A
レギュラートーク 15分

コンパイラ作りの魅力を語る

DQNEO DQNEO

長年PHPをやってきた普通のウェブエンジニアが、ある日突然コンパイラの魅力にとりこまれ、寝ても覚めてもコンパイラのことしか考えられなくなりました。
こんなに面白いものがあったのかと。

まずC言語コンパイラをCで書き(写経)、つぎにC言語コンパイラをGoで書き(移植)、気がついたらGo言語コンパイラをGo言語で書いている自分がいました。
そこで見えてきたものは、それまでWeb開発で見ていた景色とは全然違う世界でした。

値とは何か。式とは何か。解釈とは何か。
コンパイラを作る者は、それらの問に対して自分なりの答えを見つけなければなりません。

Goコンパイラに挑戦して1日目Hello wordがで動いたとき、ソフトウェアエンジニアとして非連続的な成長をしつつあるのを実感しました。

コンパイラが書きたい。もっと書きたい。
コンパイラ作りの魅力について語ります。

採択
2019/03/29 17:25〜
Track A
レギュラートーク 15分

PHP でも Raspberry Pi がしたい!

H_Shinonome 東雲

Raspberry Pi でLEDを光らせたりするのは、Python / C だけだと思っていませんか。
このトークでは電子工作の基礎から、PHP から Raspberry Pi の GPIO を制御する方法や、OSS のライブラリを紹介します。

  • Python / C をあまり良くわからないけど Raspberry Pi 触ってみたいPHPer
  • Webから制御できる電子工作を気軽にやりたいPHPer

そんな方の背中を少しでも押せたらいいなと思います。

採択
2019/03/31 13:30〜
Track B
レギュラートーク 30分

アンチパターンから学ぶ、RDBの正しい設計

soudai1025 曽根 壮大

データベースの寿命はアプリケーションより長い。
皆さんも感覚的に理解していても、では実際にどのように付き合っていけばいいのでしょうか。
そこで誰もが経験のあるアンチパターンを題材に正しい設計について紐解いていきます。

  • あの時どうすればよかったのか
  • アンチパターンを防ぐためには
  • 今あるアンチパターンとどのよに戦っていくか

そんなヒントを散りばめた濃厚なデータベースのノウハウをお届けします。
今回のアンチパターンは

  • キャッシュ中毒
  • ORM依存症
  • 知らないロック

の3点をお届けします!

レギュラートーク 30分

これからPostageSQLを使う人のための詳解 PostgreSQL - 最新機能とMySQLの違い

soudai1025 曽根 壮大

みなさんはどのRDBMSをお使いですか?
PHPといえばMySQLという時代から変わりつつあり、PostgreSQLを採用されるケースも目立ってきました。
では実際にPostgreSQLを使うと何が嬉しいのでしょうか。
MySQLと比べたPostgreSQLの基本的な違いやメリットとデメリット、そして最新機能についてお伝えします。

  • PostgreSQLは触ったことがない
  • MySQLとの違いがわからない
  • 現場でPostgreSQLがあるけど怖くて触れない
  • 次の案件ではPostgreSQLを採用したい

そんな人達のための明日から使いたくなるPostgreSQLの話をします。

2
レギュラートーク 30分

サービスを止めるな! ~ 9年目の大変革、リファクタリングと成長の物語~

soudai1025 曽根 壮大

オミカレは2011年からスタートした9年目のPHP製Webサービスです。
9年前はモダンなプロダクトでしたが今では多くの技術的負債を抱えています。
このままでは駄目だ!と決意して一大リファクタリングプロジェクトを行っています。

そこで実際にどのようにサービスの開発、稼働を止めずにリファクタリングをしているか。
次のような知見を余すことなくお伝えします。

  • ALBのパスベースルーティングを使ったフレームワークとPHPのバージョンアップ
  • DMSを使ったRDBリファクタリング
  • 改善しなら前進していくためのコツ

みなさんはレガシィだからと言って諦めてませんか?
一緒にこの先、10年戦えるプロダクトを作るためのリファクタリングにチャレンジしていきましょう。

4
レギュラートーク 30分

エンジニアだけで完全内製化のQAチームを立ち上げた話

saik1010 斉藤健太

弊社はクチコミ掲載数日本最大級を誇る結婚準備クチコミ情報サイトのウエディングパークをはじめ、ブライダル専門の5つのメディアを自社で開発・運営しています(主要技術:PHP/Laravel/MySQL/Goなど)。サービスの成長に伴い開発体制が50名規模と拡大する中で、開発スピードの向上とプロダクト品質の担保するため、約1年前にエンジニアが中心となってQAチームを立ち上げました。今回は、「チーム立ち上げ〜現在」まで、エンジニアならではの視点で課題解決に取り組んできたこと(自動テスト、組織作り、啓蒙活動、障害分析)をお話しします。

2
レギュラートーク 15分

Webエンジニアのためのアセンブリ言語入門

DQNEO DQNEO

アセンブリがわかればコンピュータがわかる。

コンピュータが動く仕組みを知りたいと思ったことはありますか?
コンピュータが直接理解できるのはマシン語だけですが、それを少しわかりやすくしたのがアセンブリ言語です。

アセンブリは高級言語とぜんぜん違います。
変数、IF文、ループがありません。そんな言語で何ができるのか?
何でもできる!

アセンブリ言語はまた、多くのコンパイラの出力データとしても使われています。
実際に私はこの知識をつかってC言語コンパイラとGo言語コンパイラをある程度書けるようになりました。

一介のWebエンジニアにすぎなかった私がアセンブリを学んで読み書きできるようになった体験をもとに、わかりやすく解説します。

本トークを聞いたあと、あなたは「アセンブラ難しいと思ってたけど、意外とやればできるのでは」という感覚を得られるでしょう。

5
レギュラートーク 30分

実コードと一緒に学ぼう、Laravel × レイヤードアーキテクチャ

okashoi 岡田正平

「『レイヤードアーキテクチャ』の名前は聞いたことあるけど敷居が高そう……」といった方に向けて、実コードと一緒に各レイヤーの役割/考え方や、Laravel での実装における tips 等をお話しします!
※(Laravel に限らず)web フレームワークを使ったことがあり、オブジェクト指向プログラミングの基本概念(class, interface 等)を理解している方を想定しています。

1
レギュラートーク 15分

ユニットテスト用のMySQLをdockernizeして得られたもの

yoku0825 yoku0825
  • あなたの環境ではテスト用/開発用のMySQLは人数分用意されていますか?
    • 某弊社では共有です/でした
  • ある時、 思い付きで ユニットテスト用のMySQLをdockerコンテナに詰め込んで、テストのたびに生成/破棄するような仕組みを一部のプロダクトで導入できました
    • その時の(DBAとしての)工夫を紹介します
2