クックパッド株式会社 最高技術責任者  橋本健太 [email_address]
<ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><l...
<ul><li>毎日の料理を楽しみにすることで心からの笑顔を増やす </li></ul>
<ul><li>http://cookpad.com </li></ul><ul><li>1998 年オープン </li></ul><ul><li>「毎日の料理を楽しみにすることで心からの笑顔を増やす」ことのみを追求する </li></ul><...
<ul><li>おいしいものができたとき  -  「レシピをのせる」 </li></ul><ul><ul><li>料理レシピを作って整理 </li></ul></ul><ul><ul><li>みんなに公開 </li></ul></ul><ul>...
<ul><li>月間ユーザ数 483 万人 </li></ul><ul><li>月間ページビュー 2.8 億PV </li></ul><ul><li>ユーザ数で世界 8 位 ( rails100 ) </li></ul><ul><li>ページビ...
<ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><l...
<ul><li>2005 年に一度挑戦 </li></ul><ul><li>2007 年に社内ツール、広告配信ツール、データ提供サービス「たべみる」を、 Rails で構築 </li></ul><ul><li>2007 年 11 月にリニューア...
<ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><l...
<ul><li>ユーザに「より高い価値を提供」「し続ける」ため </li></ul><ul><ul><li>より高い価値 </li></ul></ul><ul><ul><ul><li>アジャイルな開発 </li></ul></ul></ul><...
<ul><li>機能より価値 </li></ul><ul><ul><li>仕様への準拠よりもユーザの満足度を重視する手法 </li></ul></ul><ul><ul><ul><li>変化するフィードバックに素早く対応することで価値を高める <...
<ul><li>2006 年リニューアル時のコードは、機能追加などにより、混沌状態に </li></ul><ul><li>リファクタリングし続けられる状態を保つことが大事 </li></ul><ul><ul><li>MVCフレームワーク </l...
<ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><l...
<ul><li>開発の原則 </li></ul><ul><li>開発基盤 </li></ul><ul><li>DBのレプリケーション </li></ul><ul><li>レシピ検索 </li></ul><ul><li>キャッシュへの対処 </l...
<ul><li>2つの原則 </li></ul><ul><ul><li>Rail にのる </li></ul></ul><ul><ul><ul><li>なるべく、 Rails に用意されている機能で解決する </li></ul></ul></u...
<ul><li>プログラマは、全員 Mac を使用 </li></ul><ul><li>Emacs </li></ul><ul><ul><li>rails.el </li></ul></ul><ul><li>Subversion  と  tra...
<ul><li>マスターとスレーブの切り替えには acts_as_readonlyable を使用 </li></ul><ul><li>データ更新後の SELECT は、マスターから </li></ul>
<ul><li>Tritton を使用(未来検索ブラジル) </li></ul><ul><ul><li>MySQLを拡張しているので、テーブルをジョインできる </li></ul></ul><ul><ul><li>2インデックス </li></...
<ul><li>ページキャッシュをしようとした場合の問題 </li></ul><ul><ul><li>ログイン情報による動的な変化 </li></ul></ul><ul><ul><ul><li>「○○さんようこそ」 </li></ul></ul...
<ul><li>一部のユーザは自分専用の URL を持つ </li></ul><ul><ul><li>http://cookpad.com/kem </li></ul></ul><ul><li>routes.rb </li></ul><ul><...
<ul><li>「○月○日○時~○時のみ公開」などの場合 </li></ul><ul><li>すべてのページで、任意の日付を指定して、プレビューできる。 </li></ul><ul><li>Time.now  を上書き </li></ul><u...
<ul><li>MySQL を使用 </li></ul><ul><li>controller, action を同時に書き込むことにより、後の集計を楽に </li></ul>
<ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><l...
<ul><li>エンジニア5人で、リニューアル達成 </li></ul><ul><ul><li>PC向け </li></ul></ul><ul><ul><li>モバイル </li></ul></ul><ul><ul><li>社内システム </l...
<ul><li>保守性 </li></ul><ul><ul><li>保守するコードが減少 </li></ul></ul><ul><li>可読性 </li></ul><ul><ul><li>再利用しやすくなる </li></ul></ul><ul...
<ul><li>楽しい </li></ul><ul><ul><li>Ruby  開発者たちのテーマは「愛」 </li></ul></ul><ul><ul><ul><li>楽しくプログラミングできるようにしようというこだわり </li></ul>...
 
<ul><li>これからもクックパッドは </li></ul><ul><li>「 毎日の料理を楽しみにすることで心からの笑顔を増やす 」 </li></ul><ul><li>ためのサービスを作り続けていきます </li></ul>
 
<ul><li>クックパッドでは </li></ul>
<ul><li>500万人の「料理を楽しく」してくれるプログラマ </li></ul>
<ul><li>10億超のPVと未来の技術を活用していくエンジニア </li></ul>
<ul><li>を、大募集しています! </li></ul>
<ul><li>ご静聴ありがとうございました </li></ul><ul><li>今後ともよろしくおねがいいたします </li></ul><ul><li>クックパッド開発者ブログ </li></ul><ul><li>http://techlif...
Upcoming SlideShare
Loading in...5
×

クックパッドのRailsリニューアル

8,876

Published on

カカクコム&クックパッド共催・勉強会

Published in: Technology, Design
0 Comments
21 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,876
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
21
Embeds 0
No embeds

No notes for slide

クックパッドのRailsリニューアル

  1. 1. クックパッド株式会社 最高技術責任者 橋本健太 [email_address]
  2. 2. <ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><li>Rails で何が変わったか? </li></ul>
  3. 3. <ul><li>毎日の料理を楽しみにすることで心からの笑顔を増やす </li></ul>
  4. 4. <ul><li>http://cookpad.com </li></ul><ul><li>1998 年オープン </li></ul><ul><li>「毎日の料理を楽しみにすることで心からの笑顔を増やす」ことのみを追求する </li></ul><ul><ul><li>世界で一番!生活の役に立つサイト作り </li></ul></ul>
  5. 5. <ul><li>おいしいものができたとき - 「レシピをのせる」 </li></ul><ul><ul><li>料理レシピを作って整理 </li></ul></ul><ul><ul><li>みんなに公開 </li></ul></ul><ul><li>おいしいものが食べたいとき - 「レシピをさがす」 </li></ul><ul><ul><li>公開されている 42 万品のレシピから今日食べたい物を決める </li></ul></ul><ul><ul><li>作った写真をレシピ作者に送ることも </li></ul></ul>
  6. 6. <ul><li>月間ユーザ数 483 万人 </li></ul><ul><li>月間ページビュー 2.8 億PV </li></ul><ul><li>ユーザ数で世界 8 位 ( rails100 ) </li></ul><ul><li>ページビューでは世界 2 位の Rails サイト( alexa ) </li></ul>
  7. 7. <ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><li>Rails で何が変わったか? </li></ul>
  8. 8. <ul><li>2005 年に一度挑戦 </li></ul><ul><li>2007 年に社内ツール、広告配信ツール、データ提供サービス「たべみる」を、 Rails で構築 </li></ul><ul><li>2007 年 11 月にリニューアル開発開始 </li></ul><ul><ul><li>2007 年に「食べログ」さんの Rails リニューアル成功を聞き相談 </li></ul></ul><ul><li>2008 年 6 月 3 日「モバれぴ」リニューアル </li></ul><ul><li>2008 年 7 月 12 日完全リニューアル </li></ul><ul><ul><li>3 度の切り戻しを経て </li></ul></ul><ul><ul><li>Rails 化 </li></ul></ul><ul><ul><li>サイトリニューアル </li></ul></ul><ul><ul><li>データスキーマ変更 </li></ul></ul><ul><ul><li>インフラをすべて入れ替え </li></ul></ul>
  9. 9. <ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><li>Rails で何が変わったか? </li></ul>
  10. 10. <ul><li>ユーザに「より高い価値を提供」「し続ける」ため </li></ul><ul><ul><li>より高い価値 </li></ul></ul><ul><ul><ul><li>アジャイルな開発 </li></ul></ul></ul><ul><ul><li>提供し続ける </li></ul></ul><ul><ul><ul><li>コードの寿命 </li></ul></ul></ul>
  11. 11. <ul><li>機能より価値 </li></ul><ul><ul><li>仕様への準拠よりもユーザの満足度を重視する手法 </li></ul></ul><ul><ul><ul><li>変化するフィードバックに素早く対応することで価値を高める </li></ul></ul></ul><ul><li>Rails は、アジャイル開発のためのフレームワーク </li></ul>
  12. 12. <ul><li>2006 年リニューアル時のコードは、機能追加などにより、混沌状態に </li></ul><ul><li>リファクタリングし続けられる状態を保つことが大事 </li></ul><ul><ul><li>MVCフレームワーク </li></ul></ul><ul><ul><li>DRY原則 </li></ul></ul><ul><ul><li>テスト完備 </li></ul></ul>
  13. 13. <ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><li>Rails で何が変わったか? </li></ul>
  14. 14. <ul><li>開発の原則 </li></ul><ul><li>開発基盤 </li></ul><ul><li>DBのレプリケーション </li></ul><ul><li>レシピ検索 </li></ul><ul><li>キャッシュへの対処 </li></ul><ul><li>ユーザ専用URL </li></ul><ul><li>プレビュー機能 </li></ul><ul><li>アクセスログ </li></ul>
  15. 15. <ul><li>2つの原則 </li></ul><ul><ul><li>Rail にのる </li></ul></ul><ul><ul><ul><li>なるべく、 Rails に用意されている機能で解決する </li></ul></ul></ul><ul><ul><li>リファクタリングし続けられる状態を保つ </li></ul></ul><ul><ul><ul><li>DRY違反をしない </li></ul></ul></ul><ul><ul><ul><li>テストを書く </li></ul></ul></ul><ul><ul><ul><li>成長の速度を維持するため </li></ul></ul></ul>
  16. 16. <ul><li>プログラマは、全員 Mac を使用 </li></ul><ul><li>Emacs </li></ul><ul><ul><li>rails.el </li></ul></ul><ul><li>Subversion と trac </li></ul><ul><li>Shinjiko </li></ul><ul><ul><li>Mondorian クローンのコードレビューシステム </li></ul></ul>
  17. 17. <ul><li>マスターとスレーブの切り替えには acts_as_readonlyable を使用 </li></ul><ul><li>データ更新後の SELECT は、マスターから </li></ul>
  18. 18. <ul><li>Tritton を使用(未来検索ブラジル) </li></ul><ul><ul><li>MySQLを拡張しているので、テーブルをジョインできる </li></ul></ul><ul><ul><li>2インデックス </li></ul></ul><ul><ul><li>インデックスを貼ったテーブルのファイルをそのまま各スレーブDBにコピー </li></ul></ul>
  19. 19. <ul><li>ページキャッシュをしようとした場合の問題 </li></ul><ul><ul><li>ログイン情報による動的な変化 </li></ul></ul><ul><ul><ul><li>「○○さんようこそ」 </li></ul></ul></ul><ul><ul><li>アクセスログ </li></ul></ul><ul><ul><li>広告配信 </li></ul></ul><ul><li>この3つについて、 Ajax の1リクエストで処理 </li></ul>
  20. 20. <ul><li>一部のユーザは自分専用の URL を持つ </li></ul><ul><ul><li>http://cookpad.com/kem </li></ul></ul><ul><li>routes.rb </li></ul><ul><ul><li>全てのコントローラ名を検索 </li></ul></ul><ul><ul><li>一致しない場合に専用のコントローラに渡している。 </li></ul></ul>
  21. 21. <ul><li>「○月○日○時~○時のみ公開」などの場合 </li></ul><ul><li>すべてのページで、任意の日付を指定して、プレビューできる。 </li></ul><ul><li>Time.now を上書き </li></ul><ul><ul><li>http://cookpad.com/?current_time=2008-11-01 </li></ul></ul><ul><ul><li>アクセス制限あり </li></ul></ul>
  22. 22. <ul><li>MySQL を使用 </li></ul><ul><li>controller, action を同時に書き込むことにより、後の集計を楽に </li></ul>
  23. 23. <ul><li>クックパッドとは? </li></ul><ul><li>Rails リニューアルの経緯 </li></ul><ul><li>なぜ Rails ? </li></ul><ul><li>開発ノウハウ </li></ul><ul><li>Rails で何が変わったか? </li></ul>
  24. 24. <ul><li>エンジニア5人で、リニューアル達成 </li></ul><ul><ul><li>PC向け </li></ul></ul><ul><ul><li>モバイル </li></ul></ul><ul><ul><li>社内システム </li></ul></ul><ul><ul><li>広告システム </li></ul></ul><ul><ul><li>データスキーマ変更とデータ移植 </li></ul></ul><ul><ul><li>インフラ </li></ul></ul>
  25. 25. <ul><li>保守性 </li></ul><ul><ul><li>保守するコードが減少 </li></ul></ul><ul><li>可読性 </li></ul><ul><ul><li>再利用しやすくなる </li></ul></ul><ul><li>拡張性 </li></ul>
  26. 26. <ul><li>楽しい </li></ul><ul><ul><li>Ruby 開発者たちのテーマは「愛」 </li></ul></ul><ul><ul><ul><li>楽しくプログラミングできるようにしようというこだわり </li></ul></ul></ul><ul><ul><li>使う人のことを考えたものづくり ⇒ おもてなしの心 </li></ul></ul><ul><ul><li>おもてなしの心をもったツールで、 </li></ul></ul><ul><ul><li>おもてなしの心をもったサービスを作れる </li></ul></ul><ul><ul><li>同じようにおもてなしの心を持ったOSSの開発者たちの資産も活用できる! </li></ul></ul>
  27. 28. <ul><li>これからもクックパッドは </li></ul><ul><li>「 毎日の料理を楽しみにすることで心からの笑顔を増やす 」 </li></ul><ul><li>ためのサービスを作り続けていきます </li></ul>
  28. 30. <ul><li>クックパッドでは </li></ul>
  29. 31. <ul><li>500万人の「料理を楽しく」してくれるプログラマ </li></ul>
  30. 32. <ul><li>10億超のPVと未来の技術を活用していくエンジニア </li></ul>
  31. 33. <ul><li>を、大募集しています! </li></ul>
  32. 34. <ul><li>ご静聴ありがとうございました </li></ul><ul><li>今後ともよろしくおねがいいたします </li></ul><ul><li>クックパッド開発者ブログ </li></ul><ul><li>http://techlife.cookpad.com </li></ul>

×