28
Copyright© 2008 NIFTY Corporation. 株株株株株株 株株株株株株株 Strictly Confidential 株株 株株 株 株 2008220 株株株株株株株株 株株株株株株株株株 株株 株株 株株株株株株株株株株株株株 @nifty 株株株株株株株 株株株株

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

2008年2月20日ニフティ株式会社

新規ビジネス開発部 寺本 和彦  

ソーシャルニュースサービス「 @nifty  トピックイット」のご説明 

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialサービスの概要

記事の投稿数では、おそらく「日本最大」?のソーシャルニュースサービスです。

・2007年4月12日 ローンチ

・月間5000本以上の記事数  

・月間?百万ページビュー

http://topic.nifty.com/最近、テレビでも紹介されて盛り上がってきまし

た。。。

50000回の投票数

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialちょっとした特徴1

活発なコミュニティと、中学生からシニアまで幅広い利用者にアプローチ

ソーシャルニュースに中学生参戦!中学1年生もユーチューブの時代!?

ちょっとびっくりの Digg 並みのポイント数果たして5桁はいけるのか?

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialちょっとした特徴2

iPod touch 版や Wii 版などのデバイスフリー志向

将来的に・・・身の回りのあらゆるデバイスでトピックイット(冷蔵庫やスペースシャトルも?)

PC版

iPod touch 版

任天堂 Wii 版モバイル版

Wii Fit で疲れたあとは

トピックイット

発表の翌日制作開始

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialちょっとした特徴3

自由度の高いAPIや画期的なコンテンツマッチ型ブログランキングなどの提供

約30種類のAPI提供自分のトピックイットが作れる!?

ブログへの集客力アップ間違いなし!コンテンツマッチ + ウェブリング

ブログランキングサービス!?

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential今後のトピックイット・・・

・中身で勝負

・モバイルに注力(モバイル検索)

・デバイスフリー

あと、負荷対策がんばります。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

          で

1 年使ってみて・負荷

2008年2月20日株式会社 イー・エージェンシー

モバイルソリューション事業部   北村 佳巳

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential最初に・・・

・最初に

10分でソーシャルニュースは作れませんでした。

すみません。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

何故、 cakephp を使ったか 1

・何故、 cakephp を使ったか 1

[ 前提条件 ]

  php4 で高速開発

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

何故、 cakephp を使ったか 2

・何故、 cakephp を使ったか 2

・ php4 でも使える → RHEL4 が php4.1 系のため

・ Active record

・ rails っぽい

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential開発の流れ・スケジュール

・開発の流れ 要件は固まっていたので、プロトタイプ作成とかはなく、  一気に構築。

・スケジュール 200701 中旬 開発スタート   200704 初旬 ローンチ    :   開発自体は高速にできるのだが、サーバ環境や外部認証まわり   といった部分で時間を使った。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialサーバ構成

・ Reverce Proxy 2 台 → apache2.0 系

・ app server   2 台 → php4.1 系(そろそろ ver あげたい)

・ Master 、 slave のレプリケーション → MySQL(innodb)

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential開発時に発生した問題点

・当時、日本語ドキュメントが少なかった → ソース読めってことで解決

・コミュニティが英語で交わされていた  →英語読めってことで解決

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential開発時に発生した問題点 (しいて言うなら)

・ブックマークレット作ったとき、うまく動作しないことが・・・

   ↓ 原因

CAKE_SECURITY=high   ini_set(‘session.referer_check’, $this->host);   →セッション ID でリファラチェック。     、、そんなに意味ないのでは・・・?        firefox なら変えられるし。。          ↓    medium に変更

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential開発時に発生した問題点

・ 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

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential機能追加とか・・・

機能追加、拡張は次々と・・・

 ・ wii 版 ・ ipod touch 版

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialだんだんと・・・

機能追加、拡張は次々と・・・ ・ブログ記事レコメンド機能   ブログのエントリ内容をMecabで形態素解析してTF値とか出してレコメンド

の でレコメンド

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialそして・・・

機能追加、拡張は次々とできるが、、

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential今後のトピックイット・・・

・中身で勝負

・モバイルに注力(モバイル検索)

・デバイスフリー

あと、負荷対策がんばります。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential負荷対策・・・

負荷対策・・・がんばります。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

ActiveRecord を信用しすぎない

( cakephp に限ったことじゃないし、よく言われてる?ことですが、再度。)

・ Active record するときに注意する  こと

 ストレージエンジンやテーブル内容を意識してない 効率的ではない query になりがち

 プログラミングは高速でできるが、サイトのレスポンスが 遅くならないように注意する。

   →開発する際に意識してれば何も問題ないですが。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

負荷対策といえば、、

・ 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) 。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

Cakephp の対応できるサイトの規模

・サイトの規模

トピックイット企画時 (2006年 11月くらい ) は、大規模サイトには向いていないって言われてた。  ↓memcached や DB分割が簡単?にできちゃうし、サービスにもよるが、設計とチューニング次第で大規模でもOK。

それに、 1.2 はキャッシュ機能がいっぱいあるし、1.2 に期待しております。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential

Cakephp の対応できるサイトの規模

・・・というよりも

Cakephp として、大規模なサイトへの対応は、「キャッシュをうまく使って対処しよう」ってことが前提で 1.2 系は開発されているのでは?

+ACL

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential今後やりたいこと

・ memcached  query_cache view_cache  session_id

・ ACL

・ DB分割

・(とにかく速くできるもの全部)

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential今後やりたいこと

・「今後やりたいこと」をトピックイットでやったときは、その結果とかをまた。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidential最後に・・

・開発する際に分かりづらかった点

SQL 発行の際の組み方が分かりづらい。  Where句のあたりとか、そういう部分を誰かが分かりやすく説明してくれると、、、みんな助かります。

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

Copyright© 2008 NIFTY Corporation.  株式会社イー・エージェンシー

Strictly Confidentialお礼

以上。

ご静聴、

ありがとうございます!!!!