PHPカンファレンス2016関西に突撃!

こんにちは!
新卒一年目のブログ技術セクションのなにわのエンジニアこと山岸央青です。

7/16(土)に行われたPHPカンファレンス2016関西に出席してきました。
300名を超える大盛況ぶりでした。

f0364156_09513825.jpg
以下に自分が聞いた公演をまとめたので読んでいただければなと!

1. [基調講演] Composerを速くするために必要だったもの 中野 拓 資料
f0364156_10103350.jpg
登壇者
Hiraku(メルカリ) - githubのスター獲得日本一
結論
composerが遅いから、速くするためにhiraku/prestissimoを作ってcomposerを速くした
要点
・composer遅い
・理由はpackageを取ってくる場所がヨーロッパ、githubとパケットを往復8回通信している
・日本にミラーを用意、往復を半分に減らす、並列化して一気に通信する
・約10倍ほどcomposerが速くなった
感想
笑いも含めたスライドがすごく面白く、要約だけでなくスライドをぜひ見てもらいたい一品!
内容はcomposerとはなんぞやからcomposerを速くするにはまで!
composerが速くなっていく過程を地球◯周分などと表現する部分が面白いので是非見てください。composerを速くすることを始めてから約3年ほどかかったらしいです。
最後には名言を残されています。
「優れたソフトウェアはスーパーエンジニアが作っていると勘違いしていた、
本当は問題があって困っている人がいて、その中で、問題に立ち向かう人・問題に立ち向かわない人がいるだけだ。その問題は直面している人しか解決できない」
かっこいいですねぇー!!こんなことが言えるエンジニアになりたい!
Hirakuさんはcomposerが遅いことにストレスを感じて半ばストレス駆動開発だったらしいです。
ストレスの原動力恐るべし。

2. 全てを結ぶ力 郡山 昭仁 資料

f0364156_09535846.jpg
登壇者
BEAR.Sundayの作者
結論
歴史的に見て現代でもhypertextを使っているphpはすごいんだぞ
要点
・600年hypertextが生まれ
・印刷革命で情報量が爆発的に増加
・世界の情報を整理するための様々な方法が考案される
・hypertext を活用していろんなものが生み出される
・1991年にwwwが生まれ世界に変革が訪れる
・現在でも使われているhypertextを用いたphpはすごい
感想
エキサイトでは郡山さん開発のWAF BEAR.Sundayを導入しており、
私も現在研修でBEAR.Sundayを用いて開発しているので、個人的にも講演を楽しみにしていました。
実際、講演内容とじゃべりがとても面白かったです。実際に公演を聞いてみてほしい!イチオシです!セッションのはじめのつかみの部分では、うまいつかみでしてやられました。人間がどういうふうに知識の共有をするのか時代から遡りながらの説明があるので歴史の教科書で授業を受けている感覚でした。技術の進化や発展により歴史上の人物が考えた情報共有のあり方が現在に生かされていることを感じました。
最後に名言で占めています。
「情報という宇宙でWebサイトという星を1つ作る。
それは25年前に考えられたアルファベット最初の文字のタグで繋がれている。
Webという力が世界の知識を結び、オープンソースやコミュニティが私たち開発者を結んでいる。またその私たちも技術を結び、Web創造の歴史に参加している。」

これまた、おかっこいいお言葉です。
動画も発見したので聞くべし!
※動画内容はphpカンファレンス2014資料となります。2016年のものではありません。

-- ランチTime --
f0364156_09554895.jpg

3. ORMユーザー対談 〜Laravel/Doctrine/CakePHP3〜
 大村創太郎・高橋慎一・原田康生 (モデレーター: 田中久輝) 資料
登壇者
Laravelリファレンス本の著者、PHPカンファレンス関西実行委員長、CakePHPにアツい男
結論
強力過ぎるSQLは、ORMで構造的制約で制御しよう
要点
三種類のORMを紹介
・ソースコードで書き方、SQLがどのように発行されるかの違いを紹介
・お題「2テーブル間の関係」
 ・Laravel : sqlを2つ発行
 ・Doctrine : 設定による
 ・CakePHP3 : sqlは1つ発行
・お題「N+1問題」
 ・Laravel : lazyはsqlを何回も投げることになりwithをつけると二つのsqlになる
 ・Doctrine : 基本はlazyで 一回とってきたものにかんしてはsqlの発行はない
 ・CakePHP3 : デフォルトでは lazy機能はない
・お題「オブジェクトの同一性( 例: $authhor->book[0]->authorこういう場合)」
 ・Laravel : 再び取りに行くがインスタンスは別 $authhor->book[0]->author
 ・Doctrine : entityマネージャーがキャッシュしている
 ・CakePHP3 : containで指定した値のみ $authhor->book[0]
・お題「100万件バッチ処理」
 ・Laravel : 死す がしかし chankメソッド or limit offsetで対処
 ・Doctrine : 死す がしかし dblで処理する or 生のSQLで対処
 ・CakePHP3 : メモリオーバにならないのがオプションで設定できる(mysqlbuffer クエリ)
・SQLをORMで制約しよう

感想
実際に使ったことがあまりないので、三種類のORMについて知識が深まりました。
以下の議論が面白いと思いました。
ORMがあればSQLをしらなくてもいいという意見に対してはSQLは知ってて損はない。
加えてsqlを知っていればORMはなくていいという意見に対しては、確かにそうだがsqlは強すぎる。
よってSQLをORMで制約しようという考えにいたるということは実感したわけだはないが理解できた。

4. EC-CUBE 3.0 一年の軌跡と、もうちょっと待っててAPI! 遠藤 良

f0364156_09555267.jpg
登壇者 EC-CUBE開発者
結論
EC-CUBE3.0はバージョンアップを繰り返しAPIも出るから触って使ってください
要点
EC-CUBEはECを簡単に作れるOSS
・3.0がリリースされてから機能が充実してきてる
・もう少しでAPIが出る
・デモ
 ・EC-CUBE3.0で作ったサイトの商品データをAPIを使って商品情報をグラフ化
 ・EC-CUBE3.0で作ったサイトのHubbotを通してslackで商品情報を聞くとslackにその情報が流れてくる
・EC-CUBEの開発に携わってください

感想
インターンでお世話になっていた時よりもEC-CUBEが進化していて、いろんな機能が増えていたことに驚いた。EC-CUBE3.0はSilexで作られているのでsymfonyに詳しい方がいたら開発に参加してみるのもありだと思います。時間ができたら開発に参加してインターンの時の恩返しができるようにPR送りたい。

5. Laravel と DIコンテナ、コンポーネントの設計 みかかね 資料
登壇者
後藤智宏 関西フロントエンドUG代表
結論
DIをうまく使って再利用性の高い便利なコードを書こう
要点
・DI Containerとは「差し替え可能なモジュール」
・DIの説明と種類の説明(コンストラクタ,setter,メソッド)
・DI と DIコンテナの役割「オブジェクトを引数で取ることで依存関係を省いてくれる」
・Laravelではapp関数がDIコンテナ→DIコンテナの使い方(書き方、登録、自動登録、連鎖的解決、依存の上書き)
・番外編 コンポーネント開発 プロジェクトごとにバージョニング or モジュールの管理
・git subtree : gitリポジトリを一部をリポジトリをきりだす
・composer path repository : venderの以外のファイルをとってくれる,特定のディレクトリを取ってくる,社内のライブラリを管理するときに使える
感想
DIに関しての知識が深まりました。LaravelのDIコンテナも簡単に使えそうです。
DIなどの概念でモジュールの差し替え可能にしたり、できるだけ依存性を省くことが重要だと感じました。これDIに関してはBEAR.Sundayでも出てくるのでしっかり抑えておきたい概念です。

6. PHPerに知ってほしいDB設計の話 曽根 壮大 資料
登壇者
曽根 壮大 日本PostgreSQLユーザ会中国支部 支部長
結論
深い知識をつけてindex,実行計画をしっかりしよう
要点
・検索とINDEXについて
 ・遅いクエリは、indexの使われ方、実行計画をによる。
 ・mysql workbenchの実行計画はみやすい。
 ・JOINはレコードがJOINするたび膨れ上がるので、小さく絞ってからJOINしたほうがよい。
 ・PostgreSQLは複数indexを使えたり、JOINのアルゴリズムも複数あったり、相関サブクエリも早かったりとmysqlよりも優れている点が多い。
・スキーマレスについて
 ・json型のカラムを定義できる。(postgreSQLは前から、mysqlは5.7以上)
 ・mysqlでは仮想列にJsonの検索結果を列にできるのでTEXT型にjsonを入れるのと違い、json中でindexをはることができる。(ユニーク制約や、外部キー制約はできない)
・しっかり正規化しよう
・仕様変更でDB構造を変更が大変だから、json型で対応しよう。
・だがしかしORMを使用する際にはおすすめしない。

感想
すげーゼイゼイ言いながらすごい勢いで150枚のスライドを30分で読み上げていた。
以下のことが勉強になった
・クエリ実行を速くするにはindexと実行計画を理解するべし
・非正規化ではキャッシュが効かなくなるので正規化して他の方法で早くする
・外部キー制約データを守るためにある
・カラムを追加するのではなくjson型のデータをDBに入れておくこともできる

名言を残されていました。
「DBの問題は忘れた頃にやってくる。
サーバーの問題は休日にやってくる。
アプリケーションの問題は納期前にやってくる。」

7. LT
・PHPerにもCoderDojoのメンターとしてお手伝いしてほしい その後 角田 一平 資料
 感想 : プログラミングを習いたい子供たちが増えてきていておどろきました。ボランティアでプログラミングを教えれる人を探しているそうです。
・PHP7で脱!モッキングフレームワーク 松尾 大
 感想 : モッキングフレームワークは学習コストが高いので、PHP7.0で使用できる無名クラスでモックを作ろう。だが複雑なことはできないそうです。
・SwiftMailer アップデート 鈴木 則夫 資料
・PHPで作成されているOSSのソフトウェアとライセンスについて 山村 清史
 感想 : ソフトウェアのライセンスに関しては、全然知識がなかったのですごくためになりました。アナウンサーになれるくらいの早口でスライドを読み上げていました。個人的にインターン時代からお世話になっていて、仕事がたえないスーパーエンジニアです。ランチTimeのしゃぶしゃぶの写真は山村さんに奢っていただきました!ごちそうさまでした!
・github.ioでブログを公開しよう 荒谷 優也 資料
・ロングポーリング(Comet)の話 丸居 和也

8. おまけ

9.全体的な感想
全体的にためになる話が多く、また参加したい!
あんなところでスピーチできるくらいのエンジニアになります!
今度はエキサイトTシャツ作って参戦しよう!
たかぴぃーさん!実行委員長、お疲れ様でした!
f0364156_09533290.jpg

10.エキサイトについて
エキサイトでは新卒/中途問わず採用を行っています!
興味のある方は僕もしくは、採用ページまで!
f0364156_20350084.png


[PR]
by ex-engineer | 2016-07-27 18:38