PHP BLT とは

概要は下記イベントページより
https://phpblt.connpass.com/event/55972/

私の感じたイベントの雰囲気などなど

PHP BLTと銘打っているもののPHPのお話でなくても全然ok!

ほんとは↓くらいタグつけたかったのですが5個までと怒られましたw

php css golang composer mBaaS laravel heroku backStopJS GOF GCP GitLab PHP7 Scrutinizer codacy Codecov

雰囲気としては、とても柔らかめ。マサカリが飛んで来ることもありません(多分)

私はこういうイベントで登壇したことありませんが、
次は登壇してみようかなと思うような場でした

そんな雰囲気を作ってくださった運営(メルカリさん)の皆様に感謝です。

あと、飲食物の提供もあったので腹ペコで向かった私はとても助かりましたw

LTについての雑感

19:10分過ぎについてしまったので私が聞いた範囲のものから順にメモを記そうと思います。

タイトルをメモるのが間に合わなかったりしたのでざっくりな
タイトルとなってしまうことお許しください。

あと、ここ違うんだけどってことあれば編集リクエストなり、
コメントなりいただければと思います。

すぐに修正させていただきます。

Saasのお話

自分たちでツールは作らずに便利なSaaS使ってくのはどうかというお話
紹介いただいた下記2点は、実際にトライアルから使ってみたいなと思いました。

codacy
複数の静的解析ツールを可視化。Scala界隈では有名らしい
issuesのスコアが時間制。勝手に計算してくれる
どこからリファクタすればよいかも教えてくれる
例えば最短ルートなど

codeCov
1コミット毎に評価してくれる
カバレッジ下がったらマージさせないなどできる。おもしろい

スライド

NCMBのお話

NCMB → mBaaS

KVSなデータストア等の機能がある

モバイル系のSDKは入っている

PHPも対応!!(登壇者の方が作成!)

Parseを参考に作ったとのこと(mBaaSのサービス)
2017/01/28にサービスは終了したみたいです。

Laravel Collectionの話

結構laravel使ったことある人いましたね、4系なのでしょうか、5系なのでしょうか

Collectionが実装しているpublicメソッドの数を調べるために
リフレクションクラス使って云々はなるほどなーと思いました。

interfaceのメソッドの抽出とかやってみたいと思ってるので
↑のやり方真似すればうまくいくかな。。

laravelのCollectionは大体やりたいことできると思うので
公式とりあえずみておきましょう、損はしないはずです

登壇者の方の記事
ほんとにCollectionメソッド全部書いて、テストしてます、気合が違いますね。。

Coveralls migration

カバレッジ計測、静的コード解析のサービス
php-coveralls

TravisCI-php7.1対応を頑張ってくださっている
早くマージしてほしいのに、prophecyを使おうとか注文が多く苦労したみたいです

(prophecyについては、 この記事 がわかりやすかったです)

プルリクを見てもらっているから丁寧な対応を心がける、誠意が大事ですね。。
OSSへの貢献してみようかなと感化されました。

phperのためのgolangのお話

phpstormでgolangはゴリゴリ書ける!
Ctrl+ ~ プロジェクト切り替えが簡単!

関数の型宣言必須!php7の人には嬉しい。
golangでレシーバは使ったことなかったから理解しておきたいなぁ。
書き方はしっくりこないですねー。
その点、Rustはtraitっていうのが好きです

Herokuでphpとnodejs

困ったときは公式を熟読しよう。検索結果が新しいとは限らないので。
herokuって便利なんだろうけどデプロイすんなりいかないと
嵌りそうで怖い。
ただそれも一回きりなんだろうけど汗

backStopJSとCSS

変更の前後でスクショを取って差分をチェックできる
laravelで動作サンプルも作ってくださってる
スライド

Event Dispatcher

コードリーディングより生まれた疑問を噛み砕いて
解説してくださった。

該当していたのはsymfony-eventdispatcher

observerパターンについて
スライド

GCPで無料枠のサーバを立てるときにハマりそうなこと

支払いログを設定しよう
バケット名の付け方には注意
us-*リージョンが無料。インスタンスはmicroを使う。
固定IPも無料。

freenom.com, 無料ドメインとれるみたいです、知らなかったです。

composerパッケージについて

ライセンスについて、
ライセンスは必ず書くべき。
合法的に編集できなくなる

GPLライセンス, Apache2.0, MIT

conposer.jsonで痛い目にあったのだろうか、
require部分のファイル編集は絶対ダメと熱が入っておりました。
すごいわかりますねw

同じことで
composer updateは不用意にうったらいけません

phpの使ったことない機能について

V8js入れたかったけど、断念。
$ pecl ~のワンライナーでは入らないみたいですね

Vのお話

webアプリケーションにおけるViewのお話

インラインで書かれたjsなど↓
Viewがなぜ乱れるか
扱う職種が様々
書き方も様々

jsでオブジェクティブに書ける人は少ないから難しそう、、
負債を作らないようなチームづくり、レビュー文化

スライド

余談
docker for Macにedgeバージョンあるなんて知らなかったです。
教えていただきありがとうございました!
これ使えばローカルのdocker環境が1.5倍くらい早くなるはず。。!
今のところはdocker-sync使ってますが
開発早くて不安定になりそうなのが怖いので。。

GitLab CI / Review Apps

ymlでブランチごとのレビュー環境が作れるようです
DB連携は未対応とのこと

gitlabは機能追加が早いので時間の問題なのかなと思います。

Debug Interactively

php -a
使ったことなかったです。。

↓さらにリッチなもの
psysh

configファイルにautoloadファイルとか読ませれば
自分のリポジトリだけの環境ができるようです

いつまでphp5.X使ってるの

php5.5以下はサポート切れてるからどうにかしようね、どうにか
php7.0.*も今年でアクティブサポートが切れる。
↑これは知らなかったので、今動いているphp5.6アプリケーションは7.1にしないとですね
php7cc, php7mar マイグレーション支援系のツール

スライド

まとめ

静的解析ツールやテストのお話が多かったような印象です。
コードが読みやすいに越したことはないのでこの辺の技術共有は
自分からも発信していきたいですね。
そして、エンジニアを支えるこういったツールを作ってくれる会社に還元できればと。。

別の静的解析ツールでscrutinizerを耳にしました。
結局のところ何がいいのでしょうか、オススメあったら教えていただきたいです。。

私のチームではCIにJenkinsを使っていて、XDebugのカバレッジは見れるのですが
よくわからない(見づらい)のでCodacy等リッチなGUIを使いながら
気持ちよく技術的負債が減らせる環境を作りたいですね。