廣川 類・日本PHPユーザ会 http://es.slideshare.net/hirokawa/php-con2013ub
Webにフォーカスしたスクリプト言語として成功したPHPは常に進化し続けています。ポストPHP 5.3時代の開発、PHP 5.5における機能強化点を中心に、PHP 5.6に向けた展望とPHPコミュニティの今についてお話します。
-
yield 早い でかいファイルを読む際に、メモリ効率が良い http://php.net/manual/ja/language.generators.syntax.php
-
opcache オペコードキャッシュ apcより10%高速 http://www.php.net/manual/ja/intro.opcache.php
-
try catch "finally" http://php.net/manual/ja/language.exceptions.php
-
安全なパスワード生成用ハッシュ http://php.net/manual/ja/function.password-hash.php
ピクシブ株式会社 久保達彦 http://www.slideshare.net/cubicdaiya/inside-pixiv-infrastructure
イラストコミュニケーションサービスであるpixivのシステムの裏側についてPHPの活用事例を交えながら紹介します。
- 800万会員
- 38億PV/月
- ネットワーク帯域10Gbps
- サーバー400台
- エンジニア30人(インフラ5人)
- ソースコード30万行
- redmineでタスク管理
- phpunitテストスイート
他言語との連携。やっぱりapi(json) xhprofでボトルネック調査
- tatesetaというフレームワーク
- api専用の軽量フレームワーク。ルーティングだけする
requireは最小限に抑える
こしば としあき(株式会社VOYAGE GROUP アジャイル戦略室 / 株式会社Zucks アドネットワーク事業部) https://speakerdeck.com/bash0c7/phpconference2013presentation-number-phpcon2013
わたしたちは、スマートフォン向けクリック課金型アドネットワーク「Zucks Ad Network」とこの事業の広告配信システムの開発運用を担っています。
この広告配信システムというミッションクリティカルかつハイパフォーマンスが要求されるシステムの開発・運用を通じて会得した技術的・チーム的な知見をお話します。 このセッションでは、事業や技術の第一線で踏ん張るPHPカンファレンス参加のみなさんに、下記の大きな事柄についての理想像を持ち帰っていただけます。
1. このようなシステムでPHPがはどのような部分で活躍するのか
2. PHPを含めて様々な技術要素を統合した"システム"として成り立たせるためには何が必要か
-
インフラ ほぼaws dnsとcdnはよそ。鉄板の富豪構成パターン
-
アプリケーション テストコード完備 プルリクエスト運用 ci 継続的インテグレーション ワンクリックデプロイ zgokコマンド(start|update|stop)
-
リアルタイム、高パフォーマンス、リトライ、リカバリーを担保する仕組み
1リクエスト受ける 2レス返す 3ログ書く 4ログを読んでdbに書き込む fluentd で担保してる
自分で検討して、動かして測定して評価する事が大事。
PHP逆引きレシピ 改訂版 執筆チーム http://www.slideshare.net/sakuraiyuta/php2013-php-php
好評を博している「PHP逆引きレシピ」の改訂版が10月に発売される予定です。 「初級者から中級者へ」を合言葉に、オブジェクト指向の基本やPHPUnitとSeleniumでの自動テスト、最新のライブラリ管理パッケージComposerについて新しく触れています。 改訂ポイントなどをまとめてご紹介します!
オブジェクト指向が当たり前 pearからcomposerへ変化。パッケージマネージャー ※正確にはcomposerは依存管理
PDO bindvalue,bindparam の違い。エミュレーションonだと型変換。 bindparamの第2引数は参照渡し。 全部bindvalueでいいんじゃないかな。
phpunit selenium ブラウザの挙動もphpで書ける
Masakazu Nagaya / Yahoo!JAPAN http://www.slideshare.net/techblogyahoo/phpcon2013-performance
大規模サイトでパフォーマンスを著しく劣化させる非効率な実装の例やその改善例の一部を紹介します。 今回の発表では、特にシステムコールを数を減らすことがパフォーマンス改善の重要なポイントだと認識頂くことをゴールとしております。
-
オープンするしょりをコンストラクタで呼ぶ。 openの処理コスト高い
-
リクエスト毎に毎回opencloseするのはもったいない。 openをpopen 永続化
-
大量のdefine問題 defineは処理コストが大きい。リクエスト毎に毎回実行される エクステンションで改善した hidef peclを活用 iniファイルから定数を一括定義する
-
プロセスの生成コストは非常に大きい 外部コマンドは絶対に使わない。 dmmでも書かれてる。 http://tsuchinoko.dmmlabs.com/?p=698
廣川 類・日本PHPユーザ会 http://www.slideshare.net/hirokawa/php-55-26227359
PHP 5.5ではついにキャッシュが標準搭載されました。その特徴、設定のポイントと注意点、ベンチマークの紹介、データキャシュ機能用エキステンションの使用法について解説します。
phpの新しいバージョンの方が、キャッシュ効果あり。最適化されてる。 キャッシュ管理コンソール opcache-status github 公式採用なので、今後はこれopcache使う方がいいよ。バグとかすぐに直してくれるし。
石川将行 http://www.slideshare.net/mishikawa55/2013-phpcon
フロントエンドエンジニア御用達ツールGrunt。 node.js製のビルドツールで、最近のクリエイティブ、制作系エンジニアにとっては必須のツールといわれています。 そんな便利なものをフロントエンド開発だけで使うなんてもったいない! PHPバックエンドエンジニア開発での利用事例、PHP関連プラグインの紹介を含めGruntの基礎、プロジェクトへの導入、Gruntプラグイン開発、公開(npm登録)までを紹介します。
開発環境へnode、gruntを導入
使い所:ソースを監視してユニットテストを走らせる
phpの構文チェック、コーディング規約チェック
阿部正幸・KDDIウェブコミュニケーションズ
無料、有料問わず数百種類あるWebAPI。このWebAPIを使うことにより、個人でも強力なWebサービスを構築することが出来ます。アイデア次第で大ヒットWebサイトの構築も夢じゃありません!! このセッションは最新WebAPIの紹介と、面白系APIの紹介、そしてWebAPI + PHPを使ってシステム構築の簡単な例をご紹介します。
ゼンリンデータコム 混雑状況、がリアルタイムに表示。dbに保存しとくと混雑状況が予想できる。混雑度map エリアの人気ワード
駅データ.jp
栗林健太郎 (株式会社paperboy&co.) https://speakerdeck.com/kentaro/how-to-continuously-upgrade-web-services-written-in-php
Webサービスは、いちどリリースしてしまえばそれで終わりということはありません。むしろ、リリースしてからが勝負です。ユーザからのフィードバック、市場環境の変化などに対応し、常に変化し続ける必要があります。それは避けようのない、Webサービスの宿命です。
-
ぺちぺ・ぺちばーの創始者はあんちぽさん。
-
放置すると、古い書き方。セキュリティやばい。 レガシーコードの増加。イノベーションのジレンマ
-
バージョンアップは継続的に行う事が当たり前なので、体制必須。 環境は常に変化し続ける。
-
必要なもの サーバーの構成管理。puppet,chef,ansibleとかね
いきなり全部を管理下におこうとしない。 できるとこから少しずつ。
簡単な設定ファイルから本番からコピーしてくる。 リポジトリにコミットする。
-
開発環境で育てる 壊れても一発で作れるように。
-
composer ライブラリ管理はアプリ側の責任 サーバ側の依存はマニフェストで管理
-
結局は泣きながら直す。changes(log)見ながら
ペパボは php-fpmへ移行してきている apacheとの密結合をやめる
- xbuild をgit clone してphp-installするだけ。
ヤフー株式会社 蒋東龍 http://www.slideshare.net/techblogyahoo/phpcon2013-true-orfalse
PHPコーディングの定石について説明する。 今まで何となくよい(悪い)と思って書いていたPHPのコードが 本当によいのか 本当に悪いのか を解説。 実際の計測することによって裏付けを取ると同時に、PHPコアから読み解くことによって論理的に説明する。