SlideShare a Scribd company logo
アシアルでの symfony 導入事例 ~トレイン・トレイン~ ゆどうふ @symfony 勉強会  2008/04/09 Dino Seminer Room
自己紹介 06/02/09 ゆどうふ@ symfony 勉強会
巷の symfony の導入実績 06/02/09 ゆどうふ@ symfony 勉強会
symfony の導入実績 超有名どころ Yahoo! Bookmarks http://bookmarks.yahoo.com/ symfony の採用が一時ニュースに 系列に吸収された del.icio.us も symfony 採用予定 Id:i_ogi さんに色々聞いておけばよかった>< 日本だと Sorcefoge.jp Project Wiki http://sourceforge.jp/projects/sourceforge/wiki/ 今は Wiki のところだけの模様 採用理由とか聞きたいですね 06/02/09 ゆどうふ@ symfony 勉強会
symfony の導入実績 国内外合わせて約 500 サイト Applications Developed With Symfony より http://trac.symfony-project.com/wiki/ApplicationsDevelopedWithSymfony あくまでも「自己申告」の事例数 アシアルで出してるのも申告 してないぐらい (w) なので、 本当はもっとずっと多い 06/02/09 ゆどうふ@ symfony 勉強会
アシアルの symfony 導入事例 鉄道模型のコミュニティサイト 「トレイン・トレイン」の紹介 06/02/09 ゆどうふ@ symfony 勉強会
突然ですが この中に、実は自分は鉄っちゃんなんです! っていう方どれくらいいますか? (* ・ ω ・ ) ノシ ご協力ありがとうございます。 招待いたしますので後で名刺ください ( 笑 06/02/09 ゆどうふ@ symfony 勉強会
トレイン・トレインとは? 鉄道模型が趣味の人が集まる 「鉄道模型コミュニティ」サイト http://traintrain.jp/ 2008 年 3 月 21 日 ローンチ 1か月経ってません 総計で PV 40 万弱 多い日で1日約 2 万 06/02/09 ゆどうふ@ symfony 勉強会
トレイン・トレインの機能と特徴 自分の鉄道模型の製作記 / コレクションが掲載できる 自作の模型について、他の人と語れる 模型画像や、走らせている動画のアップロードも可能 06/02/09 ゆどうふ@ symfony 勉強会
トレイン・トレインの機能と特徴 レイアウトソフト「 Railroader 」と Flash ビューア Railroader 自体は田中 ( うちの社長 ) が昔作ってたソフト。 未だに需要があるらしい 自分の作ったレイアウトを公開できる 06/02/09 ゆどうふ@ symfony 勉強会
symfony 採用の動機 「アシアルが symfony を選んだ理由」ですが。 サービス会社よりも開発会社に身近な理由が多いかも。 一昨年、今後の標準 FW を選定 これまでは自社 FW を利用 軽いので今でもちょくちょく使ってる。 会社の人数が増え始めて、チーム開発を真剣に見直す時期に来ていた 環境は全て PHP5 移行済だったので、純粋に性能で 保守顧客も含め、今は1つしか PHP4 案件がない 06/02/09 ゆどうふ@ symfony 勉強会
条件1:開発が活発である メジャーな方がノウハウを蓄積しやすい。 とはいえメジャーでも Mojavi みたいに衰退されて困る。 この時点で symfony 、 CakePHP 、 ZF 出たての Piece への期待もあった。 -> 一度使ってみた結果「まだ早い」 Ethna は以前一人泣いたので。。。 「 Yahoo! Bookmarks 」で symfony がリード Yahoo からのフィードバックも期待。 06/02/09 ゆどうふ@ symfony 勉強会
条件2:業務利用に適している 圧倒的なドキュメント しかも勝手サイトながら日本語訳があった 英語だけなら止めていたかも。おやぢ組のおかげ! 他2つと比べて圧倒的なコード量と機能数 Cake はまだ当時おもちゃ感がぬぐえなかった。 若干印象先行だった 実際はちゃんと動くものだったけど、 symfony が作りこみ過ぎ 実は CakePHP は社内で使ってる ZF はポリシーやリリース品質の管理に不安を覚えた。 パーツとして使うのも、よほど愛着がないとめんどくさい 06/02/09 ゆどうふ@ symfony 勉強会
開発の流れと中身とごにょごにょ話 06/02/09 ゆどうふ@ symfony 勉強会
サーバ等構成 Web サーバ  1 台 Apache 2.2 系 PHP 5.2.5 しかも Xen 上 DB サーバ (MySQL) マスター 1 台 + スレーブ1台 (backup) 他サービスと共用 テーブル数は 28 まだまだ、こんなもん。 ユーザが増加してるので近日増築予定。 負荷分散の話はまだろくにできません。>< 06/02/09 ゆどうふ@ symfony 勉強会
開発スケジュール 開発期間 2008/01  末~ 2008/03/21 約 2 か月 ( 内、コーディング 1 か月程度 ) 開発人員 2 名 + たまにヘルプ Web サイト自体はほぼ一人で作成 Flash ビューアや動画関連などでもう一人 Web 作った子は昨年4月入社の新人 もう俺よりデキる子ですね>< symfony 導入は全体の開発速度の向上につながった ただし、指導者が居てこそ、ではある。 06/02/09 ゆどうふ@ symfony 勉強会
DB と ORM MySQL + Doctrine を使用 それまで Propel を使用していたが、使いづらいという意見が多かった。 Propel は抽象度が高すぎて SQL と乖離しすぎる SQL 一発でとれるのに何行もクエリを発行することになったり そのくせ複雑なところは生で SQL SQL 脳でやってきた人には、切り替えコストが高い より構文が SQL に近い Doctrine を試験的に採用 06/02/09 ゆどうふ@ symfony 勉強会
DB と ORM Doctrine を採用して、どうなったか? マイページ・・・結局  orz SQL っぽく書けるようになったけど、クエリ数w クエリそのものが汚いのは ORM の宿命 クエリ数はたぶん作る側の問題。。。 正しく使うには、 ORM そのものを高いレベルで理解しないとだめなのはどれも同じですね>< 06/02/09 ゆどうふ@ symfony 勉強会
Doctrine の苦労話とか 日本語ドキュメントがなかった Propel もないけど、さらに情報がない 幸い、趣味?でうちの CTO が深く調べてたので解決 DQL の実装が中途半端すぎる 特に DATE() 関数が使えないのとか泣ける アクセス解析関連を日付ごとにカウントしたいのに。。。 こういうのは結局、生 SQL を書いてる 06/02/09 ゆどうふ@ symfony 勉強会
Doctrine の苦労話とか DQL でエイリアスをきれいに書いても 汚い SQL に作り替えられる。 FooBarBuz fbb  とか書いても  fbb->f に変わってるとか 見た目の問題だけど、いちいちストレス 複雑な DQL を書くとエイリアスの脳内変換がうざい それでも Propel よりは開発しやすかった ( 開発者談 ) この辺は好みの問題もありそう 06/02/09 ゆどうふ@ symfony 勉強会
schema の管理 スキーマの作成には DB Designer 最初は Propel で使える schema を書ける という理由で採用 でも。。。 外部キー参照が落ちるとかいろいろ問題 さらに Doctrine で使えるように変換するのも大変 今は結局手作業になっている。 とはいえ、便利なので継続使用。 schema 周りの管理は symfony の課題になりがち 06/02/09 ゆどうふ@ symfony 勉強会
負荷対策 現在やっていること xcache どちらかいうと実験的に。 詳しいベンチ計測はしていない。 ざっくり調べた感じ、 50% ぐらいの向上にはなっている。 現在の規模ならまだ十分 symfony のテンプレートキャッシュは。。。 実は off 。使ってない。 開発者いわく「忘れてた」。。。ないわー orz 作り変える必要が出るので、要検討 新たに導入するぐらいなら、別の負荷対策を優先する方が? 06/02/09 ゆどうふ@ symfony 勉強会
負荷対策 今やってることと今後の方策 APC の検討 Xcache との比較が必要 それほど差はなさそうなので「次の開発で」というレベルかも id:sotarok が超頑張ってベンチ調査してくれてます>< memcached まだ先かも? 画像類は同一クエリが多いので、効果が高そう。 今後、ユーザ数増加とともにどんどん実行 いろいろ実績が出てきたら、また報告できたらいいかも。 06/02/09 ゆどうふ@ symfony 勉強会
今後のトレイン・トレイン ユーザー同士の交流が活発になるよう、 友達機能などを拡充 そこっ!それなんて S●S とかいわないっ! ショップ情報周りなどの拡充 鉄道模型の購入連携などもできると便利かも Etc… 鉄道模型趣味の人に喜んでもらえるコンテンツを  どんどん追加していきます>< 06/02/09 ゆどうふ@ symfony 勉強会
最後に   ご清聴ありがとうございました。 近くの鉄っちゃんに「トレイン・トレイン」を ぜひよろしく>< http://traintrain.jp/ 06/02/09 ゆどうふ@ symfony 勉強会

More Related Content

Symfony事例紹介

  • 1. アシアルでの symfony 導入事例 ~トレイン・トレイン~ ゆどうふ @symfony 勉強会  2008/04/09 Dino Seminer Room
  • 3. 巷の symfony の導入実績 06/02/09 ゆどうふ@ symfony 勉強会
  • 4. symfony の導入実績 超有名どころ Yahoo! Bookmarks http://bookmarks.yahoo.com/ symfony の採用が一時ニュースに 系列に吸収された del.icio.us も symfony 採用予定 Id:i_ogi さんに色々聞いておけばよかった>< 日本だと Sorcefoge.jp Project Wiki http://sourceforge.jp/projects/sourceforge/wiki/ 今は Wiki のところだけの模様 採用理由とか聞きたいですね 06/02/09 ゆどうふ@ symfony 勉強会
  • 5. symfony の導入実績 国内外合わせて約 500 サイト Applications Developed With Symfony より http://trac.symfony-project.com/wiki/ApplicationsDevelopedWithSymfony あくまでも「自己申告」の事例数 アシアルで出してるのも申告 してないぐらい (w) なので、 本当はもっとずっと多い 06/02/09 ゆどうふ@ symfony 勉強会
  • 6. アシアルの symfony 導入事例 鉄道模型のコミュニティサイト 「トレイン・トレイン」の紹介 06/02/09 ゆどうふ@ symfony 勉強会
  • 7. 突然ですが この中に、実は自分は鉄っちゃんなんです! っていう方どれくらいいますか? (* ・ ω ・ ) ノシ ご協力ありがとうございます。 招待いたしますので後で名刺ください ( 笑 06/02/09 ゆどうふ@ symfony 勉強会
  • 8. トレイン・トレインとは? 鉄道模型が趣味の人が集まる 「鉄道模型コミュニティ」サイト http://traintrain.jp/ 2008 年 3 月 21 日 ローンチ 1か月経ってません 総計で PV 40 万弱 多い日で1日約 2 万 06/02/09 ゆどうふ@ symfony 勉強会
  • 9. トレイン・トレインの機能と特徴 自分の鉄道模型の製作記 / コレクションが掲載できる 自作の模型について、他の人と語れる 模型画像や、走らせている動画のアップロードも可能 06/02/09 ゆどうふ@ symfony 勉強会
  • 10. トレイン・トレインの機能と特徴 レイアウトソフト「 Railroader 」と Flash ビューア Railroader 自体は田中 ( うちの社長 ) が昔作ってたソフト。 未だに需要があるらしい 自分の作ったレイアウトを公開できる 06/02/09 ゆどうふ@ symfony 勉強会
  • 11. symfony 採用の動機 「アシアルが symfony を選んだ理由」ですが。 サービス会社よりも開発会社に身近な理由が多いかも。 一昨年、今後の標準 FW を選定 これまでは自社 FW を利用 軽いので今でもちょくちょく使ってる。 会社の人数が増え始めて、チーム開発を真剣に見直す時期に来ていた 環境は全て PHP5 移行済だったので、純粋に性能で 保守顧客も含め、今は1つしか PHP4 案件がない 06/02/09 ゆどうふ@ symfony 勉強会
  • 12. 条件1:開発が活発である メジャーな方がノウハウを蓄積しやすい。 とはいえメジャーでも Mojavi みたいに衰退されて困る。 この時点で symfony 、 CakePHP 、 ZF 出たての Piece への期待もあった。 -> 一度使ってみた結果「まだ早い」 Ethna は以前一人泣いたので。。。 「 Yahoo! Bookmarks 」で symfony がリード Yahoo からのフィードバックも期待。 06/02/09 ゆどうふ@ symfony 勉強会
  • 13. 条件2:業務利用に適している 圧倒的なドキュメント しかも勝手サイトながら日本語訳があった 英語だけなら止めていたかも。おやぢ組のおかげ! 他2つと比べて圧倒的なコード量と機能数 Cake はまだ当時おもちゃ感がぬぐえなかった。 若干印象先行だった 実際はちゃんと動くものだったけど、 symfony が作りこみ過ぎ 実は CakePHP は社内で使ってる ZF はポリシーやリリース品質の管理に不安を覚えた。 パーツとして使うのも、よほど愛着がないとめんどくさい 06/02/09 ゆどうふ@ symfony 勉強会
  • 15. サーバ等構成 Web サーバ 1 台 Apache 2.2 系 PHP 5.2.5 しかも Xen 上 DB サーバ (MySQL) マスター 1 台 + スレーブ1台 (backup) 他サービスと共用 テーブル数は 28 まだまだ、こんなもん。 ユーザが増加してるので近日増築予定。 負荷分散の話はまだろくにできません。>< 06/02/09 ゆどうふ@ symfony 勉強会
  • 16. 開発スケジュール 開発期間 2008/01 末~ 2008/03/21 約 2 か月 ( 内、コーディング 1 か月程度 ) 開発人員 2 名 + たまにヘルプ Web サイト自体はほぼ一人で作成 Flash ビューアや動画関連などでもう一人 Web 作った子は昨年4月入社の新人 もう俺よりデキる子ですね>< symfony 導入は全体の開発速度の向上につながった ただし、指導者が居てこそ、ではある。 06/02/09 ゆどうふ@ symfony 勉強会
  • 17. DB と ORM MySQL + Doctrine を使用 それまで Propel を使用していたが、使いづらいという意見が多かった。 Propel は抽象度が高すぎて SQL と乖離しすぎる SQL 一発でとれるのに何行もクエリを発行することになったり そのくせ複雑なところは生で SQL SQL 脳でやってきた人には、切り替えコストが高い より構文が SQL に近い Doctrine を試験的に採用 06/02/09 ゆどうふ@ symfony 勉強会
  • 18. DB と ORM Doctrine を採用して、どうなったか? マイページ・・・結局 orz SQL っぽく書けるようになったけど、クエリ数w クエリそのものが汚いのは ORM の宿命 クエリ数はたぶん作る側の問題。。。 正しく使うには、 ORM そのものを高いレベルで理解しないとだめなのはどれも同じですね>< 06/02/09 ゆどうふ@ symfony 勉強会
  • 19. Doctrine の苦労話とか 日本語ドキュメントがなかった Propel もないけど、さらに情報がない 幸い、趣味?でうちの CTO が深く調べてたので解決 DQL の実装が中途半端すぎる 特に DATE() 関数が使えないのとか泣ける アクセス解析関連を日付ごとにカウントしたいのに。。。 こういうのは結局、生 SQL を書いてる 06/02/09 ゆどうふ@ symfony 勉強会
  • 20. Doctrine の苦労話とか DQL でエイリアスをきれいに書いても 汚い SQL に作り替えられる。 FooBarBuz fbb とか書いても fbb->f に変わってるとか 見た目の問題だけど、いちいちストレス 複雑な DQL を書くとエイリアスの脳内変換がうざい それでも Propel よりは開発しやすかった ( 開発者談 ) この辺は好みの問題もありそう 06/02/09 ゆどうふ@ symfony 勉強会
  • 21. schema の管理 スキーマの作成には DB Designer 最初は Propel で使える schema を書ける という理由で採用 でも。。。 外部キー参照が落ちるとかいろいろ問題 さらに Doctrine で使えるように変換するのも大変 今は結局手作業になっている。 とはいえ、便利なので継続使用。 schema 周りの管理は symfony の課題になりがち 06/02/09 ゆどうふ@ symfony 勉強会
  • 22. 負荷対策 現在やっていること xcache どちらかいうと実験的に。 詳しいベンチ計測はしていない。 ざっくり調べた感じ、 50% ぐらいの向上にはなっている。 現在の規模ならまだ十分 symfony のテンプレートキャッシュは。。。 実は off 。使ってない。 開発者いわく「忘れてた」。。。ないわー orz 作り変える必要が出るので、要検討 新たに導入するぐらいなら、別の負荷対策を優先する方が? 06/02/09 ゆどうふ@ symfony 勉強会
  • 23. 負荷対策 今やってることと今後の方策 APC の検討 Xcache との比較が必要 それほど差はなさそうなので「次の開発で」というレベルかも id:sotarok が超頑張ってベンチ調査してくれてます>< memcached まだ先かも? 画像類は同一クエリが多いので、効果が高そう。 今後、ユーザ数増加とともにどんどん実行 いろいろ実績が出てきたら、また報告できたらいいかも。 06/02/09 ゆどうふ@ symfony 勉強会
  • 24. 今後のトレイン・トレイン ユーザー同士の交流が活発になるよう、 友達機能などを拡充 そこっ!それなんて S●S とかいわないっ! ショップ情報周りなどの拡充 鉄道模型の購入連携などもできると便利かも Etc… 鉄道模型趣味の人に喜んでもらえるコンテンツを  どんどん追加していきます>< 06/02/09 ゆどうふ@ symfony 勉強会
  • 25. 最後に ご清聴ありがとうございました。 近くの鉄っちゃんに「トレイン・トレイン」を ぜひよろしく>< http://traintrain.jp/ 06/02/09 ゆどうふ@ symfony 勉強会