PHP BLT #8 参加レポート 【カテゴリ別まとめ】

前書き

こんにちは。サーバサイドエンジニアの畑です。
今回もPHP BLT #8に参加してきました!
開催から日数が経ってしまいましたが、各発表者様のスライドまとめを公開させて頂きます(メルカリ様、今回も素敵な会場をご提供くださりありがとうございます!)。
何かご意見やご指摘などありましたら、お手数ですがコメント欄よりご連絡頂けますと幸いですm(_ _ )m

対象読者

  • PHP界隈の最新技術に興味がある方
  • PHP BLT #8に参加できなかった方

この記事の目的

  • PHP BLT #8の発表をカテゴリ別にまとめ、後から参照しやすくすること。
  • 発表のサマリ・関連技術のリンクを提示し、発表内容に興味を持った読者の、次の行動への足掛かりを作ること。

目次


PHPの動向や、直接PHPに関連するツールに関する発表


PSR-12について

@koyhoge

  • PSR-12に関する発表でした。
  • PSR-12は、PHPのコーディング標準についてまとめたPSR-2の更新版で、まだドラフト段階であるようです。
  • PSR-2以降に出た構文についても規約を定めているそうです。普段から最新verのPHPで開発されている方は、今の時点でも要ウォッチかもしれません。
  • 参考

モックライブラリの導入について考えた話

@purple_jwl

  • レガシープロジェクトに対し、これからモックライブラリを導入していく、という発表でした。
  • スライド中では、以下のモックライブラリがメリデメリ付きで紹介されています。
    • PHPUnit_MockObject
    • Mockery
    • Prophecy

phpDocのおさらい

@dormir_Tkazu

  • phpDocの概要と、そのメリットに関する発表でした。
  • 「phpDocは簡単に始められる」「phpDocはコードとの距離が近い」というメリットの説明が、とても共感できました。

PHP-MLを使ってみた話

@bucchi49

  • PHPにおける機械学習ライブラリ、PHP-MLのご紹介でした。
  • 基本的な機能の他、ハマりどころ(save機能が見つからない、composerでインストールできない)についての対策もご紹介されているので、このライブラリを使ってみたいという方は一読されると良いかと思います。

一般的なツールに関する発表


VIM FOR PHP

@NanohaAsOnKai

VIM FOR PHP

  • Vimにおける便利機能に関する発表です。
  • スライド中では、Vimの以下のような機能について紹介されています。
    • 画面分割
    • ステータスバー
    • ファイラ
    • grep
    • タグジャンプ
    • スニペット
  • スライドの作りがとても丁寧で、アニメーションで各機能の動作例が説明されています。是非ご覧になってください!

CircleCI2.0でCakePHP3アプリのビルド

@tenkoma

  • CakePHP3+MySQLで運用しているプロジェクトにおいて、CircleCIのバージョンを2.0に移行されたお話でした。
  • CircleCI2.0で、以下のような改善があったようです。
    1. Docker連携の強化(Docker Imageを指定できるようになった)。
    2. ビルド手順を詳細に指定できるようになった。
    3. ワークフロー機能(ジョブの並列実行や、ジョブ間の依存関係の定義ができるように)。

実装やパフォーマンスに関する発表


画像をRDBにキャッキャウフフするメリット・デメリット

@mamy1326

  • DBテーブル上に、画像ファイルは格納すべきか否かについてまとめた発表でした。
  • メリット・デメリットを説明しつつも、「画像はDBテーブルに格納しないほうが良い」とはっきり結論を出しているのがとても印象的でした。
  • スライド上に掲載されているteratail上のエントリは、以下をご参照ください。

Design Patterns in PHP

@CzernyF
https://speakerdeck.com/czerny/desgin-patterns-in-php

  • PHPにおける、FacadeパターンとMediatorパターンのご紹介でした。
  • スライド中にも掲載されている、PHPでのデザインパターンの実装例をまとめたリポジトリのリンクを、以下に掲載しておきます。

極める!メソッドチェーン

@Hiraku

  • メソッドチェーンの実装方法に関する発表でした。
  • 以下のように、メソッドチェーンに関する様々な実装パターンを説明されています。
    1. “return $this” で現在のインスタンスを返す方法。
    2. immutable なオブジェクトにおけるメソッドチェーン(メソッドの返り値として、”return new”で新しいインスタンスを返す)。
    3. fluent-interface(一般的なフレームワークのORMなどでよく見られる、メソッドの呼び出し順が決まっているメソッドチェーンのこと)。
  • とても良くまとまっているスライドなので、メソッドチェーンの実装に迷った方は、是非一読をオススメします!

Cacheが速いのか確認する話

@hanhan1978

  • Laravel環境において、DB取得結果に対するキャッシュのパフォーマンスを計測するお話でした。
  • redies-extentionでキャッシュするよりも、MySQLで直接データを取得するほうがパフォーマンスが出ているのがとても印象的でした。

もしもベンダーのAPIを切り替えなくてはならなくなったら

@koemu

  • 「外部ベンダのAPIを簡単に切り替えられるようにするために、どのような実装をするべきか?」というテーマの発表でした。
  • @koemuさんの解説によると、以下のような工夫をする必要があるそうです。
    • APIには直接アクセスせず、抽象化されたドメインクラスを使ってアクセスする。
    • APIアクセス処理はクライアントクラスに切り出しつつ、クライアントクラスに対するインタフェースか抽象クラスを定義してモック化しやすいようにしておく。
    • ドメインクラスはクライアントクラスに直接アクセスせず、抽象を介してクライアントクラスの処理を呼び出す。
  • 外部APIの利用に限らず、再利用性の高いプログラムを書くために広く役立つ実装が紹介されており、とてもためになる発表だなと思いました。

開発手法やエンジニアとしての心がけに関する発表


API仕様書ってどう運用すればいいの

@rela1470

  • 弊社渡辺の発表です。
  • 新規開発プロジェクトにおいて、API仕様書の運用方法の変遷についてまとめた発表です。
  • API仕様書の運用方法は現在進行形で検討中です。もし良い事例がありましたら、是非教えてください!

PHP beginerがbeginner+になるための話

@kyuichi2220s

  • PHP初心者がFWを使って開発をする際、直面する課題についてまとめた発表でした。
  • 発表内では、DDDを踏まえた説明などもされており、「beginnerが beginner+になるための話」というテーマながら、とてもレベルが高い内容も含まれている印象でした!

いいレビュイーになる工夫

@sota1235

いいレビュイーになる工夫

  • 良いレビューを実現するために、レビュイー(レビューを受ける側のエンジニア)ができることについてまとめた発表です。
  • 「必要なコミット差分だけのリンクを貼り付ける」「conflict解消した際はそのdiffを貼る」など、実践的な手法をまとめてくれており、多くの方にご覧いただきたいスライドです!

まとめ

  • 今回のPHP BLT #8では、実装方法や心がけに関する発表が多かったような印象を個人的に受けました。
  • また、いくつかの発表者様のスライドや発表後の懇親会にて、DDD(ドメイン駆動設計)に関するキーワードが出てきていたのが、個人的に印象的でした(最近勉強会に出るとDDDに関する話をよく聞くので、是非時間を取って勉強してみたいなと思っています)。
  • 次回のPHP-BLT9も楽しみにしております!

作者 畑 俊樹

株式会社ORATTAのサーバサイドエンジニア。 PHPでコードを書いてます( ^ω^ )

コメントを残す