タグ

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

  • 技術選定で失敗しない、正解にする力 - クックパッド開発者ブログ

    プログラミングが好きなエンジニアの渡辺です。 先日 TechMTG という社内のエンジニアミーティングの場でお話させて頂いたことを書いてみようと思います。 表題の「正解にする力」というのは様々な意思決定に適用出来るものとして考えていますが、今回は技術選定という観点でお話します。 技術選定というと、世の中のデファクトだとか、新しい技術だとか、社内で実績のある枯れた技術とか色々な理由や基準で選ぶのが良いと、至るところで言われていると思います。 選定時に議論が平行線にならないように、判断基準を設けるべきというのもあるでしょう。 これらは重要であり、検討、準備することは必要ですが、それに加えて「正解にする力」というのも重要なのではないか?という提案です。 まず、組織における技術選定とは「正解を選ぶ」ことではないと思っています。 これはその技術選定結果はその人個人についてまわるのではなく、組織として

    技術選定で失敗しない、正解にする力 - クックパッド開発者ブログ
    luccafort
    luccafort 2023/04/13
    技術選定ではないのだけどとある事情で選定をする意思決定だったり判断基準だったりをまさに考えていたのでとても参考になった。正解にする力の因数分解がとても納得感があってよかった。
  • 新卒向け社内研修制度Horizonを利用してイギリスに出向してきました - クックパッド開発者ブログ

    こんにちは。エンジニアの河邉です。 クックパッドにはHorizonという新卒3年目までの若手エンジニア・デザイナーにグローバルな環境で働く機会を与えて成長の後押しをしてくれる海外出向研修プログラムがあります。 詳細は英国派遣プログラム「Horizon」 責任者に聞く制度への思い(前編)を御覧ください。 2021年4月にクックパッドに新卒入社した私は、この制度を利用して2021年末にイギリスに渡航し、2022年1月から6月までの半年間ロンドンから電車で2時間ほどのブリストルにあるグローバル社でiOSエンジニアとして働きました。 今回はその体験談をお届けします。 グローバルクックパッドについて クックパッドは現在74の国や地域に32言語でレシピサービスを提供しています。 日以外の地域で提供しているサービスはイギリスのブリストルにあるオフィスで開発されています。 Horizon参加の流れ 2

    新卒向け社内研修制度Horizonを利用してイギリスに出向してきました - クックパッド開発者ブログ
    luccafort
    luccafort 2022/09/10
    “グローバルクックパッドでは基本的に1つのプロダクトチームに1人のデータエンジニアがいて、A/Bテストをはじめとしたさまざまな施策の進捗を客観的な数値として報告してくれます。”やりたいと思ってたやつだ!
  • Cookpad Summer Internship 2021 10 Day Techコースを開催しました! - クックパッド開発者ブログ

    研究開発部の深澤(@fukkaa1225)です。今年はエンジニアの立場から新卒採用も担当しています。 4月の記事で告知したサマーインターンシップのうち、10 Day Techコースを8月16日〜8月27日で開催しました。この記事ではその内容を紹介します。 3 Day Product Designコースについては、以下の記事をご覧ください。 10 Day Techコースは、前半5日間が講義形式、後半5日間が実践形式でした。 前半は技術講義とサービス開発講義の2立てです。 後半はOJTプログラムとPBL(Project-Based Learning)プログラムのそれぞれに分かれて、サービス開発の実践に取り組みます。 昨年はオンラインのみでの開催でした。今年は前半の講義パートをオンラインのみ、後半の実践パートではオフィスに来訪されることを希望した方にはオフィスで、それ以外の方々は前半から引き続

    Cookpad Summer Internship 2021 10 Day Techコースを開催しました! - クックパッド開発者ブログ
    luccafort
    luccafort 2021/09/07
    現役のエンジニアが受けたい!と思うような内容がインターンシップの課題になってるの企業の技術ブランディングにおいてめちゃくちゃGoodなので真似したいし、自分が受けたい。
  • Chaos Engineering やっていく宣言 - クックパッド開発者ブログ

    技術部のヨシオリです。 Netflix が Chaos Engineering の論文を公開して 2 年ほど経ちました。 クックパッドは最近、 Chaos Engineering を導入する事を決めました。 この記事ではその背景を紹介したいと思います。 そもそも Chaos Engineering とは Netflix では Failure Injection Testing として、営業時間中に意図的に障害を起す事をやっていました。Chaos Monkey というインスタンスとサービスを落すものから Chaos Gorilla、Kong という availability zone や region 単位で障害を発生させるものなどです。 その経験から Chaos Engineering というものが提唱されました。 Principles of Chaos Engineeringによれば C

    Chaos Engineering やっていく宣言 - クックパッド開発者ブログ
    luccafort
    luccafort 2018/08/03
    ChaosEngineering、面白いと思う一方でどの程度効果とその費用対効果が得られるんだろうな?という気持ちがある。あとある程度規模が大きくマイクロサービス化されていないと検証できないのもハードルが高いよなあ。
  • Ruby の lazy loading の仕組みを利用して未使用の gem を探す - クックパッド開発者ブログ

    技術部開発基盤グループのシム(@shia)です。 最近は cookpad のメインレポジトリを開発しやすい環境に改善するために様々な試みをしています。 この記事ではその試みの一つとして不要な gem を検出し、削除した方法を紹介したいと思います。 背景 cookpad は10年以上にわたって運用されている巨大なウェブアプリケーションです。 巨大かつ古いアプリケーションには昔は使っていたが、現在は使われてない依存性などが技術負債として溜まっています。 事業的観点から技術的負債を完全返却するのはコストとのバランスが悪いことも多いです。 これは20万行を超えるプロジェクトを幾つも抱えている cookpad のメインレポジトリも例外ではなく、その規模から使ってないと思われる依存性を探しだすのも大変な状況でした。 どうするか 人が頑張るより機械に頑張らせたほうが楽ができるし、何より確実です。 ですの

    Ruby の lazy loading の仕組みを利用して未使用の gem を探す - クックパッド開発者ブログ
    luccafort
    luccafort 2018/04/06
    “低コストにコードの使用状況が分かる ”これいいっすね。
  • 巨大なWEBアプリケーションに巨大な変更を取り入れるためにやったこと - クックパッド開発者ブログ

    会員事業部ユーザー基盤チームエンジニアの井口(@iguchi1124)です。 ユーザー基盤チームでは、クックパッドのサービス開発者のあらゆる要望に答え続けられるような『柔軟でいい感じのユーザー基盤』を目指し、サービス開発者およびユーザーさんの課題と向き合いながら日々開発を進めています。 第一弾として、普段の開発の様子や一部のユーザーさんに向けてユーザー登録機能をリリースするまでの話も公開されていますので是非そちらもご覧いただければと思います。 今回は、上述の記事にも触れられているようにクックパッドでユーザーさんのアカウント登録や認証情報として電話番号を利用できるようになりましたので、そのためにやってきたことの一部をご紹介したいと思います。 一口に電話番号を利用出来るようになったと言うと簡単そうに聞こえますが実際にはそうでもありません。 クックパッドではこれまで連絡先情報あるいはアカウントの

    巨大なWEBアプリケーションに巨大な変更を取り入れるためにやったこと - クックパッド開発者ブログ
    luccafort
    luccafort 2018/03/16
    feature flag、Cookieであることに引っかかりを覚えたけどやりたいこととその容易さという点でこれ以外の選択肢を思いつかないのでいいかもしれない。本番でえいやっ!をしなくていいのデカい。
  • "体系的" に開発サイクルを回して "効果的" に学びを得るには - クックパッド開発者ブログ

    会員事業部エンジニアの新井( @SpicyCoffee66 )です。 Splatoon2 で各ルール S+1 以上になるため日々奮闘中のところに MHW が発売されました。 加えて最近ぷよぷよを始めたので、どう考えてもいろいろ計算が合わなくなってきました。 日おこなわれた Cookpad TechConf 2018 では「クックパッドの "体系的" サービス開発」と題し、社内でどのような点に気をつけて開発サイクルが回されているかをお話しさせていただきました。 動画・発表資料は後日アップロードされる予定ですので、よろしければ合わせてご覧ください*1。 今回は、TechConf 2018 での発表内容から、BML ループの運用について、多少の補足や要約を交えながら書きたいと思います。 サービス開発は難しい まず前提として、サービス開発は難しいです。 その難しさの大部分は、以下の2つの要因から

    "体系的" に開発サイクルを回して "効果的" に学びを得るには - クックパッド開発者ブログ
    luccafort
    luccafort 2018/03/09
    "サービスに対する理解と現実のギャップ"から期待値を出してその結果良いか悪いかの選択肢に絞り込むのめちゃくちゃシンプルなのにスマートですごい。
  • Cookpad TechConf 2018 開催報告 - クックパッド開発者ブログ

    こんにちは、技術広報を担当している外村です。 2018年2月10日にエンジニア向けのカンファレンス、Cookpad TechConf 2018を開催しました。当日はたくさんの方に参加いただき、活気あるカンファレンスになりました。ご来場の皆様当にありがとうざいました。 新しい試みとして、当日の司会をAmazon Pollyの音声合成で行なったのですが、こちらもみなさんにお楽しみいただけたようでした。 講演資料・動画 当日の講演資料および動画を公開いたしましたので是非ご覧になってください。 基調講演: 毎日の料理を楽しみにする挑戦をし続けた20年 by 橋 健太 コーポレート戦略部部長の橋による基調講演でイベントはスタートしました。クックパッドはテックカンパニーとしてどのように成長してきたか、グローバル展開をどのように行ってきたか、現在取り組んでいる新プロジェクトについての話などがあり

    Cookpad TechConf 2018 開催報告 - クックパッド開発者ブログ
    luccafort
    luccafort 2018/02/22
    今回も京都の地から動画配信みてたけど個人的に一番おもしろかったのがcookpad storeTVの話しだなー。ソフトウェア開発とは別軸の問題をcookpadらしく解決していってるのが面白かった。
  • 【出張開催レポ】Cookpad tech kitchen #11, #12 in 京都・福岡 - クックパッド開発者ブログ

    こんにちは!人事部の冨永です。 2017/09/28~29の二日間に渡って、技術系イベント「Cookpad Tech Kitchen」を開催しました。クックパッド技術的な知見を定期的にアウトプットすることを目的とするイベント。#11, 12の今回は株式会社はてなさん(京都)とGMOペパボ株式会社さん(福岡)のお力をお借りして、京都・福岡での出張開催を実現しました! テーマは一夜限りのPremium Talkと題して「各社開発の裏側」を発表。イベントで初めて公開する情報や、ここだけでしか聞けない裏話など、興味深い内容が盛り沢山なイベントとなりました。 発表資料を交えてイベントのレポートをお届けします。 9月28日【京都開催 feat.はてな】Cookpad Tech Kitchen #11 (Premium Talk in Kyoto) 京都のはてなオフィスにお邪魔しての開催。実は登壇

    【出張開催レポ】Cookpad tech kitchen #11, #12 in 京都・福岡 - クックパッド開発者ブログ
    luccafort
    luccafort 2017/11/16
    ピンチョススタイルで座っちゃうと話を聞いているときに食べに行きにくいので最初から立食形式のほうが良かったのかなーと思った。QAセッションはめっちゃ良かった、継続的にやってほしいけど難しそう。
  • たのしくなるコードレビュー - クックパッド開発者ブログ

    こんにちは!サービス開発部でAndroidアプリの開発をしているこまたつ(@k0matatsu)です。 みなさんコードレビューしていますか? 最近ではとりいれているチームも多いと思いますが、良い効果をもたらしてくれる一方で、負荷の高い作業でもあります。 また、コードレビュー自体に馴染みの薄かった人はなにをどうしたらいいのか難しいですよね。 同僚から得たアドバイスと自分なりのノウハウをあわせて、コードレビューの指針を考えていたので公開してみようと思います。 前提として、クックパッドではGitHub Enterpriseとプルリクエストを使った開発プロセスを採用しています。 また、コードレビューの前には自動テストと静的解析ツールによる単純なフォーマット、コードスタイル、頻出バグのチェックは行われているものとします。 静的解析による機械的なチェックはコードレビューよりも低コストで有効な方法ですの

    たのしくなるコードレビュー - クックパッド開発者ブログ
    luccafort
    luccafort 2017/09/22
    "コードレビューの前には自動テストと静的解析ツールによる単純なフォーマット、コードスタイル、頻出バグのチェックは行われているもの"これが行われている前提だよね。
  • 時差のあるリモートワークをやってみて - クックパッド開発者ブログ

    こんにちは、インフラストラクチャー部データ基盤グループの井上寛之(@inohiro)です。私事ですが今年の3月から、時差のあるリモートワークを行っています。今のところ主観的にも、客観的にもうまくいっている状況です。友人・知人にそのことを話すと、「実際のところどうなの?」「どうやってるの?」と聞かれることも多く、今回は日にいるチームメンバーとの仕事のやり方、また私自身が心がけていることを紹介します。 背景 私が所属している インフラストラクチャー部データ基盤グループは、主にデータウェアハウス(DWH)の開発を行っています。具体的には、サービスのログやユーザーのマスターデータを継続的に取り込み、サービス開発のためのデータ分析や広告配信のためのシステム(DMP)に貢献しています。また、DWHユーザーのアカウントを発行したり、分析的なSQL相談に対応したりしています。 クックパッドは、現在(2

    時差のあるリモートワークをやってみて - クックパッド開発者ブログ
    luccafort
    luccafort 2017/07/24
    時差をうまく活用するのはソニックガーデンで語学留学してた人がうまいことやっていた記憶がある。デメリットを逆転させてうまく活用できる働き方ができるのはすごい。
  • Hackarade: MRI Internal Challenge - クックパッド開発者ブログ

    今年1月に入社した技術部の笹田です。Ruby インタプリタの開発をしています。 少し旧聞になりますが、今年3月の終わりに Hackarade: MRI Internal Challenge という、Ruby インタプリタ(MRI, Matz Ruby Interpreter)をハックするという社内ハッカソン企画を行いましたので、その様子をご紹介します。ハッカソンでは、弊社エンジニアが原則全員参加で Ruby インタプリタをいじりました。今回のハッカソンでは、特別ゲストとして 世界ナンバーワンの Ruby コミッタ(コミット数が世界一)である 中田さん(nobu) に参加していただき、様々な助言をいただきました。 Hackarade って? クックパッド社内で、技術力の底上げを目的に、エンジニア全員が1日参加するハッカソンを年に3回程度行っていくことになりました。このハッカソンの名前を、Ha

    Hackarade: MRI Internal Challenge - クックパッド開発者ブログ
    luccafort
    luccafort 2017/05/16
    "Net::FTP で明示的に PORT コマンドを送れるようにする"のチケットの最終的に必要だという経緯がめちゃくちゃ気になる。どういう理由でやはりこれは必要だと納得する流れになっただろうか。
  • Cookpad TechConf 2017 提供 Wi-Fi の裏側 - クックパッド開発者ブログ

    インフラ部 id:sora_h です。 先週開催された Cookpad TechConf 2017 如何でしたでしょうか。わたしは TechConf において Wi-Fi を担当していて、こちらも好評いただいたようでなによりでした。 というわけで、この記事では TechConf 2017 における Wi-Fi についての詳細を紹介します。 ネットワーク機器設定・サーバー mitamae レシピ等の公開 https://github.com/cookpad/techconf2017-network 今回の紹介する構成のうち、ネットワーク機器およびサーバ側の設定等、ほとんどを GitHub で公開しています。参考までにどうぞ。 TechConf 2017 NOC メンバー 実は外注などはしておらず、社内 IT と SRE グループのメンバーで構成されていました。 メイン (設計・運用・設営)

    Cookpad TechConf 2017 提供 Wi-Fi の裏側 - クックパッド開発者ブログ
    luccafort
    luccafort 2017/01/26
    言ってる内容の半分くらいしかわからない…知識不足を痛感する。Grafanaというのは初めて聞いた気がする。
  • Cookpad TechConf 2017 はライブ配信も行います! - クックパッド開発者ブログ

    こんにちは! @yoshiori です。 こちらで告知した「Cookpad TechConf 2017」 ですが、ライブ配信することが決定しました!!! 残念ながら抽選から漏れてしまった方々、エントリーに間に合わなかった方々、また、今この記事を見て知った方々、ご安心ください! 僕自身も色々なカンファレンスに参加、もしくはライブ配信でみたりしますが、Twitter などのハッシュタグを追いかけつつ見るのが一番楽しいと思っています。ですので、会場に来られない方も是非、ライブ配信で楽しんでいただければと思います。 ちなみにハッシュタグは #CookpadTechConf になります! そして、肝心のライブ配信 URLはこちらです! https://techconf.cookpad.com/2017/streaming 残り一週間を切って僕もドキドキしていますがどうぞお楽しみに!!! では!

    Cookpad TechConf 2017 はライブ配信も行います! - クックパッド開発者ブログ
    luccafort
    luccafort 2017/01/19
    ライブ配信、やったあああああああああ!!!Twitterだけだとどうしても情報が錯綜してしまうのでこれは純粋に嬉しい。
  • Docker を利用した Web アプリケーションのデプロイ - クックパッド開発者ブログ

    技術部の鈴木 (id:eagletmt) です。 クックパッドでは一部の Web アプリケーションサーバで Docker が使われており、今回はそのデプロイ方法について紹介します。 Docker で Web アプリケーションをデプロイするときには、まだまだベストプラクティスがある状況ではありません。 たとえば、どのように無停止でデプロイするか、どのようにコンテナと通信するかといった問題があります。 最初に Apache Mesos と Marathon などのツールを検証しましたが、クックパッドの環境において使いやすそうなものはなく、最終的に自前でデプロイのしくみを作ることにしました。 しかし Docker 周辺のツールは様々な新しいものが出てきている最中です。 今はまだベストなものが無いけれども、近いうちによりよいものが出てくるかもしれません。 そのため、できるだけ単純なしくみにしておく

    Docker を利用した Web アプリケーションのデプロイ - クックパッド開発者ブログ
    luccafort
    luccafort 2016/12/26
    一年前のエントリだけどようやく読んだ。これ今はどうやってるか知りたいな。あまり大差ない感じなのか、ごっそり変えているのか。
  • 分析SQLのコーディングスタイル - クックパッド開発者ブログ

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

    分析SQLのコーディングスタイル - クックパッド開発者ブログ
  • 開発の見積もりとスケジュール管理 - クックパッド開発者ブログ

    こんにちは。会員事業部の丸山です。 エンジニアが開発を開始する時にはタスクの見積もりとスケジュールを作成行って、実装を進めていくと思います。 しかし1ヶ月を超えるような規模の開発をする場合、なかなか予定通りの期日に終わらなかったりすると思います。 そして大抵の場合、増える方向になりますよね。 今回はそういうことにならないために、私が気をつけていること・実践していることをいくつか紹介したいと思います。 見積もりとは まずは「見積もり」とは何なのかを正しく理解したいと思います。 一般的には「見積もり」=「全タスクとその工数を洗い出す」というものだと思います。 しかしここで以下のことに気をつける必要があります。 見積もりとスケジュールとコミットメントは違う 見積もりとはあるタスクがどれだけの工数(規模)なのかを算出することです。 対して、スケジュールとはあるタスクがどれだけの工期(期間)なのかを

    開発の見積もりとスケジュール管理 - クックパッド開発者ブログ
    luccafort
    luccafort 2016/04/07
    僕の経験だとスケジュールが遅れるときはタスクの分割した粒度がデカすぎることがほとんどかなぁ。 「○○の機能を実装」というタスクに分割したけど実際はその機能の中に更にABCという機能を実装しないといけない
  • 安心してRailsアップグレードを行うための工夫 - クックパッド開発者ブログ

    こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全に行なうための動作確認のやり方について参考になればということで、記事でも改めて紹介いたします。 CookpadのRailsアップグレードの流れ Rails 4.1から4.2にアップグレードした際の例を紹介します。 CIにRails 4.2用ジョブを用意 まずはRails 4.2にアップグレードするためのrails42ブランチでテストを通します。リリースするまでこのブランチはmasterからrebaseし続けるので、リリースまでテストを通る状態を保つため、CIにrails42ブランチ用のジョブを用意しま

    安心してRailsアップグレードを行うための工夫 - クックパッド開発者ブログ
  • 社内共用カメラのすゝめ - クックパッド開発者ブログ

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

    社内共用カメラのすゝめ - クックパッド開発者ブログ
  • テストを使いサービス開発を駆動していくために取り組んでいること - クックパッド開発者ブログ

    技術部の松尾(@Kazu_cocoa)です。 最近、 @moroや私を中心に、テストから開発を駆動するという方向で、とある活動を始めました。その活動の中では、 @t_wadaさん を 技術顧問 として巻き込んで活動を進めています。そんな取り組みを少しここにまとめます。 取り組みの前段階 先日、私はテストエンジニアというロールに焦点を当ててテストという言葉に対する2種類の話をいたしました。TDDのようにテストによって開発を駆動していく側面の話と、人の認知・感じ方に寄った仕様自体含めてテストしていく側面の話です。 クックパッドエンジニアトークナイト 〜クックパッドテストエンジニアのあり方〜 を開催しました! クックパッドエンジニアトークナイト 〜クックパッドテストエンジニアvol.2 Testing編〜 を開催しました! その際、会の傍でt_wadaさんらと私たちが開発するWebアプリケーショ

    テストを使いサービス開発を駆動していくために取り組んでいること - クックパッド開発者ブログ