Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

@nifty トピックイット CakePHP勉強会資料

8,240 views

Published on

2008年2月20日(金)に開催されたCakePHP勉強会で発表した@nifty トピックイットの資料です。

Published in: Technology
  • Be the first to comment

@nifty トピックイット CakePHP勉強会資料

  1. 1. 2008年2月20日 ニフティ株式会社 新規ビジネス開発部 寺本 和彦   ソーシャルニュースサービス 「 @nifty  トピックイット」のご説明 
  2. 2. サービスの概要 記事の投稿数では、おそらく「日本最大」?のソーシャルニュースサービスです。 ・2007年4月12日 ローンチ ・月間5000本以上の記事数    ・月間?百万ページビュー http://topic.nifty.com/ 最近、テレビでも紹介されて盛り上がってきました。。。 50000回の投票数
  3. 3. ちょっとした特徴1 活発なコミュニティと、中学生からシニアまで幅広い利用者にアプローチ ソーシャルニュースに 中学生 参戦! 中学1年生も ユーチューブ の時代!? ちょっとびっくりの Digg 並み のポイント数 果たして5桁はいけるのか?
  4. 4. ちょっとした特徴2 iPod touch 版や Wii 版などのデバイスフリー志向 将来的に・・・ 身の回りの あらゆるデバイス でトピックイット (冷蔵庫やスペースシャトルも?) PC版 iPod touch 版 任天堂 Wii 版 モバイル版 Wii Fit で疲れたあとは トピックイット 発表の翌日 制作開始
  5. 5. ちょっとした特徴3 自由度の高いAPIや画期的なコンテンツマッチ型ブログランキングなどの提供 約 30 種類のAPI提供 自分の トピックイットが作れる!? ブログへの集客力アップ間違いなし! コンテンツマッチ + ウェブリング ブログランキングサービス!?
  6. 6. 今後のトピックイット・・・ ・中身で勝負 ・モバイルに注力(モバイル検索) ・デバイスフリー あと、負荷対策がんばります。
  7. 7.           で 1 年使ってみて・負荷 2008年2月20日 株式会社 イー・エージェンシー モバイルソリューション事業部   北村 佳巳
  8. 8. 最初に・・・ ・最初に 10分でソーシャルニュースは作れませんでした。 すみません。
  9. 9. 何故、 cakephp を使ったか 1 ・何故、 cakephp を使ったか 1 [ 前提条件 ]   php4 で高速開発
  10. 10. 何故、 cakephp を使ったか 2 ・何故、 cakephp を使ったか 2 ・ php4 でも使える  -> RHEL4 が php4.1 系のため ・ Active record ・ rails っぽい
  11. 11. 開発の流れ・スケジュール ・開発の流れ   要件は固まっていたので、プロトタイプ作成とかはなく、   一気に構築。 ・スケジュール 200701 中旬 開発スタート    200704 初旬 ローンチ     :    開発自体は高速にできるのだが、サーバ環境や外部認証まわり    といった部分で時間を使った。
  12. 12. サーバ構成 ・ Reverce Proxy 2 台   -> apache2.0 系 ・ app server   2 台   -> php4.1 系 (そろそろ ver あげたい) ・ Master 、 slave のレプリケーション   -> MySQL(innodb)
  13. 13. 開発時に発生した問題点 ・当時、日本語ドキュメントが少なかった -> ソース読めってことで解決 ・コミュニティが英語で交わされていた   ->英語読めってことで解決
  14. 14. 開発時に発生した問題点 (しいて言うなら) ・ブックマークレット作ったとき、うまく動作しないことが・・・    ↓ 原因 CAKE_SECURITY=high    ini_set(‘session.referer_check’, $this->host);    ->セッション ID でリファラチェック。      、、そんなに意味ないのでは・・・?         firefox なら変えられるし。。           ↓     medium に変更
  15. 15. 開発時に発生した問題点 ・ cakephp はよくできてると思います。   ->慣れてしまえば高速開発    最近では、日本語の解説本もある。 [PR] http://www.amazon.co.jp/CakePHP%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E5%AE%89%E8%97%A4-%E7%A5%90%E4%BB%8B/dp/4839924317/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1203432909&sr=8-1 http://www.amazon.co.jp/Fast-CakePHP-LL%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AFBOOKS-%E7%A7%8B%E7%94%B0-%E7%9C%9F%E5%AE%8F/dp/4774133418/ref=sr_1_4?ie=UTF8&s=books&qid=1203432909&sr=8-4
  16. 16. 機能追加とか・・・ 機能追加、拡張は次々と・・・  ・ wii 版  ・ ipod touch 版
  17. 17. だんだんと・・・ 機能追加、拡張は次々と・・・  ・ブログ記事レコメンド機能    ブログのエントリ内容をMecabで形態素解析してTF値とか出してレコメンド の でレコメンド
  18. 18. そして・・・ 機能追加、拡張は次々とできるが、、
  19. 19. 今後のトピックイット・・・ ・中身で勝負 ・モバイルに注力(モバイル検索) ・デバイスフリー あと、負荷対策がんばります。
  20. 20. 負荷対策・・・ 負荷対策・・・がんばります。
  21. 21. ActiveRecord を信用しすぎない ( cakephp に限ったことじゃないし、よく言われてる?ことですが、再度。) ・ Active record するときに注意する  こと  ストレージエンジンやテーブル内容を意識してない  効率的ではない query になりがち  プログラミングは高速でできるが、サイトのレスポンスが  遅くならないように注意する。    ->開発する際に意識してれば何も問題ないですが。
  22. 22. 負荷対策といえば、、 ・ cakephp1.2 の memcached を  試してみた。   compornent http://bakery.cakephp.org/articles/view/memcache-component   wrapper http://bakery.cakephp.org/articles/view/memcache-wrapper-class   query の cache を memcache   memcached 自体は安定?してるし、早くて便利。   php なのに、複数のスレッドをまたいで共有している気分  になれました。   1.2 じゃなくても、 1.1 でもそのまま使えた (vendor) 。
  23. 23. Cakephp の対応できるサイトの規模 ・サイトの規模 トピックイット企画時 (2006 年 11 月くらい ) は、大規模サイトには向いていないって言われてた。   ↓ memcached や DB 分割が簡単?にできちゃうし、サービスにもよるが、設計とチューニング次第で大規模でもOK。 それに、 1.2 はキャッシュ機能がいっぱいあるし、 1.2 に期待しております。
  24. 24. Cakephp の対応できるサイトの規模 ・・・というよりも Cakephp として、大規模なサイトへの対応は、 「キャッシュをうまく使って対処しよう」ってことが前提で 1.2 系は開発されているのでは? +ACL
  25. 25. 今後やりたいこと ・ memcached   query_cache view_cache   session_id ・ ACL ・ DB 分割 ・(とにかく速くできるもの全部)
  26. 26. 今後やりたいこと ・「今後やりたいこと」をトピックイットで やったときは、その結果とかをまた。
  27. 27. 最後に・・ ・開発する際に分かりづらかった点 SQL 発行の際の組み方が分かりづらい。  Where 句のあたりとか、そういう部分を誰かが分かりやすく説明してくれると、、、みんな助かります。
  28. 28. お礼 以上。 ご静聴、 ありがとうございます!!!!

×