PHPカンファレンス2007の個人的まとめ

既に全体的なログは偉い人たちによってまとめられてます。なので、ここではワタシが気になったところだけしか書かない方向で。

基調講演「PHPの今とこれから2007」(日本PHPユーザ会 廣川さん)

  • PHP5.3
    • 2008年1月リリース?
    • 元々想定されていなかった。PHP6.0のリリース遅れが原因による繋ぎ。
    • 名前空間などの、PHP6.0のUnicode周り以外の機能がサポートされるっぽい?
  • PHP6.0
    • リリース遅れてます。いつリリースされるかは…
    • Unicodeサポートがメイン(ICU拡張)
      • 音訳機能*1が面白そう。廣川さんは「使われないだろうけど」と言ってたけど…。
      • 英語圏の人達からするとあまり必要ない機能だから、OFFにするんじゃないか
      • mbstringから変わる事でユーザ側にうれしい事があるか…?
      • Unicodeが使われるようになるには、何かメリットをアピールする必要が。
    • ガベージコレクタも今までと大きく変更
      • メモリ使用量が1/2〜1/22!
      • でも実行時間が増加…、そこはこれからチューニングされるはず
  • その他
    • 廣川さんはMeadow使い。(デモの時に使ってた)

「大規模サイトの構築・運用ノウハウ」(ウノウ株式会社 尾藤さん、グリー株式会社 藤本さん)

  • OSはFedora(ウノウ)、DebianGREE
  • ファイルシステムはext3
  • ハードウェアは同一機種に統一、設定ファイルもできるだけ同じ設定に
    • サーバの構築・アップデート・障害対応に時間をかけない為。
    • ソフトのインストールなんかはaptやらの独自リポジトリで。
  • スケーラビリティ・パフォーマンス対策
    • セッションはDBに保存
    • DB・データ周り
      • 更新系と参照系を分ける
      • 分割しやすくする為、SQLでは出来るだけJOINは使わない
      • Memcacheでキャッシュする
      • RDBMSの使い方を間違ってる気がする」
    • APCやeAcceleratorなどでコードキャッシュ・最適化
  • ネットワーク周り
    • 回線は2回線以上。
    • LVS + mod_proxy_blancer
      • これで高いロードバランサ買わなくていいよ
  • セキュリティ
    • 不要なポートは空けるな
    • ftpとか禁止だ、即座にやめれ
    • sshもパスワード認証とかすんな、公開鍵認証しれ
    • rootでは作業させぬ、sudo。
  • ソース管理はSVN
  • サーバトラブル
    • 近くに住め。
    • メールで起きられるように鍛えろ。
  • アプリのデプロイ
    • rsyncsvn up
    • アプリもパッケージにして配布とかしないの?
      • 稼動サービスやらでサーバ設定が複数になっちゃうからやってない
      • 悩ましい

お金がない人は自社でサーバを構築して、トラブルに対しても精神論でどうにかしないといけないようですなー。サイト運営するには心身の鍛錬からっ!

PHP Framework Update

個人的にはそれほど真新しい事はなく、それぞれのフレームワークの紹介な感じだったかなぁ…。資料はそのうち公開されるだろうから、気になったとこと感想的なところだけ。

symfony(株式会社ディノ 月宮さん)
  • Yahoo!Bookmarkが採用事例
CakePHP(株式会社カサレアル 安藤さん)
Piece Framework(株式会社アイテマン 久保さん)
  • Piece IDEというEclipseベースのIDEを作成中
    • 画面遷移の定義(yaml)がグラフィカルに作れる、よさげ
      • 作成した遷移図を画像でエクスポートできるのかなぁ…?公開されたら調べよう。
Ethna(グリー株式会社 一井さん)
  • 当然だけどGREEが採用事例
  • 「Pieceすごい」
  • ブログが10分でできるのはもういいや。
    • どうせ10分でできた物をそのまま使わないよね。

全体的には、どのFrameworkでもMVC + O/R Mapperあたりのベースの部分は出尽くしたというか、同じような感じになってきてますね。流れとしては「このプラグイン使うと、これが10分で!」とか「デプロイやコードの自動生成とか任せてよ!」とか「開発環境もこっちゃで用意したるわ!」とか、周辺の部分に広がっていく感じ。
それを「工数が減る」と歓迎するか、「どうせ使わないよね、肥大化しすぎだよね」と考えるかは人それぞれかなぁ。

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

これもきっと公開されると思われる資料を見た方がよさそうなので、気になったとこだけ。

  • 「runkit」というYahoo! Incの偉い人の一人がメンテナの「知る人ぞ知る」拡張があるらしい
    • 帰ってきて調べたらめちゃ便利そうだというのがわかった…。知らなかったわ…。
    • PHPプロ!+
  • Yahoo! Japanも基本的にはYahoo! Incと同じサーバ環境
    • APC使ってる
    • 年内にはPHP5系へ移行
  • 開発環境
    • IDEは使わず、vimとかEmacsとか
    • xdebug + WinCacheGrind/KCacheGrind でプロファイリング
    • cvs
    • svnはあんまり使ってない
  • PHP Extension
    • かなり使ってる(PECL、Yahoo!独自含めて)
    • 広告挿入とか
    • Yahoo!内のサービス呼び出しとか
  • テンプレートエンジン
    • Smartyとか使ってない(Yahoo!では非推奨)
      • Yahoo!並の負荷ではオーバーヘッドが無視できない
      • 基本的にはでそのままコードを埋め込み
    • テンプレート管理ツール r3は使ってる(テンプレートエンジンではない)
  • Frameworkについて
    • 今まではFrameworkは使われてきていなかったし、Yahoo!内に共通Frameworkみたいなものは無い。
    • でも、symfonyは導入が増えつつある
      • Yahoo! Bookmark
      • del.icio.us
      • Yahoo! Answers
      • 今後はsymfonyの導入事例が増えてくるんじゃないか?
    • CakePHPは評価中
    • Drupalも評価中、社内では使われている

パネルディスカッション - ビジネス側面から語るPHP

  • パネラー
    • リナックスアカデミー 河江さん(技術者教育の人)
    • 株式会社パソナテック 加藤さん(人材紹介の人)
    • 株式会社IMJモバイル 一條さん(開発の人)
  • モデレータ
    • 楽天株式会社 技術研究所 森さん

行く前から、サブ会場でやるライトニングトークの方が人が集まるんじゃないかと思ってたが、まさか会場入れ替えとなるとは…。

PHPでよかった事は?
  • 河江さん@リナックスアカデミー
    • PHPは教育のニーズがある
    • Javaに比べると簡単、生徒に物づくりの楽しさを感じてもらえやすい
  • 加藤さん@パソナテック
    • PHPは人は集まる
    • プログラマ人口を増やすきっかけになったのでは?(PHPは簡単だから)
      • ただ、ビジネスとして通用する人材かどうかは別
  • 一条さん@IMJモバイル
    • プロジェクトが炎上しそうになったけど、PHPに助けられました
      • 聞いた事を書いて良い内容か判断できないので、自主規制。
      • 助かった要因としては、PHPのHTMLとの親和性の高さと生産性の高さ
      • 仮にJavaで同じことをやっていたら、多分ダメだったと思う
  • 森さん@楽天
    • 楽天では新卒者(営業職含む)にはPHPを教えるようにしている
      • とりあえず動くものが作れる、そこがスタートポイント
PHPの課題
  • 河江さん@リナックスアカデミー
    • PHPは資格試験(認定試験)が弱い
  • 加藤さん@パソナテック
    • スキルを判断する基準がない
    • PHPでこういう事が…」という言語による事ではなく、Webアプリというアウトプットを作る為に必要なスキルセット集合*2
  • 一条さん@IMJモバイル
    • JavaにはSun認定の強力な資格体系がありますよね
    • お手軽すぎる事による弊害
      • Java開発でも当然あるんだけど)テストコードをそのままにして個人情報が漏れちゃうような事があったりとか
PHPは手軽(PHPの課題で話していた事から少し脱線)
  • 一條さん@IMJモバイル
    • 携帯向けサービスでは全部PHPでも良いではないか
    • PHPは言語的にクセは少ないので、Java技術者にPHPをやらせても大抵は大丈夫
      • Java技術者曰く「$はきもちわるい」
他言語との比較
  • 河江さん@リナックスアカデミー
    • 習得スピードは速い
    • Java講習で基礎レベルを終わらせるだけの時間で、LAMP講習ではWebアプリが作れてしまう
      • 動くものが作れるので、参加者は楽しそう
    • 教育がやりやすいのはJavaよりもLAMP
      • ただ、現在はAjaxといった知識も必要なので、そのあたりの要素のカリキュラムも用意したい
  • 加藤さん@パソナテック
    • PHPができる」と言う人のフタを開けてみると全然プロフェッショナルとは言えない事が…
      • そこは他の言語とはやっぱ違う
      • コピペでWebAPIを使うようなものを作るぐらいしかやってないのに、「できます」とか…
20代の若い人にPHP(Web)開発を教えるにはどうしたら…
  • 森さん@楽天
    • 30代〜40代の人はメインフレームの時代から、Internetという物が出てきて、Webアプリという物が…という、Internetが発展している状況に合わせて知識を蓄えてきているが、20代の若い人にはそれがない。
    • 若い人にはどうやって教えたらいいんだろう
  • 河江さん@リナックスアカデミー
    • 基礎から押さえていくしかない…
  • ギャラリー(森さん@楽天がギャラリーに質問して挙手した回答者)
    • なんか「PHPだからいいんじゃね?」と勘違いしてる人が多い…
    • PHPを教えるのではなくて、プログラミングを教えるようにしている
      • 後に「PHPを教えてもらった事って、そういえばなかったですよね」と
    • そもそも教わる側に学ぶ意識がない事には…
      • その意識がない子はスルーで!
  • 加藤さん@パソナテック
    • (学ぶ意識が薄いのは)ゆとり教育の影響なのかなぁ…
    • ユーザと近さや怒られる事で学ぶ事はある
  • 一條さん@IMJモバイル
    • 失敗から学ぶことは大いにある
    • 20代の人がユーザの前に出る事は少ないだろうから、その場合は上司と
    • あとは他人のソースコードを読む事は非常に重要
今まで怒られた事ってあります?
  • 加藤さん@パソナテック
    • 技術者じゃないんで怒られた事は…、でも現場で怒られてる人は見てきた
    • 怒られる人は本質が見えてない人
    • なぜそのようになるのか、なぜなにボウヤになって欲しい
  • 河江さん@リナックスアカデミー
    • 講座で先生に怒られている人もいる
    • 学ぶ姿勢の有無
      • 「自己投資で勉強に来ている人」と「会社に行って来いと言われて来ている人」
  • 一條さん@IMJモバイル
    • 度重なる納期遅れは怒られる
    • モバイル系の案件は要件の確定が遅い事が原因って事もあるけど…
    • 納期が遅れるスキル的な面での要因としては、要件を聞いている時に「技術的なあたり」がつくか否か
      • 何をしないといけないかが判ってないせいで「できます」と言ってしまう
    • 「あたりをつける」スキルを教えるのは難しい…
      • 経験上の勘
      • 前に怒られた経験も生きてくる
技術者の人材価値
  • 加藤さん@パソナテック
    • 必殺技みたいな特化した技術は重要
    • 他の事がダメでも、必殺技を持ってる人は売りやすい
  • 一條さん@IMJモバイル
    • 技術者の価値を高める事はしなければならない
      • 経営陣は技術者の価値は判らない
      • 「このプロジェクトはこんな凄いエンジニアが居たからこそ実現できた」と教えていかないと
最後に技術者へ
  • 河江さん@リナックスアカデミー
    • 時間はないかもしれないけど、勉強してね
  • 加藤さん@パソナテック
    • 必殺技を作る
    • 外部のコミュニティには参加した方が良い
      • 一人で学ぶ事にはどうしても限界がある
      • 情報共有や共感ができる仲間を積極的に作ろう
  • 一條さん@IMJモバイル
    • 物づくりのおもしろさを知って欲しい
      • その事を知る為の道具としてPHPは良い
9/4 23時頃 誤記修正

「一条さん@IMJモバイル」→「一條さん@IMJモバイル」
申し訳ありません…。

*1:ひらがな→ローマ字変換「ほげほげ→hogehoge」とか、英語をカタカナ表記にしてみたりとか

*2:httpとかセキュリティ対策知識とかアーキテクチャとかそういう物