PHPカンファレンス2014に行ってきました

f:id:watass:20141013165848j:plain

PHPカンファレンス2014〜知りたい、があなたを変えていく。〜 http://phpcon.php.gr.jp/w/2014/

 

そんなわけで行ってきました。

PHPは最近になってMVCフレームワークという概念に感動してばっかりだったり、いろいろと技術に追いついていけてない状況ではありましたが、せっかく入場無料で最前線のPHPerさんたちの話が聞けるということで、前日の飲み会でほぼ瀕死の状況ながら東京都大田区までひとっ飛びしてきました。

なお、その過程で交通費削減のため、同期のラブライブほのかの痛車(通称ほの号)に朝5時から乗りあわせて、周囲の奇妙な目にさらされながら、横浜付近まで移動していたわけですが、いや、意外と乗ってると痛車に乗ってるってこと忘れますね、ええ。

 

さて、本題。

せっかくいろんな話を聞いてきたので、忘れないうちに自分の聞いた話については感想というか、レビュー的なものを書かせてもらおうと思います。

 

 

PHPの今とこれから

 

 
まず最初は日本PHPユーザ会廣川類さんの基調講演。
PHP関連の書籍執筆にも関わっており、PHPの今後と現状分析のセッションとなりました。
お恥ずかしいことに、PHPのバージョンとかに非常に疎かったのですが、PHPPerl同様、6.0に関しては残念な感じになり、次は7.0になること、非同期プログラミングなどをサポートするかもしれないことなど、PHPの現状にあまり詳しくなかった自分としては、非常にためになる公演でした。
また、Facebookの開発したHHVMやHackといったPHPの拡張的なものが最近話題で、速度も従来のPHPより高速、かつPHPとほぼ変わらない要領で書ける、という話でものすごく興味をもったのですが、詳しくはFacebookのエンジニアさんの公演にて、とのことでした。
 

Ansibleではじめるサーバ作業自動化

 

最近ちょっと社内でも聞いた「Infrastructure as a Code」というバズワードに引っかかり、初心者セッションにも出ずに聞きに行きました。スピーカーは1×1株式会社の新原雅司さん。

Infrastructure as a Codeというのは、IaaSのもじりで、インフラもコード化して面倒くさい設定とか全部自動化しちゃおうぜという思想。のはず。

開発環境でVagrantを使って仮想環境作ったり破棄したりして、テストに応じて環境構築する手間がすごい楽になる、みたいな話は以前から聞いていて、使ってみたいなーと思っていただけに、Ansibleというものはよく知らないけど、なんかその辺の手がかりがつかめたらいいなーという気持ちで聞きに行きました。

Ansibleというのは構成管理ツールと呼ばれ、複数サーバに対して、コマンドの実行などを行うことができるツールで、他の構成管理ツール、ChefやPuppetと異なり、簡素で使いやすいのが特徴、という話から始まり、具体的にどのように使うか?という実例の話にまで及びました。

聞いている限り、確かに30分程度のセッション内で、使用イメージから用途までわかりやすく把握できました。これはスピーカーさんの実力もあると思いますが、Ansibleがシンプルでいいツールであることを明確にあらわしているのかもしれませんね。

例えば、定期的なパスワード変更など、いちいちすべてのサーバにssh接続してpasswdコマンド打って〜なんてやっていると時間もかかりますし、それを一発でできるのは魅力的です。

インフラエンジニアじゃなく、アプリケーションエンジニアなんだから、そっちに時間は掛けたくない、という思想はエンジニアとしての考え方として非常に参考になりました。

 

フリマアプリ「メルカリ」の超高速開発を支えるPHP

 

現在CMでも話題のフリマアプリ、メルカリのエンジニア、鶴岡達也さんのセッション。まさに今成長中の大規模なWebサービスを支えるエンジニアがどのようにPHPを活用しているのか?大変興味のあるセッションだったので一択でした。

聞いた感想としてはすげぇ参考になったという感じですね。個人的には一番実りあるセッションだったかもしれません。

サーバ1台から始まったサービスが、一年で60台にまでスケールアウトするための技術的なバックグラウンド、そしてその背景にある高速開発の思想。その断片を無料で聞けるということに感動せざるを得ません。

大資本を抱える競合に対抗するためには、開発のスピードが重要、そのためには現実の問題と向き合い、モダンを目的化しない、現実のメリットを最大限に考慮する、というアクションへのつなげ方は大変参考になりました。

エンジニアは自身の成長のために、意図的にモダンを追いかけて、将来的なプラスを得るためにあえて慣れないツールにチャレンジする必要があると思っていましたが、現場レベルでは必ずしもそれが真ではないということ、Chefのような高機能ツールを使って、半年後、一年後のメリットを考えるより、Ansibleを使って今現在のメリットを最大化すること。この辺りは目からウロコでしたね。

テストへの考え方も非常に参考になりました。仕事としてプログラミングを始めて以来、「影響範囲」とか「修正規模」とかを気にするあまり、きれいなコードがかけなくてこれでいいのかと悩んでいたところがありましたが、End to Endなテストを実施すれば、コードを思い切って修正できる。でも、テストは省略しすぎちゃダメ。という考え方は今後のフルスクラッチでの開発に役立ちそうです。

まぁブラックボックスで考えすぎると、後ですげぇ困るバグが「なんで!?」っていうレベルで出てくることも多々あるわけですが、その辺りはまた別途考える必要がありそうですね。テストの仕方について、必ずにも正解はないので。。

 

 安全なPHPアプリケーションの作り方

 

 
PHPカンファレンス目玉のひとつ。セキュリティ関係では名高い徳丸さんのセッションです。
目玉公演ということもあり、とにかく人が多い
セキュアなアプリ開発ってすごい大事なのに、機能として目に見えるものじゃないので、なかなか学ぶ機会が得られないんですよね。生でセキュリティの詳しい話を聞けるなんてのは非常にいい機会なので、これは逃せない、と話を聞きに行きました。
まずPHP脆弱性との向き合い方について、第一の提案がPHPを避けるという手段www
とはいえ、それもいろいろと根拠のある話で、脆弱性が多いならば避けるのも一手だけど、現在のPHPはその辺の脆弱性発見のペースが落ち着いてきているから、その辺は昔の話ですね、とギリギリPHP否定論を収めることができました。
ここからは具体的に、CSRFXSSSQLインジェクションなど耳に馴染みのある各種攻撃について、実演を踏まえながら、その対策としてどんなコードを書くべきなのか?という話を聞くことができました。ちょっと前に話題になった片山氏のCSRFの手口とかも実際に見てみると、意外と簡単な原理でできちゃうんだなーと参考になりました。
実は文字コードを悪用して、不正なクエリを不正じゃないように見せかけることができたりなど、悪いことする人はいろいろ考えているんだなぁ・・・
総評としては、やっぱりプレゼンがすごくうまく感じました。適度に笑いを入れつつ、実演でわかりやすくしつつも、様々な攻撃パターンなどを紹介してくれたりと、やはりプレゼンスキルってこーいうところで活躍するんだよなーと。プレゼンうまくなりたいなーと。
後、川口市のためにtokyoドメインを取るという一発ネタ。笑わせていただきました・・・。
 

今日から始めるPHPエンジニアのためのアクセスログ解析基盤構築入門

 

Slide:http://who-you-me.github.io/slides/phpcon2014/#/6

 

実はこれが目的で見に来た説も。ハウテレビジョンのエンジニア、祖山寿雄さんのセッション。

仕事でアクセスログ解析とは結構密接に関わっているので、PHPで基盤構築、と聞いて、これは聞かざるを得まい、と思い、バックでやっているHHVMのセッションを涙を飲んでパスし、こちらのセッションへ参加しました。

内容自体は結構高度に感じたのですが、いろいろなツールの存在を知ることができたので、これだけでもかなり参考になりました。

Fluentd、ElasticSearch、Kibana、BigQueryなど恥ずかしながら聞いたことない各種ワードと、それらを使ってどんなふうに構築することができるのか、という概要をざっと聞くことができました。ログ解析というからには、もっとプログラム書く印象だったんですが、ログ流して整理して、ElasticSearchで検索してくる、って感じなんですね。

実際に大規模なシステムでこの方式を採用するとして、表示速度とか高速化の面で考えないといけないことはいろいろありそうですが、便利なものがあるなあと。

というか、仕事の片手間であんなにしっかりしたログ解析のプラットフォームが作れるって、オープンソースのちからってすげー!(

 

Good Parts of PHP and The UNIX Philosophy

 

 
すいません、どこの会社の方かちらっと言っていた気はするんですが、忘れちゃいました。てへ。Yuya Tayakemaさんのセッション。
タイトルがかっこいいですよね。惹かれます。
 
肝心のトーク内容ですが、PHPUNIX哲学という一見相反しそうなものを組み合わせて語る、ということでなかなかおもしろい内容でした。
個人的な偏見かもしれませんが、PHPは簡単に書ける初心者向け言語、という印象が強い分、こういった内部的な処理速度とか、UNIX哲学みたいなできればあんまり向かい合いたくないトークテーマと絡めてお話されるのがすごく斬新で、streamやらiteratorやらというマニアックな目線から見たPHPの話は興味深かったですね。
 そういった目線からPHPを深めることができれば、他言語プログラマからもdisられなくなるようなPHPerになれるような気がします。
・・・ただ、事前準備があまり進んでいなかったのか、ちょっと進行が残念だったのは心残りですね。もっと準備されていれば、さらにスッと入ってくる面白い話になったでしょうし。
 

Webアプリのデプロイ今昔物語

 

ハウテレビジョンさんから二人目。秋山顕治さんのセッション

デプロイに関しては、現在の社内のやり方に少し疑問を覚えていたので、これまでのデプロイの歴史、そして現在の主流についていろいろ話してくれるという本セッションに参加。

とりあえず面白かったです。トークがうまいですね。

レンサバ時代、VPS時代、PaaS時代、IaaS時代と分けて、それぞれの時代のデプロイ方法、そしてなぜ時代が移り変わる必要があったのか?という順に説明が進み、整理されていてスッと入ってくる内容でした。

CapistranoやEngine Yard、Herokuといったデプロイツールや、Immutable Infrastructureという思想など、現代のデプロイに対する考え方、方法はやはり自社のものとは違い、だいぶ進んでいるんだなぁと痛感。

最善のデプロイとはなにか?という議論はプロジェクトによって答えが異なってくるとは思いますし、視野を広げて、いろいろ試して経験を積むことが大事なんですね。もちろんスピード重視という目線から見ると、メルカリのエンジニアさんみたいな視野も必要になるとは思いますけど。

AWSは今後とも主流になってくるとは思うので、勉強しなくちゃなーと考えつつ、未だに手を出せていない俺です。

 

各種LT

すべてのセッションが終わり、残すはLTのみとなったので、会場にぞくぞくとLTを見にPHPerの皆さんが集ってきました。冷静に考えれば1000人以上のPHPerが集まるってすごいですよね。全員で協力してコード書いたら一週間ぐらいですごいサービス作れそうです。

ここからは、個人的に好きだったLTについてレビュー。

PHPでAIプログラミング準優勝するまでの軌跡

 

PHPでAIプログラミング、というとんでもないチャレンジをした話。サイバードの倉知真太郎さんのLT。

PHPが好きだから、という理由だけでスレッドも非同期も何もないPHPでAIプログラミングにチャレンジするという根性、まさにPHPカンファレンスにふさわしいトークでしたね。

試行錯誤した結果、マルチプロセスしようとしたら1コアだったとか、外部のハイスペサーバに計算任せようとしたらダメだったとか、面白い話が多かったww

結論が、AIプログラミングにPHPは向かない、という〆。愛するがゆえの真実ですね。

 

ログ解析の基礎

 

 

やはりアクセス解析のテーマとなれば逃せない、ということで。菊池佑太さんのLT。

PHP機械学習やってみよう、というお話でした。機械学習については、多少の知識と興味があったものの、やはりその複雑さから敬遠しがちでしたが、短いトークの中で意外と簡単にできる、ということがわかり、面白かったですね。

機械学習から本来不明なセグメントを割り出す、というのはWEBマーケティングにおいても非常に有力な手法となるので、いろいろ試してみたいと思いました。

調べてみたら、実は元Yahooのエンジニアさんなんですね。イケメンなのに突然まどマギトークにぶっこみだした辺りには思わず笑いがww

 

PHP伺かで始める新しい通知の形

 

 

正直、プロジェクターのテストの段階でデスクトップが写されたときから、ん?とは思っていたのですが、やはりでした。懐かしい、伺か。チャットワークのkinzalさんのLT。うちもチャットワークお世話になってます。

PHPと組み合わせて、通知を可愛くしてしまおうという発想。すげぇ面白かったです。やっぱりかわいいって大事ですよね。俺も好きですさくらさん。

今後試します(後回し)

 

中年以降エンジニアの成長戦略

 

 

IT技術者30代定年説なんて話も昔にはあったぐらいですし、今後ともIT業界に身をおくならば、やっぱり中年以降の戦略って大事ですよね。

内容はかなり響くものがあって、若手はいろいろ手をだし、中年以降は的を絞る、んで、やりたいことは絞った的に合うか合わないか断捨離、場合によっては無理やり絡める、みたいな勉強の仕方、非常に参考になりました。

新人と呼ばれなくなったらもう中年、辛辣だな〜、名言だと思います。

 

恐怖!シェルショッカー1号男

 

 

事前情報を見る限り、「なんじゃこりゃ?」と思っていた公演でしたが、非常に面白かったです。腹がよじれました。

まず、PHPカンファレンスなのにまったく関係のないシェルの話をすると堂々宣言。

シェルスクリプトでショッピングカードシステムを作り、バナーを貼るみたいに実装するという発想wwwしかもシェルなのでDBなんぞ使わずに情報は全部テキスト保持ww

・・・大変笑わせていただきました。ちなみに購買意欲はブログやサイトで生じる、という真面目なお話については大変同意です。

 

PHPカンファレンス2014に初参加してみて

今回のPHPカンファレンスは初参加者が多いこともあり、内容も初心者向けセッションが意外と多く、大変楽しめる内容でした。

スピーカーの皆さんのお話はためになることだけでなく、クスっとするようなネタを仕込んでいたり、あー、こういうスキルがエンジニアには求められていくんだろうなぁと漠然と感じました。

PHPの動向には正直詳しくありませんでしたが、今回でかなり情報を仕入れられたので、今後もPHPの最新動向や、今回のセッションでお話いただいた技術内容について勉強したいです。

このままPHPerになるかはわかりませんが、選択肢のひとつとしては見据えていきたいですね〜

とりあえず、来年も行ければいきたいと思います!