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

抽象化って何?

hidenorigoto 後藤 秀宣

「抽象」という言葉に抵抗を感じるプログラマは多くいると思います。抽象的=フワっとしていて理解しづらいという抵抗や、抽象化=プログラムを分かりづらくするという抵抗など。では、プログラムを書く上で、抽象化は不要なのでしょうか?
この講演では、私達人間にとっての抽象化と、プログラミングにおける抽象化について掘り下げ、プログラミングにおいて役立つ抽象化がどのようなものなのかをお話します。

レギュラートーク 30分

AWS lambda の(準公式)PHPサポートが好きになれない!

uzulla うずら

先日、AWSのLambdaでPHPがサポートされました!

しかし…ネイティブサポートというわけではなかったですね(残念)まあ、色々な都合はわかる所です、PHPのバージョンが固定されないという意味ではよいですよね!

※ 別に5.4に長いことロックされていた某サービスに文句をいっているわけではない

それはそうとして、発表直後こそ大喜びした私ですが、公開されたコードを読んで少々うーん?と思う所もありました。

「これはたしかにPHPだ、PHP-ismになるようにしてある。でも、こうしなくてもよいのでは…?」

他の言語バインディングなどを確認し、PHPならではの設計となっていることに疑問を覚えた私。「こういうふうにしたほうが良いのでは?」というお話をいたします。

また、普通のウェブアプリを普段書く方向けに、構造(使い方ではない)や「一見微妙に見えるこの実装」がなぜ良いのか(勝手なエスパーで)等をお話してみたいと思います。

注意: このトーク自体がLambdaを使う上で直接的に役立つかというと、多分役立ちません!

2
レギュラートーク 30分

httpdと(mod_php|php-fpm|php-cgi)のカンケイの話

uzulla うずら

PHPにはhttpdがない(諸説あります)

そうすると様々な方法で、Httpd(ApacheやNginx)と付き合っていく必要がありますね、

そのあたりの設定についてコピペで済ませる人が多いですが、それってどうなのっておもいませんか?(えっ、おもわない?)

実は「よく知られている(検索で出てくる)設定はセキュリティ的にまずい」、「あるフレームワークだとなんか動かない」とか、しばしば見かける話だったりします。

様々な設定項目を確認して、それぞれの意味を見直してみませんか?

秘伝のconfからの脱出を図りましょう!

1
レギュラートーク 30分

私が気になる最近の謎PHPライブラリ一挙紹介100連発!

uzulla うずら

私には「Packagist監視おじさん」として活動する顔があります(自称です)。@call_user_funcというTwitter botで、Packagistに投稿されるパッケージを日々監視しています。

Packagistに日々大量に登録されるライブラリですが、私が最近気になっているパッケージをたくさん紹介いたします!

※100連発とかいてありますが、これは「たくさん」という意味で当日100連発になるかは不明です!

聞いたこともない、みたこともない、日本では知られていない、本当に流行っているとは思っていなかった様々なパッケージに付いてご紹介いたします。

6
レギュラートーク 30分

ちょっとまって!そのベンチ直線番長じゃないですか?

uzulla うずら

PHPがまた早くなった!そういう話結構多いですよね。僕もぐんぐんと伸びるグラフやベンチを貼って「PHPははやくなった!他の言語に負けていない!」とか言ってみる事もしばしば(?)あります。

でも、そうなのかな?本当にPHPって速いのかな?本当に速かったら、皆がgoとかに民族移動しなくてもよいのでは…?(無論、速い以外の理由もあるのでしょうが…!)

いやいやでも結構PHPも速い(ような気がする)し…。

ということでPHPでよく見る「ベンチの欺瞞」あるいは「現実との乖離」、「先入観」についてかんがえてみませんか。

3
レギュラートーク 30分

PHPはApache+mod_phpで十分(?)

uzulla うずら

みなさんPHPでサービス提供していますか?何をつかって提供していますか?

Nginx+php-fpm?h2o+php-cgi?IIS+php-fpm?swoole?builtin server?HHVM?Roadrunner?PHP-pm?いやいや、Apache+mod_phpですよね?あるいは諸般の事情でapache+php-cgiかもしれない。

Apache+mod_phpはいろんな人が「いまどきApacheとかないわ〜」とか「もうそもそも考えてもいなかった」とか言っています。でもどう考えてもApache+mod_phpで8割のケースは十分ですよね??

(勿論、2割のケースにいらっしゃるかもしれません。勿論そうなら泣く泣く(??)Apacheを使わないのは正しい!!)

これらを比較して、mod_phpを見直してみましょう!

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

帰ってきた!平成最後のオレオレフレームワークの作り方

uzulla うずら

唐突ですがフレームワーク(以後FW)は古代存在しませんでした、よって昭和の人間は自分でFWを書いていたと伝えられています(諸説ある)。

とはいえ今は<?= $php_fw_list; ?>といった素晴らしいFWがありますよね。平成も終わる今、タイトルのようにオレオレフレームワークを書く意味があるのか?その疑問は一理あります。

所でFWとは枠組みで、枠組みは内を支えるものです。つまりFWを書く事で自分の内面を知ることに繋がります。そう、自分を知るためにFWを書くべきです!(?)

平成の終わり、オレオレフレームワークを書き、自分を知りましょう!そして…!

*

  • 空のファイルから全部書いたことがない人へ
  • FWとはスタイル・ベストプラクティスである
  • 最大公約数とパラダイム、時代の移り変わり
  • 模倣にはじまり、オリジナルを見出し、はしかにかかり、「大人」になっていく
レギュラートーク 30分

1年で不具合の半分に!長く運用するWebサービスでやるべきこと。

saik1010 斉藤健太

弊社はクチコミ掲載数日本最大級を誇る結婚準備クチコミ情報サイトのウエディングパークをはじめ、ブライダル専門の5つのメディアを自社で開発・運営しています(主要技術:PHP/Laravel/MySQL/Goなど)。約1年前にQAチームを立ち上げ、不具合を前年度比で半減させることをミッションに日々活動を行っています。特に2004年から運営するウエディングパークでは、長く運用するWebサービスだからこその課題や悩みが多くありました。その中でQAチームとして取り組んだことから成功したこと・失敗したことなどをリアルにお話しさせて頂きます。

1
レギュラートーク 30分

Laravelの互換性に向き合うジレンマ

sakamoto03 坂本剛彦

人気沸騰中のLaravel。どんどん追加される新機能。そして、Laravel自体のバージョンアップ(5.3⇒5.4⇒5.5⇒5.6⇒5.7)。
Laravel内で変化を追従しながらも、人知れずレガシー化している自身のコードの書き方。
例えば、私の書式『5.3』、現行『5.7』。
そして、5.3と5.7のバージョン間の互換性のロスト。
この互換性の問題にどう立ち向かえば良いか。ソフトウェア設計の互換性を考慮した私の提案と問題提起を行います。

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

PhpStorm30分集中超絶技巧

yusuke 山本ユースケ

リファクタリング、ナビゲーション、ファイルの移動、PhpStormをマウスを使って操作していませんか?
マウス、トラックパッドは窓から投げ捨ててしまいましょう。

マウスフリーになるPhpStormの知ってトクするショートカット、並びに便利技100選を紹介します。
このセッションを受講すれば明日から開発速度が100倍くらいになる!かもしれません。

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

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

hypermkt バーチー

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

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

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

レギュラートーク 30分

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

seike460 清家史郎

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

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

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

1
採択
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
採択
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/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
レギュラートーク 30分

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

okashoi 岡田正平

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

1