PHP Conference 2008」に参加してきた。梅雨明けの東京は凶悪な暑さで、休日をなげうって出かける私を嘲笑うかのような好天だった。

会場の大ホールは前半分がテーブル+椅子、後ろ半分が椅子のみという設営。テーブルと電源がある席を確保でき、キーワードをその場でググりながら聞けたのはとてもラッキーだった。時々後ろを振り返ると予想以上に人が入っていてびっくりした。

【リンク】
日本 PHP ユーザ会 (Japan PHP Users Group)
http://www.php.gr.jp/

PHPカンファレンス2008 – メインページ
http://www.php.gr.jp/seminar/20080721/
 >そのうち発表資料があがるはず

キーワード検索 php conference 2008‐ニコニコ動画(夏)
http://www.nicovideo.jp/search/php+conference+2008
 >ustreamでの生放送があがっている。

  • 基調講演「PHPの今とこれから」
    日本PHPユーザ会 廣川 類 * 現状 * 人気はそこそこ * フレームワークが出揃ってきた * MS / IBM / Oracleのサポート * バージョンの話 * 4→5への移行状況 * 会場挙手では7~8割ぐらいが5の開発者 * 去年75%→今年61%(nexenの調査)
    >サポート終了がアナウンスされてるのにこの程度の移行状況… * これからのバージョン * 開発中 * 5.3 * 2008/10(予定) * 6までのつなぎ = 当面の本命
    >PHP6 – (Unicode) + (pecl/intl) * レガシーコードの整理、ZE1互換モード廃止 * 名前空間、ラムダ関数 / クロージャなど言語の根幹に関連する大きな変更が入る * ext/intl(Internal Extensinon)にちょっと懸念が
    >mbstringの機能は未サポート * phar
    >PHp ARchive – JARみたいなスクリプトアーカイブ * 6.0 * リリースはずいぶん先
    >安定するまでも時間がかかりそう * Unicodeで苦労してる * mbstring関数の多くをネイティブ実装してる
    >日本語対応が十分かどうかに懸念 * 検討中 * 4.4.9 * 2008/08/08リリース(?) * ver4終了記念リリース * 5.4 * 6が遅れたらあるかも * PEAR / PECL * PEAR <= 1.3サポート打ち切り(2008.1) * 現在1.7
    >設定をconfigに書けるようになった * PEAR2 * 5.3を主要ターゲット(名前空間の問題) * pharサポート * pyrus(新インストーラ) * 新チャネルサーバ * その他 * テストしようよ
    >PHP_CodeSniffer,PHPUnit,SimpleTest,Seleniumなどテストツールがたくさんある * 新たな開発者(特に若者)に参加してもらう工夫が必要 * やっぱPHPいいよね
    • PHPでつくる ぐるなび
      株式会社ぐるなび 技術department 開発第2グループ グループ長
      佐藤史彦
      • 「ぐるなび」という事業
        • 掲載店舗数:50万
        • 詳細情報:6.2万
        • ページビュー:7.2億(月)
        • 会員数:588万
        • サービス数
          • 事業レベルでは10程度
          • 事業ごとのサービスコンテンツは60~
          • ほぼすべてWebコンテンツはPHP
      • システムの話
        • webサーバ:IIS→Apache
        • DB:Excel→PostgreSQL→一部MySQL→Oracle + MySQL
        • 共有ディスクをわりと贅沢に使っている
      • PHPの話
        • フロントエンドの軽量な実装
          >動作は軽量じゃないが実装はラク
        • 日本語の取り扱いが容易
        • 導入コストが低い
          >セキュリティには要注意
          • プログラマをセミナに参加させる
          • 外部の診断を受ける
        • 内部コードはUTF-8が基本
        • ライブラリ:PEAR,Smartyぐらい
          >わりと普通
        • バージョンは5が10%くらい、残りは4
          >移行は行っているがなるべくリファクタリングしながらなので遅れ気味
        • フレームワーク:自前共通ライブラリ
          • Zend Framework / 標準拡張モジュールをラップしたベースクラス
          • SimpleXML(店舗データはXMLで持ってるため9
        • 国際化:上海に子会社
          • 当初はJavaで開発してた
            >向こうにはPHP技術者が少ないため
          • 日本語版(現地の日本人向け)開発からはPHPで標準化
    • 楽天×PHP 楽天におけるPHPの過去・現在・未来
      楽天株式会社
      開発部 環境整備課 アーキテクチャ標準化推進グループ
      安藤祐介
      • 楽天とは
        • 楽天市場:6.5万店舗 / 2,200万アイテム
        • 従業員数:1,706(単体) / 3,527(連結)
        • インターネットサービス企業である
        • まつもとゆきひろ:楽天技術研究所フェロー
          ROMA, fairy
      • システムについて
        • 社内で対応する分野:データセンタ構築 / 設計、、サーバ構築・管理、アプリケーション開発
          >全部じゃないか
        • Sun Fire E25K x 4台構成
        • サーバ機器:6千台強(‘07.10)
        • トラフィック:8.6Gbps(‘07.08)
        • ソフトウェア:商用とOSSを必要に応じて使い分け
        • 主なOSS
          • PHP / Tomcat / Ruby ( / GrassFish)
          • MysSQL / Senna
          • Apache / Linux
        • OSSはリスクをケアした上で大規模活用
          • 導入前検証
          • セキュリティは継続監視
          • 必要ならパッチ
          • 外部からの技術協力
      • アプリケーションについて
        • 規模
          >あきらかに最大級の規模のPHPユーザ
          • アプリ数:150以上
          • ソースコード:900万行 / 120万ファイル以上
          • サーバ台数:800以上(PHPが動いているもののみ)
          • PV:5000万/day(PHPファイルへのアクセスのみ)
          • 開発者の人数:最大1,000人以上(PHP開発サーバのアカウント数)
        • フレームワーク
          1. 独自フレームワーク時代
            • PHP3~4
            • Mojaviっぽい独自フレームワーク
            • 構造の破綻 / 車輪の再開発で徐々に増える運用コスト
              >ライブラリ / フレームワークによる標準化
          2. PHP4によるフレームワーク期
            • Mojaviを中心にOSSを導入
            • コードジェネレータ開発
            • APC導入
            • 導入の結果開発スタイルが確立、新卒エンジニアでも開発参加できるまでになった
          3. PHP5によるフレームワーク期
            • 最初は一部のサービスで独自フレームワークを使っていた
            • やがてSymfony
              • 高機能だが学習コストもかかる
              • 小さなサービスには大げさ
            • 一部でCakePHP
              • 軽量
              • 学習コストが低い
              • 課題
                • 大規模開発への適正
                • ライブラリなどが未整備
                • 既存資産との兼ね合い
                • Railsとの兼ね合い
      • まとめ
        • 成果
          • スピードとコストを両立した開発
          • 共通ライブラリなどによる運用性の向上
          • オープンソース活用の風土
        • 課題
          • ナレッジの共有 / 社内教育
          • 過去の資産のメンテナンス
          • コミュニティへの還元
        • 今後の展開
          • PHP5への完全移行
          • UnitTest / IDEの導入
          • PHP5.3 / 6への対応
    • 規模向けパッケージソフトウエアとPHP
      サイボウズ株式会社
      開発本部 開発部 ガルーン開発グループ
      米川 健一
      • ガルーン2とは?
        • 300人以上向けのグループウェア
        • サーバ構成によって1万人規模にも対応
        • PHPベースのフレームワーク「CyDE2」で開発されている
          • PHP
          • MySQL
          • Smarty
        • スケール
          • 画面数:1,200
          • テンプレート:2,500
          • PHPファイル:4,500
          • 開発者:日本で10人 / ベトナムで4~5人
        • 国際化版を開発中
      • PHPとガルーン2
        • パッケージソフトなのでインストールを簡単に
          >PHP本体にhackを入れ、独自SAPIによる実行モデルを作成
        • PHP拡張(Extension)
          >パフォーマンスを要求される部分はCで書く
          • 日付 / 時刻(BOOST)
          • AES暗号
          • XML / CSVパーサ
          • ライセンス処理(パッケージソフトだから)
        • スケジューリングサービス
          • Windowsでも使えるcron(daemon / service)
          • PHPでコントロールできる
            >イベントの登録などを管理画面から行える
        • セキュリティ
          • ホワイトリスト方式のXSS対策
          • SmartyのescapeはデフォルトON
          • CSRF対策
            • CSRF対策するアクションのリストを用意する
            • リスティングされたアクションへのリクエストはチケットが必要
            • チケットは自動でSmartyにassignされる
      • 国際化アーキテクチャ
        • マルチタイムゾーン
        • メッセージリソースの国際化
        • テンプレートジェネレータ
          >リソースが埋め込まれたテンプレートを自動生成することで動的リソース埋め込みの負荷を軽減
        • リソース管理ツール
          >実際の画面でテストできる開発 / 翻訳サポートツールを独自に作成
    • ユーザ会活動報告 / PHPネタの集め方
    • パネルディスカッション
      激論!PHPの次に学ぶ言語はこれだ
      • パネラー
      • モデレータ
      • 感想
        • OSS活動にコミットするぐらいのプログラマとなると、さすがに言うことが面白い
        • まとめとしては「何でもいいけど他の言語やらないとPHPのよさもダメさもわかんないよね」
          >そらそうだ
        • 「PHPプログラマにはやさぐれた人が少ない。モテ言語。」(id:amachang)
          >大変笑わせていただいた。モテ組代表みたいなルックスのid:amachangがおっしゃいますか。
           私見としては、熱意と愛を持ってPHPを使ってる!というプログラマが少ないからじゃないかなぁ。そして、私はプログラマの世界なら「非モテ」になりたい。
    • ライトニング・トーク