Your SlideShare is downloading. ×

Symfony事例紹介

3,811

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,811
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. アシアルでの symfony 導入事例 ~トレイン・トレイン~ ゆどうふ @symfony 勉強会  2008/04/09 Dino Seminer Room
  • 2. 自己紹介 06/02/09 ゆどうふ@ symfony 勉強会
  • 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 勉強会
  • 14. 開発の流れと中身とごにょごにょ話 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 勉強会

×