昨年に引き続き、今年も PHP カンファレンス福岡に参加しました。
昨年同様今年もとても価値のあるイベントだったので、レポートしておきます。
長崎から福岡までお上りしましたが JR 時刻の関係でちょっと早めに会場入りしました。バーコードを印刷して行くのを忘れていてすいませんでした。
先着でイベ T が配布されており、たまたま早めに会場入りしたおかげで丁度良いサイズを手に入れることが出来ました。
メインの Fusic ホールが去年よりでかく、ちょっと驚きました。
以下、各発表について触れていきます。既にスライドまとめ記事を作成して下さっている方がいたので紹介させて貰います。
もう確認した?『PHPカンファレンス福岡2016』全スライドまとめ #phpconfuk | TechStars Blog
Laravel リファレンスを書かれた @shin1x1 さんの登壇でした。最近丁度 Laravel を触り出し、@shin1x1 さんの記事を見ることもあったので個人的に旬な機会でした。
EC サイトショッピングカートの実装を題材に
を用いた有効な制約の活用を話されていました。私はこの辺りの方法を Java を触った際に学びましたが、当時自力で学習した内容がわかり易くまとまっていました。初学者もどんどんカンファレンスに参加するといいと思います。
最後に、制約とは自由を奪うものではなくコードに秩序をもたらす為のもの、というまとめをされていたことを意識して今後のコーディングに活かしたいです。
ドキュメントと表現すると様々ですが、ここではエンジニアによく思い当たる API ドキュメント等では無く、クライアントと共有する使用・見積り書に当たる技術が紹介されました。
こういったドキュメントについて、紙が死ぬことは無い。紙のドキュメントにつきものの Office はやりたくない…。そんな状況にどう立ち向かうかというものです。
様々なケースを基に、
等が紹介されました。
紙に立ち向かう為には便利に使えるものは何でも使っていくべきだが、その中でも使い慣れた PHP を使うという選択肢は有用とのことです。
GMO ペパボ スポンサーセッション枠の発表です。
サーバーホスティングを効率良く行う為の、高集積かつ性能を共存させるか、という要求に対応するという内容です。
高集積である上ではプロセス数にホスティング収容数が依存すると厳しい為 VirtualHost という選択肢となるが、それには権限分離を主としたセキュリティ上の課題が大きく、解決の為のアプローチが紹介されました。
正直内容に追い付くのが精一杯だったので理解出来ていない部分が多いですが、開発されていた mod_process_security については興味深く再度調べてみる予定です。
さくらインターネット スポンサーセッション枠の発表です。
技術内容でなく、「さくらクラブ」という取り組みについての紹介でした。
部活的な取り組み、とざっくり紹介されていましたが枠組みも広く、特に「技術以外のプレゼンをやる」という斬新な取り組み等もありました。ふと身の周りに返ると長崎では中々こういう取り組みも多く無く、何かしら起こしてみたいという気持ちにもなりました。
@suzuki アカウントを様々なサービスで取りまくっている鈴木さんの登壇でした。
非同期界隈でホットな Promise パターンの話でした。PHP では Guzzle というライブラリにより Promise が実装されており、これをどのように実装するかで効率的に並列処理出来るかという内容でした。
ループ、リスト処理、プール、様々に実装が変わることで影響が出るのは参考になりましたが Promise について理解が浅い部分もあり、改めて見直したい内容のひとつでした。
PHP とは…。
Go 言語の最新仕様で共有ライブラリを作成出来る機能が盛り込まれ、それに触れた内容でした。LinuxNameServer 実装についても解説されましたが、個人的には Go 言語実装に興味があり見に行きました。
共有ライブラリ作成にはまだまだ制限が多く、採用するにはそれなりの覚悟が必要という印象でした。ただ LL で慣れた書き味の言語で共有ライブラリが作成出来ることのメリットがプロジェクト的に大きければ、やる価値はありそうです。
しばらく前に Android 開発で Java から Kotlin を使ってみて、改めて型推論の便利さを思い知ったのでこの発表を聴いてみました。
PHP5 まではコンパイルの過程に AST 構築が無かった(!)のが、PHP7 からは AST 構築が行われるようになった為そのタイミングで型推論を実装するというアプローチの話でした。
PHP のような動的言語は実行時のオーバーヘッドが大きい為、可能な部分だけでも型推論を用いてコンパイル時に負担させることで実行時負荷を軽減するというのは現実的に見えます。
なお型推論の話は 25 分では不可能というのは予測されていたらしく、「未完」となりました。
Fusic テスターの方が登壇されての発表でした。
テストというといかに自動化するかというのがトレンドである中、手動テストをいかにやっているか、そのモチベーション等について話されていました。
テスターが行う上でのスケジューリング、エンジニアへのヒアリング、テストの勘所など専業での観点から貴重な意見が聴けました。
この辺りで力尽きて、頂いた Redbull を飲みながら 1 セッション分休憩していました…。
PHP とは(2 度目)
ペパボの Rubist @udzura さんの登壇でした。
Sqale は Ruby/PHP に対応した PaaS で、最近は PHP7.0.6 にも対応したようです。その対応の際に抜本的なシステムの見直しを行ったところから見ていく解説でした。
コンテナ技術の核となる LXC は cgroup、Linux namespace、chroot、quota、Linux capabilities 等の複合技術であることというのはこのセッションまで知りませんでした。では LXC はオーバーヘッドが大きいのでは、というと実際のところ chroot と比較してボトルネックとなるようなオーバーヘッドは無いといった調査も為されていて学びがありました。
Sqale が PHP に対応した際の経緯が失なわれており、考古学的に手順を復元し今回の 7 対応が為されたというのは笑い話のような笑えないような、身に刻まれる話でした。
Sqale の核となる部分は Ruby、Rails で実装されているなど、やはり @udzura さんならではの内容です。
mBaaS も少し前からトレンドとなっているワードではあったので足を運びました。
モバイルバックエンド実装は主に値を取得する API が主という同様な実装が多くなる中、その工数を削減出来る mBaaS は効果的に用いてみたいサービスのひとつでした。
iOS/Android 間でのプラットフォーム差異、例えばプッシュ通知制限等のラッピングも担ってくれるのは非常に便利そうでした。一方、mBaaS を利用する為にモバイルアプリ側に SDK を組み込む必要があるというのは把握しておらず、この SDK に依存する上でのバージョン追従、実装把握、といったコストがどの程度かかるかは気になりました。Android の SDK、ライブラリは比較的陳腐化しやすい傾向にあるので気を配りたいところです。
最近はニフティクラウドには Facebook Parse のサービス変更に伴う難民が多いそうです。
全体的に勢いを感じて最高でした。
PHP7 おめでとう!5 とのトランスパイラ無いの?
Norton が PHP の win バイナリを消したり、mt_rand() はバージョンで一貫して壊れていたり、gc_maxlifetime 値が謎の 1440 秒なのは 24 時間(1440 分)を単位だけ直したのでは…との話だったり、知見でした。
PHP のライブラリの脆弱性について、Composer プラグインで担保しようという話。
yay プリプロセッサライブラリを使ってイエーイ!!していきましょう。
eval 使いまくりなのに力を感じました。
予定を立てる際に懇親会参加も検討しましたが、某バンドのライブが近くで開催されるようで宿が厳しいかと思い今回は見送りました。実際はそうでも無かったようです。懇親会ではスポンサーセッション枠の詳解があったようで、聞き逃してしまったのはちょっと残念でした。