PHP at Yahoo! JAPAN

カテゴリ: php / author: uechoco / 2007年09月04日 00:09:00
この記事を読む時間:440くらい

from PHPカンファレンス2007

PHP at Yahoo! JAPAN(ヤフー株式会社 荻原一平さん)

  1. Yahoo! Japanについて
    • トップページは13億38百万 PV / 日
    • ログインは1996万 ID / 月
    • 140ものサービス
    • きっと日本で一番PHP使ってる・・・
  2. Yahoo!とPHPの関係
    • Yahoo! Inc(アメリカのYahoo!)に在籍する人
      • PHP作った人
      • PECLメンテナ
      • Symfonyエバンジェリスト
    • コミュニティへの貢献
      • 機能拡張や拡張モジュールのコントリビュート
      • バグレポート
      • www.php.netはYahoo! Incが提供
  3. PHPの導入経緯
    • 1994年の時点ではすべて自前のサーバー環境だった
    • オープンソース火の波
    • 1996年にWebサーバーをFiloServerからApacheへ
    • 1999年にDBをフラットファイルからMySQLへ
    • 2002年9月にスクリプトをyScriptからPHPへ
    • ちなみに、OSはFreeBSD
    • オープンソース以外では用途に応じてOracleなども
    • C/C++レベルでの独自技術が豊富でPHPから呼び出せるようにしている
    • Yahoo! Japanは2004年ごろから当時のPHP4.3に切り替え
    • 現在のフロントエンドはほぼすべてPHP
  4. なぜPHPか?
    1. yScriptのメンテが面倒だった
    2. さまざまな言語を調査した
    3. 2002年5月にPHPを採用することを決定した
    4. 条件
      • 高いパフォーマンス
      • 堅牢で安全
      • C/C++による拡張
      • FreeBSDで動作
      • 動的コンパイル言語
      • 国際化サポート
    5. 選択理由
      • ライブラリや拡張機能が充実
      • IDEやデバッガがたくさんある
      • トレーニングコストが低い
  5. PHPの依存関係管理
    • インストールは、disable-all
    • 共有ライブラリ化
    • 不必要な依存を避ける
    • メモリの使用量低下
    • Yahoo!では最大公約数的な環境が無理なのでベース環境を用意して個々のサービスごとに拡張
  6. PHP5への対応
    • Yahoo!はPHP4の社内サポートは年内まで
    • 2007年末までには5に移行
    • 2008年までにはほぼすべて5.2へ
  7. セキュリティ対策
    • 開発ルール
      • 個人情報の取り扱いルール
      • 実装方法の指定
      • 脆弱性スキャナによるチェック
      • チェックリストで確認
    • プラットフォームの整備
      • フィルタ
      • フェイルセーフから標準設定
    • ユーザー入力のフィルタリング
      • XSS・SQLインジェクション攻撃・・・ブラウザからのデータは信用しない
      • input_filterフックを使用
      • フィルタの拡張を行う
    • CSRF対策
      • Crumbを使用
  8. パフォーマンス
    • Opecode Cache:Yahoo!ではAPCを採用
    • プロファイラ・デバッガ:Yahoo!ではxdebugを採用
    • PHPエクステンション
      • 高速で、C/C++のノウハウを活かせる
      • 開発が面倒、マニュアルがない、メモリーリーク
    • PHP embed
    • セッションは利用しない
      • Cookie+暗号化
      • 画面遷移に必要なデータはPOST
      • Crumb
  9. Yahoo! Incの国際化
    • テンプレート管理ツール R3を使用
    • 社内アプリだったが、オープンソース化して、7月末にVer1.0.0リリース
    • PEARでインストールできる
  10. フレームワーク、CMS
    • オープンソースのは汎用的なのでダメ
    • スクリプトレベルでの実装はエンジニア任せ
    • Smartyはオーバーヘッドが嫌なので使わない
    • Symfonyを使い始めた、ただしYahoo!の拡張はしている
    • CakePHPは評価中
    • Drupal(CMS)も評価中

このセッションのマインドマップ1(1,045KB)

このセッションのマインドマップ2(939KB)

このセッションのマインドマップ3(495KB)


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.