YYPHP#65｢明日のPHPカンファレンス｣｢Laravelの教材｣｢LaravelとiOSの連携｣｢新しいフレームワークに作り直す｣｢モダンでOOPな職場｣｢interfaceの活用｣｢なぜReact一択？｣｢Reactお勧めの本｣

これは2018年12月14日に開催したPHPerイベント[YYPHP#65]のイベントレポートです。

[YYPHP]は一言で「PHPerの部室」です。PHPについて、雑に、ゆるく、ワイワイ話し合う集いです。毎回お題を決めずに雑談を出発点にいろいろなことを突発的にやります。集まった人でコードリーディングをすることもあれば、一緒に開発ツールを触ってみたり、フレームワークについての情報交換をすることもあります。開催はほぼ**毎週**、高田馬場にて。

[YYPHP#65]: https://yyphp.connpass.com/event/110978/
[YYPHP]: https://yyphp.connpass.com/
YouTubeでの配信映像はこちら-> [#YYPHP #65【PHPの情報交換・ワイワイ話そう・仲間作り・ゆるめ・にぎやかめ】](https://youtu.be/grA75zkVsqU)

![](https://qiita-image-store.s3.amazonaws.com/0/5354/6d9ce33d-f7df-be3e-66c2-9fd4078524f5.jpeg)

## 明日のPHPカンファレンスどこを回ったら面白いか？

* 懇親会
    * 懇親会は予約が必要
    * 当日券がある場合も
* 徳丸さんのセキュリティの話 (14:10〜15:10) Track1
* Trackが7つもあるので、同時に聞けないセッションもあるかもしれないので、事前に予定を組んでおいたほうが良い
* 懇親会のLT
    * ライトニングトーク
    * 夜のLTのほうがはっちゃけてて面白い
* TDDとかDDDというのが多いけど何？
    * DDD
        * ドメイン駆動設計
        * Domain-Driven Design 
    * TDD
        * テスト駆動開発
        * Test-Driven Development
    * ○DD
        * ○○駆動開発とか、○○駆動設計の略 
        * 何かを軸にして行われる開発プロセスのこと

## Laravelを学ぶための教材は何が良いか？

* [『絶対に挫折させないアプリ開発　はじめてのLaravel』](https://plumsa.booth.pm/items/1048008)
* [Laravelは何で学んだらいいか？ - Qiita](https://qiita.com/suin/items/71da2bfe25ee1a5f5161)
* [『PHP中級者を目指す 〜言語を使いこなすための本〜』](https://amzn.to/2zhoddu)


## LaravelとiOSの連携

* プッシュ通知まわりがよくわからない
* 素でプッシュ通知
    * iOS APNs
* プッシュ通知サービスのプロバイダー
    * Firebase Cloud Messaging (FCM)
        * [PHP+Laravel+FCMでWebプッシュ通知を送る - Crieit](https://crieit.net/posts/PHP-Laravel-FCM-Web)
        * [FCM での APNs の構成  |  Firebase](https://firebase.google.com/docs/cloud-messaging/ios/certs?hl=ja)
    * AWS Simple Notification Service
* Laravel
    * [Edujugon/PushNotification: PHP and Laravel 5 Package to send push notifications to Android and IOS devices.](https://github.com/Edujugon/PushNotification)
        * APN, GCM, FCMに対応してる
* 環境でつまずくより、Webアプリとして作って、アプリがうまくいくのを確認してからiOSアプリ作ったらいいのでは？
* プッシュ通知エンジニア
    * 今日のパワーワード

## 既存プログラムを新しいフレームワークに作り直すにあたってどうしたらいいか？

* 作り直すって？
    * 機能はそのままで、いいソースにしたい
* いつまでに？
    * 3月までに
    * 断る案もある
    * 現実的に完成できる時期を伝えて、それでもやるか聞く？
* せっかく作り直すなら、慌てて微妙なコードになるのは避けたいところ

### HTMLとPHPの開発の分業

* いまのソースはコードの中にHTMLがまざりまくっている
* マークアップエンジニアとプログラマーの分業
* 今は、PHPコードにHTMLがコーディングされている
* HTMLを先に作って、PHPのロジックを加えるパターンと
* PHPのロジックを作っておいて、HTMLを仕上げるパターンがある
* 一発ではうまくいかない
    * いったりきたりする
* 理想はGitでソースを共有できること
* 前職では先にPHPでベース作ってそのあとHTMLとCSSを入れていく順でやってました〜。でもすでにHTMLとCSSで組んだものがあるならそれにPHP入れていく方がいいですね

## モダンで、オブジェクト指向をちゃんとやっているところでスキルアップしたい

* 現場では、動けばいいやというコードが多くて、モダンでオブジェクト指向、Dockerを使った環境に移りたい
* ぺちオブの動画を見てる
* 会社に入ったからといってスキルアップできるわけではないし、自分のスキル・キャリアを会社に任せるべきではない
* せっかくSESにいるんだったら、そういう案件を持ってる営業さんに相談して、その案件を紹介してもらう

## interfaceの活用について聞きたい

> Laravelでfunctionだけ追加しているかんじ。
> interfaceは、全く触る機会がない。

* 抽象的な話。interfaceだけに。
* Laravelの抽象化部分を理解する
* 抽象に対してプログラミングする
    * 実装に対してプログラミングしない
* ツール駆動（TDD）にならないように

## なぜreoringとsuinはReact一択だと思うのか？

* スインさんと森さんはReactを3年前にやっていた。
* 1年くらいReactをやっていた。
* 何がベストプラクティスなのかわからず暗中模索した。
* その後、VueかRiotにしたくなった。
    * Vueは部品いっぱいあって簡単そう
    * Reactは自分で作らないといけない
    * Fluxがいっぱい出回っていた
    * VueはVueとVuexで決まっている
    * 当時、Riotはパフォーマンスに問題があった
    * スタイルドコンポーネントはCSSが書ける
* コンテキストAPIがReactにあった
    * βからあった
    * 状態を伝えるのにバケツリレーをいっぱい書く必要があった
    * ドキュメントに書いてない方法で簡単なやり方があった
* Reactが良いと思う部分
    * TypeScriptとの親和性が高い
    * Vueは3言語一緒に入ってる（JavaScript、HTML、CSS）
    * ReactはコンパイルするだけでちゃんとHTMLが書かれていることがわかる
* 自分たちがいま作ろうと思ってるもので使うなら、Reactがベストだと思った。
* Reactの方がOOPっぽい
* VueはPHPっぽい（混ぜて書ける）
* Reactはエコシステムができている（ユーザが多い）
* アジア圏だとVueが多い
* 欧米系だとReactが多い

### Reactを1から勉強する人にお勧めの本

* 前はオススメの本はなかった
* FacebookのDoc読んでた
* [Fullstack React… by Anthony Accomazzo, Ari Lerner, David Guttman, Nate Murray, Clay Allsopp et al. [PDF/iPad/Kindle]](https://leanpub.com/fullstackreact)がおすすめ


[The State of JavaScript 2018](https://stateofjs.com/)