ブックマーク / techlife.cookpad.com (8)

  • 新規決済手段導入に際し、なるべく丁寧にテストケースを作成した話 - クックパッド開発者ブログ

    会員事業部の日高尚美(@natan3)です。 半年前になりますが、クックパッドでは Android ユーザ向けにプレミアムサービスの決済手段の一つとして Google Play 決済を導入しました。 ユーザに新たな機能を提供する前には、何らかの形で開発者側での検証が必要です。 Google Play 決済導入バージョンのリリースは、ユーザのお金を扱うこともあり、不具合が起きた際にサービス全体の信用に関わる、非常にリスクの高いリリースでした。 それに伴い、検証もできる限り万全に行わなければなりません。 そのため、なるべく丁寧にテストケースを作成し、それをもとに検証を実施することで新機能が期待通りに実装されていることを担保しました。 丁寧にテストケースを作成したから、というだけではもちろんありませんが、リリースから半年経った今でも Google Play 決済周りの目立った不具合はまだ見つかっ

    新規決済手段導入に際し、なるべく丁寧にテストケースを作成した話 - クックパッド開発者ブログ
    sanchery
    sanchery 2019/09/07
  • クックパッドと分散トレーシング - クックパッド開発者ブログ

    こんにちは、技術部の Taiki (@taiki45) です。 近年の Web サービスの開発ではマイクロサービスに代表されるように分散アーキテクチャが採用されるようになってきました。大規模でも素早いプロダクト開発をするために、クックパッドでもマイクロサービスを採用し分散アーキテクチャへの移行を進めています*1。今回は、そのような分散アーキテクチャを利用したシステム構築において必須のコンポーネントになりつつある分散トレーシングについて、クックパッドでの事例を紹介したいと思います。 分散トレーシングとは マイクロサービスのような分散アーキテクチャでは、個々のサービス同士の通信が複雑になるため、モノリシックアーキテクチャと比較して、システム全体としての振る舞いを把握することが難しくなります。これはプロダクト開発においては、障害発生時の原因究明が難しくなったり、あるいはシステム全体でのパフォーマ

    クックパッドと分散トレーシング - クックパッド開発者ブログ
    sanchery
    sanchery 2017/09/06
  • クックパッドにおける最近のMicroservices事例 - クックパッド開発者ブログ

    こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当ブログでは1年半ほど前にMicroservicesへのとりくみについてご紹介しました。 当時社内ライブラリだったGarageはその後オープンソースとして公開され、また社内のシステムも当時と比べ飛躍的な進化を遂げています。 そういったクックパッドにおける最近のMicroservices事例を先日Microservices Casual Talksで紹介しました。 Microservicesの抽象的な話は一切割愛し、具体的な事例に終始した内容となっています。 Microservicesの基となる考え方はわかったものの、実践方法で

    クックパッドにおける最近のMicroservices事例 - クックパッド開発者ブログ
    sanchery
    sanchery 2016/03/17
  • Cognitoを使ったらAndroidアプリプッシュ通知実装にサーバサイドプログラミングが不要になった話 - クックパッド開発者ブログ

    こんにちは、id:hogelog(会員事業部 小室)です。 現在自分が開発しているAndroidアプリのプッシュ通知の実装に Amazon Cognito, Amazon SNS, Amazon DynamoDB を使ったらアプリコード(と、AWSの設定)だけで機能が実現できてしまい、予定していたサーバサイド実装がまったく不要となったのでその知見を共有します。 アプリプッシュ通知の要件 今回実装したプッシュ通知の要件は以下です。 プッシュ通知を許可したユーザ全員に共通した内容を一斉通知 通知はバッチプログラムから週に数回程度 年内には一万ユーザぐらいに利用されること目標 GCMトークンはデータストアに記録しておく 将来的にはA/Bテストなどをおこなうことも可能なように 当初はこれらの機能を実現するため、適当なRailsアプリでGCMトークンを受け取ってうまいことあれこれするAPIを実装しよ

    Cognitoを使ったらAndroidアプリプッシュ通知実装にサーバサイドプログラミングが不要になった話 - クックパッド開発者ブログ
    sanchery
    sanchery 2015/06/16
  • 初めての新規サービス開発を通して学んでいること - クックパッド開発者ブログ

    こんにちは。投稿推進部の清水(@pachirel)です。 2009年にクックパッドに入社してから、インフラ周り、クックパッドの人事周り(採用・評価)や広告周りのシステム開発を担当していました。 2014年4月頃から、2〜3名の小さなチームで新規サービスのプロトタイピングをいくつか行っています。 企画の詳細は省きますが、私がこの10ヶ月ほどで学んだことをまとめました。アジャイル開発やLean startupの考えに共感しているので、そこから得た内容に私の体験を付け加えたものになっています。 今回はプログラミングに関する技術的な内容は含まれていません。 なぜ作るか スタートアップが失敗する原因で一番多いのは「人が必要としていないものを作ってしまった」というものです。 The Top 20 Reasons Startups Fail 社内の新規サービス開発でも同じ傾向があるのではないでしょうか。

    初めての新規サービス開発を通して学んでいること - クックパッド開発者ブログ
    sanchery
    sanchery 2015/02/07
  • アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ

    こんにちは。技術部の松尾(@Kazu_cocoa)です。 主にモバイルアプリ開発において、数ヶ月前よりGitHubのWebhooksを使ったとある取り組みを始めました。HipChatやSlackなどをはじめとした様々なサービスとの連携サービスを提供しているGitHubですが、Webhooksの機能を使うことで、より自分たちの開発を支援する未来を創造できればと思います。以降では、実際の使用例、その実装よりな話しへと話しをすすめます。 クックパッドにおけるWebhooksの使用例 チェックリストによるセルフチェックをPR時に実施する モバイルアプリ開発はWebアプリ開発と異なる点が多々あります。例えば、開発対象の面では端末の多様性、端末システム側設定・通信状態の多様さなど、リリースの面ではデプロイに対する制限や更新がユーザ依存であることなど、です。そのため、当たり前品質の底上げのために不具合の

    アプリ開発の品質底上げ施策をWebhooksでBotが支援する世界 - クックパッド開発者ブログ
    sanchery
    sanchery 2014/11/26
  • 多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ

    こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最適化は、膨大なログデータと最新の機械学習を用いることで、実現しています。このエントリでは、クックパッドにおけるコンテンツ最適化の裏側を紹介します。 最適化の背景 スマートフォンの普及に伴って、ユーザが利用するプラットフォームは PC からモバイルにシフトしつつあります。クックパッドにおけるモバイル利用者の割合も、ここ 2 年で 10% 以上増加しました。最近では、60% 以上のユーザがモバイルからアクセスしています。 ユーザの利用形態が変化すれば、検索結果ページもその変化に対

    多腕バンディットによる表示コンテンツの最適化 - クックパッド開発者ブログ
    sanchery
    sanchery 2014/11/26
  • Amazon Cognitoについて - AWSが提案するモバイル時代のアカウント管理 - クックパッド開発者ブログ

    モバイルファースト室の @rejasupotaro です。 AWS Summit 2014 でAWS Mobile Servicesのアップデートがありましたが、その中でも気になったAmazon Cognitoについて調べてみました。 Amazon Cognitoとは 今どきのモバイルアプリでは、単純に認証してAPIを叩くだけではなく、サービスにログインしていない状態でも一意なIDを持たせてデータを管理したり、ゲスト状態から会員登録をしたときにデータを引き継いだり、サービス間でシングルサインオンを提供したり、デバイス間で設定を共有できるようにするなど、ユーザーがどのデバイスからサービスにアクセスしてもストレスなく使えるようにするために様々な工夫を凝らす必要があります。 Introduction to Amazon Cognito これらの実装は複雑になりがちで、アプリを作っていると思ったら

    sanchery
    sanchery 2014/08/10
  • 1