PHP Conference Japan 2019 トーク一覧

他イベントOK 60分枠

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

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

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

Laravel等の元コードの『読み方』『読み飛ばし方』

うゐろう nyamucoro
■ターゲット
PHP初級者、中級者

■題材
Laravel
(他のフレームワークでも応用できる説明もします!)

■話の大枠
1. PHP歴1年でもLaravelの元コードは読める
2. 手法: `die()`や` funcName(`で検索する
3. 手法: あえてすべてのコードを読まない(関数名・コメント)
4. 元コードに学ぶ、自分のコードの書き方

■初心者の方へ
私はLaravelのコード読んでたら、コントリビュート出来たり、登壇出来たりしました。
ちょっと違うレベルアップをしたい時、ソースコードリーディングは良いです。

明日の自分は公式ドキュメント読むより、GitHubのソースコード読めば良いじゃんって言っているかもしれません。
2
採択 他イベントOK 2019/12/01 17:15〜 Track 1 (1F 大展示ホール) Lightning Talks

エンジニアがブログや登壇で、アウトプットするとどうなる?

うゐろう nyamucoro
■対象の人
1. アウトプット続かない
2. アウトプットの良さわからない
3. アウトプットで何かが変わる未来が見えない

■内容
1. アウトプットって本当に意味あるの?
2. 『あなた』はアウトプット『すべきか』
3. 私が本当に起こったこと
4. アウトプットはいいぞ

私はもともと『落ちこぼれ』でした。自分に全く自信がありませんでした。
そんな私が、今Conferenceで登壇したり、勉強会でLTをしたりしています。

『エンジニアがアウトプットしろというの意味わかんない』
『アウトプットとか絶対続かない』

いやいや、エンジニアこそやると良いと思います。
一年間で生活が大きく変わった私から、私の思いを話したいと思います。

一歩先のエンジニアになるために、アウトプットしませんか?(beyondのテーマ回収)
3
他イベントOK Lightning Talks

開発を早くするために、『正しい意味で』プログラムを書く

うゐろう nyamucoro
■対象
プログラミング初心者・中級者

■概要
1. 間違った認識でプログラムを書いたら?
2. 手法: 日本語を書いてから、プログラムに翻訳する
3. 手法: アンチパターン・登場人物の洗い出し

---
1.『classがspecial_itemsのパーツの色を変えてほしい』
2.『それはこの画面の上から4番目のパーツだ』

1. 対象のclassのパーツの色を変える
2. 上から4番目のパーツの色を変える

どちらも、正しく動くでしょう。・・・今は。
もし、一番上に新しいパーツが追加されたら・・・?
---
仕様変更や他のプログラムを合体させると動かなくなり、再修正の時間が発生することがあります。

『正しく意味を理解して、それをプログラミング言語に落とし込む』
バグを減らし、変更に耐えやすくなり、再修正も減って、最終的に開発が早くなります。
1
他イベントOK 25分枠

PHPでやさしい日本語化エンジンを作ったお話し

野田純生 junnama
「やさしい日本語」とは、かんたんな表現、一文を短く、漢字にふりがなを振ってわかち書きをするなどして、日本語に不慣れな外国人や知的障害者にもわかりやすくした日本語のことです。
元来は災害時の情報伝達のために考えられましたが、出入国管理法改正案の閣議決定、知的障害を持つ人にも有用であることがわかってきたことなどから注目を集めています。

そこで、機械翻訳による「やさしい日本語化」エンジンを開発しました。開発には PHP+MySQL、MeCab、CaboChaなどのソフトウェアを用いました。

・分を短く分割する
・文末表現を揃える
・登録されている語彙変換辞書から言葉の言い換えをする
・文章を分かち書きして、ふりがなを振る

といった機能を提供し、URLを渡すことでウェブページを自動的に変換する機能を提供します。

https://tsutaeru.cloud
4
他イベントOK 25分枠

Explicit Architectureに学ぶアプリケーション実装

久保田賢二朗 kubotak_public
DDDやClean Architectureが騒がれて久しい昨今ですが、やはり実装に落とし込むのは難しさを感じます。
どのレイヤーにどんな責務があるのか、理解してもいざ実装するとやっぱり迷ってしまうものです。
Explicit Architectureはそんな迷いを解決してくれるヒントになってくれると思います。
Explicit Architectureの概要とそれをLaravelで実装したコードを紹介して、皆さんのアプリケーションのヒントになれば幸いです。
8
他イベントOK 60分枠

Explicit Architectureに学ぶアプリケーション実装

久保田賢二朗 kubotak_public
DDDやClean Architectureが騒がれて久しい昨今ですが、やはり実装に落とし込むのは難しさを感じます。
どのレイヤーにどんな責務があるのか、理解してもいざ実装するとやっぱり迷ってしまうものです。
Explicit Architectureはそんな迷いを解決してくれるヒントになってくれると思います。
Explicit Architectureの概要とそれをLaravelで実装したコードを紹介して、皆さんのアプリケーションのヒントになれば幸いです。
15
他イベントOK Lightning Talks

民主的で現実的なコーディング規約を運用する

きんじょうひでき o0h_
「コーディング規約」というと、「なんだか面倒くさいアレね・・」というイメージを抱く人もいるかも知れません。
しかし、複数の人が集まって共同でコードをいじる以上、「取り決め」をして公正で安心な開発体験を維持することは欠かせません。
どうしたら、みんなで納得しながらルールを育み、気持ちよく乗っかれるでしょうか?

コーディング規約自体の整備方法と、「人間の手を煩わせず」にルールを適用するために活用できるルールを紹介します。
4
採択 他イベントOK 2019/12/01 17:10〜 Track 1 (1F 大展示ホール) Lightning Talks

運用経験ばかりのメンバーと新規開発で初めてしっかりと設計から開発までを経験した話

大重智志 _ohshige
既存サービスの運用を行っていると、本腰をあげてリファクタリングをしない限り根本の設計はずっとそのままです。
運用がメインで、しっかりとした設計(例えばDDDやクリーンアーキテクチャなど)の実務経験がほとんどない中、新規サービスを開発することになりました。
せっかくならより良い設計のサービスにしようと思い立ち、未経験で奥深い「設計」の世界にチームメンバーも巻き込みながら挑戦してみました。
採択 他イベントOK 2019/12/01 15:20〜 Track 4 (4F コンベンションホール 梅) 25分枠

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

9bo9bo 9__bo
今年で15周年を迎えたWebサービスにテストコードとCI/CDを導入しました。
アプリケーションは何度かのリプレイスを経て、現行はPHP7とLaravelを基盤としたシステムで稼働しています。
一方で、データベースは古くから稼働したままのため、システム間の依存が多く見られ「サイトの規模の割にテストコードの実装が十分でなく、改修が怖い」といった課題がありました。
今回はマイグレーション管理されていないデータベース環境へのテストコードの導入とCI/CDの設定についてお話しします。
また、複数のシステムリプレイスの間に試行錯誤しつつ育てたテスト環境の歴史、CIによる継続的なパッケージアップデートとセキュリティチェックについてもご紹介したいと思います。
13
他イベントOK 25分枠

運用経験ばかりのメンバーと新規開発で初めてしっかりと設計から開発までを経験した話

大重智志 _ohshige
既存サービスの運用を行っていると、本腰をあげてリファクタリングをしない限り根本の設計はずっとそのままです。
運用がメインで、しっかりとした設計(例えばDDDやクリーンアーキテクチャなど)の実務経験がほとんどない中、新規サービスを開発することになりました。
せっかくならより良い設計のサービスにしようと思い立ち、未経験で奥深い「設計」の世界にチームメンバーも巻き込みながら挑戦してみました。

具体的には以下のような内容を予定しています。
- なぜ「設計」に挑戦しようと思ったのか
- どのような設計にしたのか
- 設計に挑戦して良かったこと、失敗だったこと

設計初心者が「設計って何だ?」と試行錯誤しながら進めてきた話なので、同じく設計を取り入れていきたいと考えている方に聞いていただきたいです。
大規模カンファレンスでは初めてのスピーカーとなります。
12
他イベントOK Lightning Talks

配列やコレクションを扱うのにとっても便利なcakephp/collection

きんじょうひでき o0h_
cakephp/collectionは、配列などの集合的な要素を操作する機能を提供する便利なユーティリティです。
CakePHP内部でもガンガン使われていますが、スタンドアロンなライブラリとして任意のソフトウェアに組み込むことができます。

「配列の構造を変更したい」「特定の条件で要素を抽出したい」
それって、array_filterやarray_mapでゴリゴリ書かなくても、cakephp/collectionならササっと書けるかもしれません!
実際にCakePHP3を現場で活用してきた知見から、ライブラリの提供する基本的な機能や実践例を紹介します
採択 他イベントOK 2019/12/01 13:35〜 Track 5 (1F AB会議室 - サテライト: 6F C/E会議室) 25分枠

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

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

2019年のCakePHP / 最新メジャーバージョンの「4」への軌跡

きんじょうひでき o0h_
「CakePHPって、昔に比べて元気がないのでは?」と思っている人は居るでしょうか。
そんな事はない、今でも活発に開発が進んでいるフレームワークです!
この時代に「なぜCakePHPなのか」という視点も交えて、今なお利用がみられるCakePHP2・現時点でのstableであるCakePHP3と比較して「CakePHP4はどうなるのか」という話をします。
5
採択 他イベントOK 2019/12/01 14:10〜 Track 6 (3F 特別会議室 - サテライト: 6F D会議室) 25分枠

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

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

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

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

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

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

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

※大規模なカンファレンスでの登壇は初となります
12
他イベントOK Lightning Talks

PHP未経験者を育てる独自フレームワークの作り方

カンボ@沖縄 kanbo0605
弊社ではPHP未経験者の採用もやっております。その中の研修カリキュラムで独自フレームワークを作ってもらっており、研修用のPHP独自フレームワークの作り方を一挙公開します!
具体的に自作する内容は下記です。
- routing
- CSRF対策
- Cotroller
- Model
- バリデーション
6
他イベントOK Lightning Talks

CIで1年間継続的にcomposer updateしてみた

enomotodev enomotodev
皆さんは定期的にcomposer updateしていますか?
使用しているパッケージの更新に追従し続けるのは大変そうにみえますが、きちんとテストを書いていれば定期的にcomposer updateするのもそれほど苦ではないと思います。composer updateをしていないとパッケージのセキュリティのバグに脅かされたり、いざパッケージのバージョンをあげることになっても差分が大きすぎて…ということになりがちです。

CircleCIで継続的にcomposer updateできるcircleci-composer-update-prというパッケージと、GitLab CI版のgitlabci-composer-update-mrというライブラリを作成したので、それを1年間プロジェクトで運用してみた結果をお話ししたいと思います。
8
他イベントOK Lightning Talks

SwooleのフレームワークHyperfの可能性を探る

株式会社サイバーエージェント 白井 英 goodoo
Swooleを用いたフレームワークは、Swoft、Easyswooleなどいくつかあります
その中で最近現れた、Hyperfというフレームワークを紹介します
Hyperfはスピードと柔軟性にフォーカスしたフレームワークです(Hyperspeed + Flexibility = Hyperf)
gRPCサーバの機能も提供されており、開発が活発で期待が持てます
そのスピード、および使い勝手の検証結果をお伝えします
1
採択 他イベントOK 2019/12/01 16:40〜 Track 1 (1F 大展示ホール) Lightning Talks

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

株式会社サイバーエージェント 白井 英 goodoo
近年、マイクロサービスの流行とともにプロトコルとして
gRPCが使われるのをよく目にします
PHPでgRPCを使おうと思ったとき、他の言語できるけれど
PHPでできないことはあるでしょうか?
Swooleを用いて、gRPCサーバを検証してみました
13
phpcon-2018-sponsors
2018 2017 スペシャル プラチナ ゴールド シルバー ブロンズ ランチ ネットワーク サンクス スポンサーセッション
初めてのスピーカー International CfPあり 来日意思あり ビデオ通話希望 採択あり LT採択あり スピーカーディナー参加 スピーカーディナー不参加 スポンサースピーカー Tシャツ情報募集中
初心者向け 初めてのスピーカー インフラ 20回記念 設計 Test/CI/CD Security データベース レガシーコード フレームワーク