クックパッドがどのようにMicroservicesしてきたか/How Cookpad shifts to Microservices
こんにちは、投稿開発部の森川 (@morishin127) です。クックパッド、お料理アルバム、みんなのお弁当の iOS アプリの開発等に携わっています。 クックパッドでの開発は GitHub Enterprise 上で行われており、書いたコードをプロダクトに取り込む前には基本的に第三者のコードレビューが必須です。コードレビューはプロダクトの品質向上に貢献していますが、往々にして結構な時間と労力がかかるものです。Pull-Request を出してレビューをしてもらい指摘の修正を繰り返していると、場合によってはマージに数日〜1週間ほどかかってしまうこともあります。自分の開発速度を速めるため、また周りのエンジニアの開発速度を下げないためにレビューしやすい Pull-Request を出すことは重要です。この記事ではレビューしやすい Pull-Request のために心がけていることを紹介したい
こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基本のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに
こんにちは、クックパッド料理教室の京和です。 管理画面はほとんどのウェブサービスに存在し、ユーザサポートやサービスの状況・KPIなどを確認するために、スタッフが毎日利用するとても重要なものです。にも関わらず、新規サービスでは人員が不足していることから、ついおざなりなデザインや実装になりがちなのではないでしょうか。 今回はクックパッド料理教室で採用している、RailsのMountable EngineとBootstrapのデザインテンプレートを使った、見栄えがよくメンテナンスしやすい管理画面を短期間で実装する方法についてご紹介します。 Mountable Engineとは Mountable EngineはRailsアプリケーション上で動く、ミニRailsアプリケーションのようなものです。 ミニと書きましたが、Railsアプリケーション(Rails::Application)はRails::
ホリデー事業室の内藤です。 ホリデー事業室は昨年の4月に発足した部署で、Holiday(https://haveagood.holiday)という新規サービスの開発を行っています。 Holiday とは、クックパッドが長年取り組んでいる「毎日の料理を楽しみにする」分野からは少しだけ離れ、「いつもの休日を楽しくすることで人生を豊かにする」ことを目指したサービスです。 例えばこちらのおでかけプランのように、「〇〇に行くならここも行ったほうがいいよ」や「〇〇を散策するならこのコースだよね」など、おでかけのレシピを投稿したり探すことができるようになっています。 今回は、全文検索エンジン Elasticsearch を使って、全文検索と位置情報を絡めた検索についてお話したいと思います。 本稿で説明する内容は、実際に Holiday の中でも応用を加えた形で使われています。 Holiday では、複数
こんにちは、技術部モバイル基盤グループの @slightair です。 今回は、クックパッドのモバイルアプリをどのような流れで開発しているか説明したいと思います。 この記事では技術的な話ではなく、どのようにして、どのようなことを考えて僕らがモバイルアプリを開発しているかに触れたいと思います。 開発体制 クックパッドにはモバイルアプリを専門で開発するようなチームはありません。 必要に応じて、誰でもモバイルアプリ開発に取り組みます。 機能追加・修正を行ったらリポジトリにプルリクエストを送ります。 プルリクエストが来たら、アプリ開発を行うエンジニア同士でレビューします。 様々な修正をひとつのバージョンにまとめるのは、僕が所属する技術部と後述するリリースマネージャーで行います。 リリースマネージャー バージョンごとに、そのリリースの責任をもつリリースマネージャーをひとり選びます。 リリースマネージ
はじめまして、技術部の西岡です。 普段の業務では社内システムやサービス開発をメインに行っています。 今年の6月に入社して以来、ひたすら何かを作っているのですが、クックパッドでは自分のやりたいことをベースに業務を決めることができるので、日々、楽しい開発ライフを送れています。 さて、クックパッドには様々な社内システムがあるのですが、その内の1つに全社員の目標を管理できるシステムがあります。このシステムでは、目標と共に顔写真や得意なことを設定する仕組みになっているため、普段あまり関わりのない人が、どのような業務を行っているのかをざっくり知ることが出来ます。 このシステムは私が開発したのですが、開発する際に少し余裕があったことと、個人的に興味があったことから、iPhoneのSafariからも閲覧できるようにしてみました。 残念ながら肝心のシステム内部の話はあまり紹介できないのですが、対応する際に調
開発コンテスト24とは、午前9時にテーマが発表されてから24時間以内 という制限のもと コンセプトを決め デザインを定め 実装を完了する までをこなす、開発のトライアスロンとでも言うべきイベントです! 2010年から毎年開催されてきた開発コンテスト24ですが、今年は10月18日(土)の開催となります。 詳細はこちら (「第5回 開発コンテスト24」開催のお知らせ) をご覧ください。 今年のテーマはリンク先のページで10月18日 (土) の午前9時に発表されます。 作業スペースとしてクックパッドのラウンジを開放します! 10月18日 (土) 8時30分〜17時30分の間、クックパッド本社 (渋谷区恵比寿) のラウンジを作業スペースとして開放します。 地図 当日はクックパッド社員が手作りランチでおもてなしします。ぜひともご利用ください! なおラウンジ利用の申し込みの期限は10/10 (金) 1
技術部の中村です。 この度、クックパッド社員のこれまでの発表資料を開発者ブログにまとめて掲載することになりました。フレームワーク、デザイン、開発、運用フローなど、クックパッドでの開発における技術的知見が数多く紹介されています。 http://techlife.cookpad.com/presentations クックパッドは、多くのオープンソースプロジェクトに支えられながらここまで成長してきました。社内ライブラリの公開やオープンソースプロジェクトへの参画だけに留まらず、多くのイベントで発表を行い、我々の得た知識を還元していくことで、今後もコミュニティに対してより貢献していきたいと考えています。 なお、掲載している発表資料は下記のGitHubレポジトリにて管理されています。興味のある方はこちらもご覧ください。 https://github.com/cookpad/presentations
こんにちは、クックパッドのすみです。去る4/16,17に京都で「クックパッドの裏側見せますvol.2&vol.3」を開催いたしました。 当日お越しくださった皆さま、Ustreamをご覧くださった皆さま、誠にありがとうございました! お話させて頂いたエンジニアのうち2名の資料を公開いたしますので、是非ご覧くださいませ。 ・勝間亮/アグレッシブなクラウドの使い方 [slideshare id=3827098&doc=engineer-event-100417-kyoto-100423034302-phpapp02] ・濱崎健吾/クックパッドに入って十数日働いた雑感 [slideshare id=3849703&doc=100413urapad-100425122155-phpapp01]
こんにちは。技術部の吉川です。 今回はクックパッドの開発環境構成、特に開発用データベースの構成についてご紹介します。 開発環境の構成 クックパッドのシステム環境は以下のようなフェイズに分かれています。 ※ これはcookpad.comの構成で、サブシステムや個別のサービスはその規模や特性に応じて構成が異なります。 development 開発者が実際に開発を行う環境です。クックパッドでは仮想環境は用いず、手元のマシンでRailsアプリケーションを動かして開発を行っています。 データベースはローカルではなく、開発者全体で共通の開発用データベースに接続しています。 test 手元でテストを実行する場合は、ローカルマシンのデータベースを利用します。CI(rrrspec)などの場合も同様で、テスト実行サーバーのデータベースが利用されます。 staging stagingといえば準本番環境として、本
技術部の高井です。 最近、日本でもマイクロサービスという言葉が流行しつつあります。 今回は、なぜクックパッドがマイクロサービスを選択したのか、また実際にどのようなやり方をしているのかということを紹介します。 Conwayの法則 ここ数年の間、クックパッドはレシピの投稿・検索サービスから「食を中心とした生活のインフラ」として事業領域を拡大しつつあります。海外レシピサービスの買収による海外展開は、単なる金銭的な関係にとどまらず、人的・技術的な交流も含めて本格化しつつあります。また、「モバイルファースト」を標語とするモバイルアプリケーションへの取り組みも加速してきました。 事業領域の拡大やグローバル展開、モバイルファーストといったビジネス要求の変化に応じて、会社の組織構造も変化しています。そして、Conwayの法則 として知られているように、組織構造とソフトウェアアーキテクチャには密接な関係があ
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
mirakui's garbage This is an archived post This is an archived post 新卒で入った前職はちょうど2年で辞めたので、社会人生活の半分をすでにクックパッドで過ごしたことになる。 最初はサービス開発エンジニアとして三ヶ月くらいやってたんだけど、その時はあまり自分の立ち位置をうまく作れてなかったと思う。学生の頃からサービスを作る真似事みたいなのはやってきていたけど、いざ現場に入ってみると本物のサービスを作れる人たちってのは僕と全然違う。単に技術力ではなく、粘り強さとか、発想の柔軟さとか、そういう人間としての性能が高い。サービスづくりではこの人たちには勝てないと思った。 しかしそういう才能のある人たちがガンガン開発を進めていくといろんな問題が起こることに気づいた。例えばテストをちゃんと書くこと。正しいコードを書くこと。脆弱性に気をつけ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く