Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How we cook cookpad.com 2016
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yoshiori SHOJI
August 26, 2016
Technology
30
9k
How we cook cookpad.com 2016
http://cedec.cesa.or.jp/2016/session/PRD/11836.html
Yoshiori SHOJI
August 26, 2016
Tweet
Share
More Decks by Yoshiori SHOJI
See All by Yoshiori SHOJI
なぜThrottleではなくDebounceだったのか? 700並列リクエストと戦うサーバーサイド実装のすべて
yoshiori
13
6.8k
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
2
960
ソートできるUUID v7をJavaで使うときの話
yoshiori
8
7.9k
Go Down Rockin'
yoshiori
31
17k
テストデータを貯めて感じたこと
yoshiori
12
4.4k
エンジニアリング x US 海外とのコラボレーション
yoshiori
3
2.2k
未完成な技術と歩む道のりでの 試行錯誤
yoshiori
0
210
DevOps, Immutable Infrastructure, Microservices and Chaos Engineering
yoshiori
13
2.5k
Change the recipe's world
yoshiori
3
1.5k
Other Decks in Technology
See All in Technology
器用貧乏が強みになるまで ~「なんでもやる」が導いたエンジニアとしての現在地~
kakehashi
PRO
5
600
【SLO】"多様な期待値" と向き合ってみた
z63d
2
190
Snowflake Night #2 LT
taromatsui_cccmkhd
0
240
社内ワークショップで終わらせない 業務改善AIエージェント開発
lycorptech_jp
PRO
1
390
男(監査)はつらいよ - Policy as CodeからAIエージェントへ
ken5scal
3
540
プロダクト開発の品質を守るAIコードレビュー:事例に見る導入ポイント
moongift
PRO
1
520
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
180
Claude Codeと駆け抜ける 情報収集と実践録
sontixyou
2
1.2k
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.8k
[続・営業向け 誰でも話せるOCI セールストーク] AWSよりOCIの優位性が分からない編(2026年2月20日開催)
oracle4engineer
PRO
0
130
「静的解析」だけで終わらせない。 SonarQube の最新機能 × AIで エンジニアの開発生産性を本気で上げる方法
xibuka
2
320
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
1
1k
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
62
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
130
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
How to make the Groovebox
asonas
2
2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
230
Test your architecture with Archunit
thirion
1
2.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
750
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
95
Art, The Web, and Tiny UX
lynnandtonic
304
21k
How to Ace a Technical Interview
jacobian
281
24k
Transcript
何故 クックパッドの サービス開発の進化は 止まらないのか 庄司 嘉織 ∠
庄司嘉織 yoshiori 2001 組み込み系 プログラマ 2002 Borland Conference Tokyo で発表
2003 SI へ転職
2007 Java-ja コミュニティ立ち上げ 2009 ドワンゴへ転職 Web+DB PRESS で特集1 執筆 2011
ニコニコ静画 (電子書籍) リリース 2012 クックパッド へ転職
2014 Developers Summit で発表(ベストスピーカー) Developers Summit 関西 で基調講演 2016 CEDECで発表
イマココ ∠
クックパッドについて 2,450,000 cooking recipes 61,090,000 monthly unique visitors 1,850,000 PS
user
世界のクックパッド
13 languages 55 countries
None
世界一
世界一巨大な モノリシック Rails サイトでもある (かも知れない) https://speakerdeck.com/a_matsuda/the-recipe-for-the-worlds-largest-rails-monolith
rake stats >
なぜ Ǹ Ruby なのか スクリプト言語としては早い方 Ȑ 多分 Java や ASP
にすると サーバ台数半分くらいに出来る
コンピュータ資源を使い切りたい Ȑ 素早く価値を届けたい サーバコストを安くしたい 何を優先するか
素早く価値を届けたい コレは資源の有効活用や サーバコスト削減の努力を 怠っているわけではありません。 素早く価値を届けることを最優先事項とし、 それを最大限活かせる形で コスト削減などを 日々努力しています。
開発 テスト デプロイ
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
開発環境には 本番のデータが 常にレプリ されている http://techlife.cookpad.com/entry/2014/10/03/110806
ダミーデータやテストデータでは サービスの価値はわからない データが 大量なときに 遅くなるなども 発見
開発の基本的な流れ 開発用ブランチを切る 追加修正をしコミット ∠ ∠
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠
レビュー対象 リリース対象となるブランチにマージされる コードはすべてコードレビューされる必要が ある。ただし、簡単な文言修正や緊急度の 高いものはテストが通ればマージして良い。 レビュー時 必ず返信がほしい、もしくは修正してもらい たいものは [MUST] をつける。逆に今は修
正しなくていいが次に弄るときは気にして おいてほしいことのような気軽なものには [nits][IMO]などをつける レビュー相手 他のチームとの連携や、専門分野外なの で識者にレビューしてもらいたいときはその 人達にも mention すること。 ȑ マージ LGTM を貰ったら自身でマージする。 また [MUST] が付いていない修正箇所は レビュー相手に再度確認を求める義務は なく自身の裁量で修正、マージして良い。
機械的にチェックできるのもは 機械にチェックさせる
iOS, Android は dokumi 使って チェック cookpad/dokumi
DeployGate などへの 自動アップロードにも対応 cookpad/dokumi 実機ですぐ チェックできる デザイナや ディレクタも
もちろん Pull Request 毎に CI も通す
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
2,000+ 20,000+ FILES EXAMPLES ̓ MINITS cookpad/rrrspec 分散テスト実行システム
Pull Request を作成し レビューしてもらう リリースブランチに マージ CI でチェック ∠ ∠
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
sorah/mamiya 150+ hosts 13 sec 高速デプロイシステム Ȑ Ȑ Ȑ Ȑ
Ȑ Ȑ Ȑ Ȑ
デプロイは開発者自身で行う 業務時間中のみデプロイ出来る デプロイはチャットでボットに言うだけ ロールバックもボットに言うだけ
本番デプロイ CI が通ると Staging に 自動的にデプロイされる ので動作確認 ∠ ∠
90+ 毎週約 90 個の Pull Request が 取り込まれている *クックパッド本体のみの数字です
30+ 課金や認証、 ユーザーサービスなど 30 以上の アプリケーションが 動いている
10+ 毎日 10 回以上 デプロイされている *クックパッド本体のみの数字です
「デプロイしたら終わり」ではない
スタッフだけ、 特定のユーザーにだけ 開発中の機能を 簡単に 公開できる cookpad/chanko 安全に簡単に
ユーザーさんが ご意見、ご感想を書くためのフォームを サービスの奥に隠すのではなく すぐに書ける場所に置く フォームへの投稿は 専用のチャンネルなどに流すのではなく、 常に眼に入るように サービス担当者が 普段から使っているチャンネルに流す
素早く価値を届けたい
2 年半前、発表した時は dokumi も rrrspec も mamiya も無かったし チャットでデプロイも 出来なかった
進化する 文化
情報共有 Blog と Wiki の機能を持った社内ツールがある。 Wiki だけでなく Blog があるのでストックスべき情 報とフロー情報を分けて書ける。それが別のサービ
スとしてあるのではなく、同じ所にあるため全員そ れを見れば良いし誰でも自分の意見を発信できる
全社的に 1Password が 導入された
意見交換 提案は最近は github/issues で行われる。議論と して追いやすく、後から経緯を見ることもできる。 チャットで話し始めたあとに issue に移行する場合 もある
社長も創業 者もアカウント 持ってるし 使っている
雑 ɔ http://techlife.cookpad.com/entry/2015/03/25/202709 決して低品質な仕事をしたり、誰かに迷惑をかけた りすることを指しているわけではありません。日頃か ら発言のハードルが低く、気軽に意見できることが 重要なのです。
zatsu リポジトリに 雑に issue を立て ていく
昼飯や 飲みに行った時の 貸し借りも
行動する ユーザーのため、会社のために正しいと思ったら 自分の意志で行動出来る。 怒る人は居ないし、助言してくれたり助けてくれる。 賛同したら一緒に動いてくれる。 Ŏ
Tech ブログ英語版 作ったぜ!と言ったら いろいろな人が 書き出している
社外のエンジニアにも貢献すること OSS 活動、執筆や講演などの社外への貢献も評価 の軸の1つです。 そういったことが許されているとかのレベルではなく 会社がそれを望んでいます。
今日ご紹介した 以外にも 多数
オープンである
平等である Ŏ ɔ
素早く価値を届けたい
–Grace Hopper http://en.wikiquote.org/wiki/Grace_Hopper “It's easier to ask forgiveness than it
is to get permission.”
None
None