[php]大規模パッケージソフトウェアとPHP – PHPカンファレンス2008

Written by uechoco 7月 31
[php]大規模パッケージソフトウェアとPHP – PHPカンファレンス2008 はコメントを受け付けていません。
この記事を読む時間:227くらい

大規模パッケージソフトウェアとPHP

  • 自己紹介
  • ガルーン2とは?
    • Webグループウェア
    • 300人以上の中大規模向け
    • サーバー構成によって1万人以上も可能
    • CyDE2フレームワーク
    • 1200画面、2500テンプレート、4500ファイル、開発者:日本人10人・ベトナム人4?5人
    • スケーラビリティ
      • サーバー構成を自由に決められる
    • 国際版開発中
  • PHPとガルーン2
    • 簡単インストール
      • httpd.confを開かせたら負けだと思っている
      • Webサーバ自動検出
      • デプロイメント標準化
      • 独自SAPIで実行可能
        • Webサーバに設定不要
        • Webサーバを選ばない
        • etc..
    • PHP拡張
      • パフォーマンス必要ならCで書く
        • 日付・時刻
        • AES暗号
        • XMlパーサ、CVSパーサ
        • ライセンス処理
    • スケジューリングサービス
      • 登録されたイベントを定期的に実行
      • Windowsで使えるcron
      • PHPからコントロールできるcron
    • セキュリティ
      • ホワイトリスト方式のXSS対策
      • escape modifierを自動で埋め込む
        • escapeしないときは{$value|grn_no_escape}
        • サニタイズって言わない
    • CSRFリスト
      • アクションリスト
  • 国際化アーキテクチャ
    • 日付・時刻
      • ローカルタイムゾーンに変換
      • Unixタイムスタンプと日付オブジェクトを相互変換
      • サマータイムを考慮
    • ローケル
      • ローケルごとのリソースファイル
      • 現在のローケルはDBから取得
    • テンプレートジェネレータ(PHP)
      • 負荷軽減
      • デベロップメントモード
    • リソース管理ツール
  • まとめ
    • 簡単インストール
    • デプロイ標準化
    • セキュリティ対策の負荷軽減
    • 実用的な国際化アーキテクチャ
    • スケジューリングサービス
    • cydn.cybozu.co.jp

大規模パッケージソフトウェアとPHP - PHPカンファレンス2008

[amazon]4990299906[/amazon]

[php]楽天におけるPHPの過去・現在・未来 – PHPカンファレンス2008

Written by uechoco 7月 31
[php]楽天におけるPHPの過去・現在・未来 – PHPカンファレンス2008 はコメントを受け付けていません。
この記事を読む時間:334くらい

楽天におけるPHPの過去・現在・未来

  • 自己紹介
    • 安藤祐介
      • 楽天(3年間くらい)
      • CakePHP
  • よくわかる楽天
    • イーグルス
    • 楽天市場
    • 11期目
    • 1706人、連結3527人
    • 楽天食堂はタダ
    • Matzフェロー
  • 楽天の開発体制
    • 社内対応(ハードとソフトを両方社内でできる)
      • データセンター構築・設計
      • サーバ構築・管理
      • アプリケーション開発
    • 機器台数
      • 6000台
      • 「Sun 事例 楽天」で検索
      • 「Oracle 楽天とラベル」で検索
    • トラヒック
      • 5年間で50倍
      • 8.6Gbps
    • OSS
      • ハイブリッドに
        • OSS
        • 商用
        • 各種サーバ製品
      • 使用プロダクト
        • PHP
        • Tomcat
        • Ruby
        • MySQL/Senna商用
        • Apache/Linux
      • 利用の留意点
        • 十分な検証
        • セキュリティ面は継続監視
        • 必要ならパッチも作る
        • 外部から技術協力も
        • 「藤本真樹 楽天」で検索
    • 規模の指標
      • アプリケーション数:PHPだけで150以上
      • サーバー台数:800台以上
      • PV:5000万PV/日
      • 開発者人数:1000人以上のエンジニア
  • アーキテクチャ
    • 黎明期(2000年頃)
      • PHP3
        • 手軽
        • Web機能
        • 当時のエンジニアが持ち込む
      • PHP3から4へ
        • 作り替える
        • 作りまくる
        • PV上昇とともに負荷増大
        • 試行錯誤
      • 対応
        • safe_mode
        • Smarty/PEAR
        • SlaveDB
        • I/O処理チューニング
    • 独自フレームワーク期(2003年頃)
      • 標準化の開始
        • プロジェクト構造がばらばら
        • 社内で車輪の再開発
        • 運用コスト徐々に増える
      • 楽天GORA
        • Mojavi似フレームワークを採用
        • 種々の負荷対策
        • 10名以上の平行開発
    • フレームワーク期(PHP4、2005年頃)
      • Mojavi導入
        • コードジェネレータの開発
        • APC導入
        • PHP4での開発スタイルの確立
        • 新卒エンジニアの採用
        • DB,ロジック周りは未整備
    • フレームワーク期(PHP5、2006年頃)
      • symfony
        • 社内標準
        • Mojavi似
        • スケルトン生成
        • 事例
          • Infoseekメール
        • 課題
          • 高機能
          • 学習コスト、高
          • Propelは様子見(使っていない)
          • プラグインで各所対応
          • 小さいサービスには大げさ
      • CakePHP
        • いくつかのサービスで試験導入
        • 学習コスト、低
        • ノウハウがたまたまあった(笑
        • 軽量
        • 事例
          • お気に入りブックマークモバイル版
        • 課題
          • 大規模開発はどうなのか
          • ライブラリが未整備
          • 資産の兼ね合い
          • Railsとの兼ね合い

楽天におけるPHPの過去・現在・未来 - PHPカンファレンス2008

[amazon]4620317187[/amazon]

[php]PHPで作るぐるなび – PHPカンファレンス2008

Written by uechoco 7月 31
[php]PHPで作るぐるなび – PHPカンファレンス2008 はコメントを受け付けていません。
この記事を読む時間:336くらい

PHPで作るぐるなび

  • ぐるなび事業
    • 1996/6
      • (株)NKB
      • 一部事業
    • 2000/2
      • (株)ぐるなび
    • 掲載件数(2008/3)
      • 50万件
      • うち、詳細情報6万2千件以上
    • アクセス数(ぐるなび事業連結)
      • 7億2千万[PV/月]
      • 会員数580万人
    • PHP
      • ほぼすべてのコンテンツに使用
  • システムの話
    • 飲食店情報検索システム
      • 第1世代(?2002)
        • 管理UI:なし
        • 店舗データ:Excel
        • 店舗詳細:静的HTML(手作り)
        • 検索システム:dbf
        • 検索UI:Delphi
        • サーバ:Windows+IIS
      • 第2世代(?2004、全面リニューアル)
        • 管理UI:PHP
        • 店舗データ:PostgreSQL
        • 店舗詳細:静的HTML(CMS)
        • 検索システム:PostgreSQL
        • 検索UI:PHP
        • サーバ:Linux+Apache
      • 第3世代(?2007)
        • 管理UI:PHP
        • 店舗データ:PostgreSQL
        • 店舗詳細:静的HTML(CMS)
        • 検索システム:MySQL/全文検索
        • 検索UI:PHP
        • サーバ:Linux+Apache
      • 第4世代(2007?)
        • 管理UI:PHP
        • 店舗データ:Oracle/XML
        • 店舗詳細:静的HTML(CMS)
        • 検索システム:MySQL/全文検索
        • 検索UI:PHP
        • サーバ:Linux+Apache
    • なぜPHP
      • 動的スクリプト言語
      • フロントエンドの軽量な実装
      • 日本語の取り扱い
      • 導入コスト低い
      • セキュリティが心配
        • 社内セキュリティセミナー
        • 外部にセキュリティ調査を依頼
      • php.ini
        • recomment+alpha
        • 内部エンコード:UTF-8
      • ライブラリ
        • PEAR
        • Smarty
    • Webサーバ構成
      • (省略)
    • 性能面
      • Webサーバーをスケールアウトしやすい構成にする
      • 検索エンジンやデータベースのパフォーマンスアップに注力
  • 今後の展望
    • 課題
      • PHP5
        • 未だに1割しか導入していない
        • 縦割り実装
        • リファクタリングベースに移行
      • 共通ライブラリ
        • 基本ライブラリの充実
        • ビジネスロジックの共通化
        • Zend Framework
          • マルチバイト系の処理が不安なので独自に改良を加える
        • SimpleXML
          • 直感的にデータアクセスできる
      • 共通エンジン
        • ベースモジュールの選定
        • (ex)ぐるなびのSNSエンジンの場合
          • OpenPNEを拡張
    • 国際化
      • 日本発、世界へ
        • 上海・北京
      • 当初Java開発
        • 中国はPHPエンジニアよりJavaエンジニアのほうが多い
      • 結局PHP開発
        • 日本語版開発からfork
        • 進行中

PHPで作るぐるなび - PHPカンファレンス2008

[amazon]4532312744[/amazon]

[Linux]confgureでC++ preprocessor “/lib/cpp” fails sanity check

Written by uechoco 7月 31
この記事を読む時間:148くらい

Tripwireをソースコードからインストールするためにconfigureしようとしたら、

[bashcode]configure: error: no acceptable C compiler found in $PATH[/bashcode]

あれ?gccがないのかな?と思って、

[bashcode]yum -y install gcc[/bashcode]

でインストールしたら、やっぱりなかったみたい。無事にインストールされて、再びconfigureすると、

[bashcode]configure: error: C++ preprocessor “/lib/cpp” fails sanity check[/bashcode]

ぇ?インストールしたのに!!こういうときは、エラー文をGoogleに丸投げ【`・ω・´】ノ ゚ ポイ

ありました!

Nix::WebLab: configure: error: C++ preprocessor “/lib/cpp” fails sanity check

どうやら、gccにはC++コンパイラが当然含まれているものだと勘違いしていた俺。別途インストールなのか!

ってなわけで、

[bashcode]yum -y install gcc-c++[/bashcode]

でC++を入れて、三度目の正直っ。configureしたら、無事に通りましたとさ。

[amazon]4797328355[/amazon][amazon]4789833402[/amazon][amazon]4873112699[/amazon]

[php]基調講演 – PHPカンファレンス2008

Written by uechoco 7月 24
[php]基調講演 – PHPカンファレンス2008 はコメントを受け付けていません。
この記事を読む時間:158くらい

※私が遅れて来たので、最初のほうはわかりません。またメモしか取れていません。

基調講演

  • PHP 5.3
    • mysqlnd
    • 名前空間
      • namespace
      • get_class()関数の戻り値が変わるので注意
    • ラムダ関数・クロージャ
      • コールバック関数などの一時的な利用に
      • レキシカル変数が使用可能に
        • ブロック内でのみ有効な変数
        • useキーワード
    • ext/intl
      • Unicodeネイティブ対応の大本のライブラリ
      • IBMのICUライブラリをベースにしている
      • mbstringの機能(文字コード、文字列処理、mailなど)は現時点では未サポート
    • Late Static Binding
      • 実行時にスタティックイベントを処理
        • (ex)ActiveRecordを正しく実装できる
      • 下位互換性はない
    • 文法の拡張
      • ?:演算子
        • A ?: B
        • if (A) then A else B と同じ
        • (cf) A ? B : C (三項演算子)
      • NOWDOC
        • 変数を展開しないヒアドキュメント
      • goto文
        • 正しく使えば二重for文などをしっかりと抜けられる
      • Dynamic Static Call
  • PEAR 2
    • PHP 5.3/6系をターゲットとする
    • アーカイブ
      • phar (PHP Archiver)
    • インストーラ
      • Pyrus