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

  • クックパッドマートの配送ルートを自動生成している仕組み - クックパッド開発者ブログ

    こんにちは、クックパッドマート流通基盤アプリケーション開発グループのオサ(@s_osa_)です。 生鮮品の EC サービスであるクックパッドマートでは、「1品から送料無料」をはじめとするサービスの特徴を実現するために、商品の流通網を自分たちでつくっています。 このエントリでは、商品をユーザーに届けるための配送ルートを自動生成している仕組みについて紹介します。 解決したい問題 配送ルートとは クックパッドマートにはいくつかの流通方法がありますが、ここでは「ステーション便」と呼ばれるものについて解説します。他の流通方法などを含む全体像が気になる方は以下のエントリがオススメです。 クックパッド生鮮 EC お届けの裏側 2022 年版 - クックパッド開発者ブログ ステーション便では、ハブと呼ばれる流通拠点からユーザーが商品を受け取りに行く場所であるステーションへと商品を運びます。東京都、神奈川

    クックパッドマートの配送ルートを自動生成している仕組み - クックパッド開発者ブログ
    roshi
    roshi 2022/04/21
    実際の配送履歴と重ねてどれくらい肉薄しているのか見てみたい。
  • Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ

    こんにちは、技術部SRグループの菅原です。 最近、Ninja650からNinja1000に乗り換えました。パワーがあるせいで3速発進・4速発進が平気でできてしまい、シフトワークがどんどん下手になっています。精進したいものです。 この記事では、Amazon RDS/Auroraをクローンするシステムを作った話を書きます。 Amazon RDS/Auroraをクローンするシステム サービス開発を行っていると、調査や検証でプロダクション環境で使われているデータベースが必要になることがあります。開発環境やステージング環境にもデータベースは存在するのですが、プロダクション環境のデータでしか再現しないバグの調査や、プロダクション環境のデータ量でのスキーマ変更の負荷の検証など、開発環境やステージング環境のデータベースではできない作業も多いです。しかし、オペレーションミスや個人情報へのアクセスを考えると、

    Amazon RDS/Auroraをクローンするシステムを作った話 - クックパッド開発者ブログ
    roshi
    roshi 2020/08/20
    プロダクション環境DBに対して8分でマスキング処理含めcloneが完了するのって結構速い気がするけど枝刈りしているからなのかな。
  • 新規決済手段導入に際し、なるべく丁寧にテストケースを作成した話 - クックパッド開発者ブログ

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

    新規決済手段導入に際し、なるべく丁寧にテストケースを作成した話 - クックパッド開発者ブログ
    roshi
    roshi 2018/07/20
    クックパッドにはseleniumでテスト自動化して手動テストを無くしました!の方向で行って欲しかったw(こちらも当然大事)
  • 時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部 SRE グループの吉川 ( @rrreeeyyy ) です。今期オススメのアニメはツインエンジェル BREAK です。 普段の業務並びに趣味の一環として、サーバのモニタリング環境の調査や改善に取り組んでいます。 そこで稿では、モニタリングのコンポーネントの一つとして外すことが出来ない、時系列データベースの基礎知識に関して紹介します。 そもそも時系列データ・時系列データベースとは? 時系列データというのは、特定の時間ごとに何らかの値を取得した際の、取得した一連の値を指します。 例えば、以下のようなフォーマットをしたデータなどは時系列データにあたるでしょう。 timestamp1,key,value1 timestamp2,key,value2 timestamp3,key,value3 : 時系列データベースとは、上記のような時系列データの保存・処理に

    時系列データベースに関する基礎知識と時系列データの符号化方式について - クックパッド開発者ブログ
    roshi
    roshi 2017/05/31
    influxDBをプライベートで使っているけど、GCEの無料インスタンスだとちと負荷高めなのが悩みどころ。時系列DBならではのデータ符号化の話がよかった。
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

    SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
    roshi
    roshi 2016/11/09
    キーワードの話が激しく同意。これのせいで結局ほとんど大文字で書くハメになるじゃないかっていつも思う。今は空白2文字にしてるけど、改行前後のカンマ位置が違和感あるから4文字に戻そうか悩み中。他もほぼ納得。
  • 社内共用カメラのすゝめ - クックパッド開発者ブログ

    舘野 (id:secondlife / @hotchpotch) です。 クックパッドでは会社の中心にキッチンがあり、社員同士でランチやお菓子を作ったり、イベントを開いたりと社内のコミュニケーション用途で広く使われています。そんなキッチンで作られている様々な料理や、楽しそうなコミニュケーションをその場に居ない人にも伝えたいなー、どうにか伝える方法は無いのかな〜と思っていました。 そんな中、より良い組織を作るために の中でも触れられているコミニュケーション改善の話をしている最中、社内に共用のカメラが置いてあって、撮った写真が何もせずとも自動で社員が見れる場にアップロードするだけの仕組みを提供するだけでうまく行くかも、と思ったので2014年末に作ってみました。 サービスのコンセプト 作るときに盛り込んだコンセプトは以下の二点です。 運用コストがゼロ アップロードコストがゼロ 運用コストがゼロ

    社内共用カメラのすゝめ - クックパッド開発者ブログ
    roshi
    roshi 2016/03/25
    会議室にカメラ置いといて、社内会議の議事録共有とかでもよさそう。
  • 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ

    会員事業部の有賀(id:chezou)です。 今年一年、社内では勝手に"Jupyterの伝道師"を標榜してJupyter notebookの普及活動を展開してきました。 先日、社内でハンズオンも行ったおかげもあり、かなり社内のマシンにPython環境が構築されてきました :) Jupyter notebookとは? ひとことで言うとブラウザで動くすごい便利なREPL*1です。 百聞は一見にしかず、見てみましょう。 このように、Rubyの対話環境であるpryを触っているようにインタラクティブにコードを書くことができます。 以降で説明をしますが、Jupyter notebookは記録・共有・再現がとても得意です。特に図表があるときにその効果を発揮します。 Jupyter notebookの良い所 過去のコードを改変、再実行できる セルと呼ばれる入力部分にはMarkdownやコードが記述できます

    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
    roshi
    roshi 2015/12/28
    エディターやコンソールの出来が何気に良くて触ってて楽しい。SQLクライアントの代替としてもよさそう。
  • 電子工作に必要な道具達 - クックパッド開発者ブログ

    最近電子工作を始めだしたクックパッドの舘野 ( id:secondlife, @hotchpotch )です。昨今 Arduino や Raspberry Pi を初めとしたボードの登場により、気軽に電子工作プログラミングができるようになり、プロトタイピングの敷居が非常に下がってきていますね。電子工作における “Hello World!” である LED を発光させる実装の “Lチカ” や、ブレッドボード上での簡単な電子機器やモジュールを組み合わせてプログラムから操作などを実際にしてみたことがある方も多いのでは無いでしょうか。 ただそこまでは非常に気軽にできるのですが、その先の電子工作へ進む時に溝があるのも確かです。ソフトウェアのみで完結する開発の場合、初心者でも解らないなら解らないなりに調べ、ソースコードをコピペして弄って理解してみたり、ライブラリを使っていくうちに徐々に進んでいくことが

    電子工作に必要な道具達 - クックパッド開発者ブログ
    roshi
    roshi 2015/10/28
    レシピ参考になる。必要になって都度買いに行くよりある程度持っておく方がいいのね。
  • クーポンコードの打ち間違えを防ぐために工夫した話 - クックパッド開発者ブログ

    こんにちは。会員事業部ビジネス開発グループの高田です。 クックパッドは今年、株主優待制度として、プレミアムサービス一年間無料クーポンを贈呈しました。エントリではクーポンコードを打ち間違えて、意図せず他の人のクーポンコードを使用するのを防ぐために工夫した話をご紹介します。 はじめに クーポンコードは入力のしやすさを優先して数字だけの文字列にしました。はじめは rand 関数を使って生成しようとしていたのですが、数字の打ち間違えや順序間違いで、意図せず誤使用してしまうのを防ぐためにチェックサムを加えるのがいい、と同僚から助言をもらいました。 いくつか調べて見たところ、Luhn アルゴリズムが上記を満たしていたので利用することにしました。 Luhn アルゴリズムの利用 Luhn アルゴリズムとは、誤り検出のためのチェックサム符号で、1 桁の間違いや隣接する数字の順序間違いを検出できるという特徴

    クーポンコードの打ち間違えを防ぐために工夫した話 - クックパッド開発者ブログ
    roshi
    roshi 2015/06/23
    クライアント側ではチェックしていないようだけど、総当たり攻撃によるDB負荷対策なのかな?
  • 1