今年もPHPCONに参加してきました。
講演の内容に関しては色々なトコロで情報があるかと思うので、超ざっくりまとめ&個人的な感想をば。

基調講演

廣川 類さま

恒例の基調講演。
新バージョンの機能紹介とか、言語やフレームワークの最近の動向とかはいつも参考にさせていただいています。

PHP7.2は
– 10%程度の高速化
– パスワードハッシュ等、セキュリティに使える機能が強力に
といったところが大きな特徴。
導入する価値はアリアリでしょう。
そして、認証付き暗号のメソッド名長すぎw(sodium_crypto_aead_chacha20poly1305_keygen()とか)

ちなみに、基調講演は電車乗り継ぎミスで遅刻しました。
Googleマップさん、階段使う乗り換えを0分はムリっす・・・!
(そもそもギリギリに家出るなって話ですな)

Apache Kafkaによるスケーラブルアプリケーション

yuuji takezawaさま

サービス初期であればシンプルな実装で収まるけど、追加機能や複雑な要件などガリガリ実装していくと超複雑になって依存性が大きくなりすぎる。
で、どっかでボトルネックが発生したり、メンテがきっつくなる。

その対策として、CQRS(DB読み込みと書き込みの責務分離)やApache Kafkaを使おうと。
メッセージベースで、言語問わず色々なアプリを組み合わせることが可能になるそうです。
以降はKafkaの概要説明が主でした。

管理人が感じたメリットは、開発が進めやすそうということ。
あっちができあがらないとこっちができない じゃなくて、メッセージつまりはイベントベースで回るので分業が極めてやりやすくなる。

このお話は特に管理人の知らないサービスがたくさん登場しました。
サービスを組み合わせてソリューションとして提供するのは大事だなーと実感。
ガリガリ書くのは大好きだけど、スピード感を出すためには既存のツールやサービスも活用した方が断然有利なんですよね。
もっと知識を増やすべきってことですな。

そういえば、UnityでもUniRx使えばイベント(メッセージ)ドリブン型の設計ができそう。
DIよりも各コンポーネントの依存性減らせるし、やってみようかな。
(てかゲームって物凄くイベントドリブン型向いてそう)

グラブル流運用術

石田 健太さま

グラブルのパフォーマンスUPのために、どうAPIを改修したかという実践的なお話。

データアクセスや演算を減らすためにキャッシュを活用すればパフォーマンスが向上した、という内容が主でした。
ただ、重要だなーと思ったのはその前段階のお話。

上記の対応に至る前に、まずは「どのAPIが重いか・よく叩かれているか」の分析をしっかり行い、一番効果があるポイントを洗い出す。
そして、改修にあたっても「どういう処理がどの程度実行されているか」を詳細に分析することで、おのずと対策案が導き出される。
このへんが非常に重要で学ぶべき点だと思いました。
分析ツールは「New Relic」を使ったようです。
https://newrelic.com/

あと、冒頭で「会社としてのビジョン→最高のコンテンツをつくる、個人として目指すこと→最速のシステムをつくる」といったお話をされていました。

このへんがしっかり見えていると自身のやるべきこと・向かうべき方向がブレないので、ホント重要。
宗教観の薄い=信ずるものが見出しづらい日本において、心の拠り所となり得る自身の信条や会社の指針。
コレがある方が確実に生きやすくなるんじゃないかなー、とマジメに思うわけです。
(完全に管理人の主観ですが、このへんの根幹となるモノがしっかりしていれば、うつ病とかも減ると思うんですよねー)

PHPでもserverless framework!?

渡辺 一宏さま

メインはAzure Functionsのお話。
ちょうどAzureに興味を持ち始めたトコロなので、ツボでした。

Azure FunctionsはAWS Lambda同じスクリプトが実行できるサービスですが、Lambdaよリも対応言語が多く(JS/C#/Java/PHPなどなど)、しかも安い。
Visual StudioとかVSCodeでローカルでバッグも可能なのもとっても嬉しい。
(管理人はLambda使ってましたが、AWS管理画面上でのデバッグは正直しんどかったです)

んで、serverless frameworkは一般的なFrameworkとはちょっと違って、AWSとかAzureにコードをデプロイするためのツール。
node.jsにしか対応していなかったようですが、ちょっといじるとPHPをAzure Functionにデプロイすることもできたようです。(スバラシイ!)

Azure Functions、使ってみる価値アリアリですな!

↓から、アカウント無くても試せることも教えていただきました。
https://functions.azure.com/try

Kuduを使用したKPI分析システム

野口 裕也さま

DMM.comラボで使ってるゲームのKPI分析システムのお話。

KPIの分析ツールを作って最初は満足してもらっていたが、要望が色々出てきてそのままでの対策は不可能と判明。
Apache KuduとApache Impalaの組み合わせて導入することで
– 高速化
– SQLで誰でも自由に分析
– リアルタイム分析
が実現できて、皆が思い思いに分析できるようになることでエンジニアも非エンジニアも幸せになったとのこと。
ここでもサービスの組み合わせが大事ってことがとてもよくわかりました。

てか、7.5億件のデータのちょっとした集計であれば0.22秒で終わったそうで、Kudu+Impalaとにかく早すぎ!

あと、CDHっていうパッケージ管理ツールでKuduもImpalaもインストールできちゃうらしいので、ぜひ使ってみたいですねー。
http://jp.cloudera.com/developers/inside-cdh.html

PHPで理解するニューラルネットワークを使った機械学習

新倉 涼太さま

PHPerで機械学習やる人少ないけど、怖くないぜみんなやろうぜーってお話。

登壇者の方はニューラルネットワークを生PHPで実装されていて、GitHubで公開されていました。
https://packagist.org/packages/niisan-tokyo/phpnn

使い方は、「情報」と「答え」を準備してガンガン渡します。
たとえば「情報」はXY座標の値(点)とします。
その「点」が特定の「領域」に含まれれば1、含まれてなければ-1、という答えを準備し、情報と答えをセットで大量投入してあげます。
そうすることで機会学習が進み、XY座標から1か-1かを予測できるようになる、というワケで。

上記ニューラルネットワークでドーナツ型の領域に点が含まれているかどうかを学習させた結果、数式自体は教えていないのに的中率95%という恐ろしさ。
実に不思議です。

あと、株価やFXの予想も出来るようですが、渡すべきデータの選定が重要。
例えば経済指標や社員数・業績など、予測結果として得たい数値に対して影響が大きい値をピックアップすべきってことだそうです。
ウーム、納得。

MDD(筋肉駆動開発)

MiracleTshirt09さま

予定の都合で拝聴したライトニングトークはコレだけ。
(タイトル的にどうしても見たかった)

要約すると、収入の日米格差は日本のエンジニアが弱いからなワケで、筋肉つけて物理で殴れというお話。
てのは要約し過ぎで、ちゃんと寝て体鍛えればテンションあがるし自信もつくよーって内容。

登壇者の方の「ベンチプレス100kgあげられる人いますかー」って問いかけに、真後ろに居たムキムキのお兄さんが手挙げてたのもステキでした。

チャリ通勤片道25kmの身としては、ムキムキに憧れちゃうワケで。

余談

高モチベーションの状態で参加したPHPCON2017。
感度の違いのせいか、去年までよりも学ぶことがたくさんあった気がします。

登壇者の方々、主催者の方々、運用の方々、参加されて盛り上げた皆様方に心から感謝!

知らない単語も大量にメモったので、ソレ調べた結果も記事にまとめちゃおうかなー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*