タグ

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

  • ハードな案件のやわらかいプロジェクト管理 - クックパッド開発者ブログ

    研究開発部 兼 クックパッド料理教室の伊尾木です。 暖かくなったり、寒くなったりと気温差が激しいですが、皆さんお体は大丈夫でしょうか。 ところで、最近クックパッド料理教室で、ビジネスモデル変更に伴うリニューアルプロジェクトを実施しました。 (ビジネスモデル変更に伴う全面リニューアル) 私はPMと開発リーダーを担当したのですが、そこで実施した「やわらかいプロジェクト管理」についてご紹介したいと思います。 炎上しそうな予感がいっぱい! ビジネスモデル変更に伴うリニューアルって聞いただけで炎上の予感で胸が膨らみますね。 ビジネスモデルの変更だけでも大きな話なのに、システムの全面刷新まで同時に実施したので、プロジェクトとして不確定要素が多く、管理が難しいものになっていました。 20名弱(エンジニアが8名、他には営業チーム、ユーザサポートチームなどがありました)で8ヶ月程度のプロジェクトでした。一般

    ハードな案件のやわらかいプロジェクト管理 - クックパッド開発者ブログ
    nettabo
    nettabo 2017/04/18
  • 『Swift実践入門』2月7日発売 - クックパッド開発者ブログ

    海外事業向けのiOSアプリケーション開発を担当している西山(@yuseinishiyama)です。より海外事業に注力するため、今年度から、海外事業の拠点であるイギリス、Bristolのオフィスに出向しています。クックパッドは現在、15言語、58カ国以上を対象にサービスを展開しています。 先日、ヴァンサンが国内向けのアプリケーションのSwift 3化に関する記事を投稿しました。同じく、海外向けのアプリケーションも、昨年12月にSwift 3化した最初のバージョンをリリースしました。以前、Swift移行の記事で説明したとおり、このプロジェクトはほぼSwiftによって実装されているため、Swift 3化によってほぼ全てのコードが影響を受けました。幸いにも、大きなトラブルは起きませんでした。 この度、こうした業務での経験を活かして、『Swift実践入門』という書籍を技術評論社のWEB+DB PRE

    『Swift実践入門』2月7日発売 - クックパッド開発者ブログ
    nettabo
    nettabo 2017/02/08
  • サービス分割時の複雑性に対処する: テスト戦略の話 - クックパッド開発者ブログ

    技術部の taiki45 です。 現在のクックパッドでは、cookpad.com 内のデータを利用するようなプロダクトでも、cookpad.com を提供しているアプリケーション(体アプリケーション)とは別に新規のアプリケーションとして設計・実装しています。また、すでに体アプリケーションの一部として実装されているプロダクトについても、トレードオフを考慮しながら場合によっては、体アプリケーションから独立した別のアプリケーションとして設計・実装することが増えてきています。これらの体アプリケーションや、新規にあるいは体アプリケーションから独立させて設計・実装したアプリケーションのことを「サービス」と呼んでいます。また、この体アプリケーションから独立させることを「サービス分割」と呼んでいます。 制御できないほどの巨大な複雑なまとまりを制御するために、その巨大なまとまりと単純なまとまりに

    サービス分割時の複雑性に対処する: テスト戦略の話 - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/04
  • もう失敗しない!プロジェクト書きなおして、最高の開発環境を手に入れる - クックパッド開発者ブログ

    ちくしょう、プロジェクトまるごと書き直したい 自分で作り始めたプロジェクトであっても、途中から相乗りしたプロジェクトであっても、誰もが一度は体験する気持ちではないでしょうか。 私が携わっている「おいしい健康」も例外ではありません。 プロジェクトを全て書き直したいと思う一方で、全てのコードを書き換えようとするアプローチは、これまで作ってきた見た目や機能、ビジネスロジックを再現しきれずに潰えてしまう。という話しも良く聞きます。 実は全て書き直したいのではなく、その大きな目的としては以下のようなモノがあるのではないでしょうか。 シンプルな作りに変えたい 不要なコードが重なり、動作が遅くなっているところを解消したい 新しいライブラリ、新しい技術を取り込めるようにしたい 今回は、このような目的を達成しつつ、プロジェクトの書き換えを行った私達の話をしたいと思います。 cookpad体からのプロジェク

    もう失敗しない!プロジェクト書きなおして、最高の開発環境を手に入れる - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • モバイルアプリのスレッドプールサイズの最適化(画像読み込み編) - クックパッド開発者ブログ

    クックパッド海外向けのAndroidアプリを開発している @rejasupotaro です。海外チームでは英語圏だけでなく、スペイン語圏やアラビア語圏や、その他いろいろな地域・ユーザーの環境に合わせてサービスをローカライズしながら展開しています。 東南アジアや南米では日に比べるとネットワークは不安定で遅く、現地に行って自分たちのサービスを使うと読み込みの遅さに愕然とすることがあります。レシピサービスにとって画像の読み込みの速度は重要なので、これまでもレイテンシ、フォーマット、圧縮率、キャッシュ、画像サイズ、リクエストの優先度、プリロードなどさまざまな最適化を試みてきました。今回はスレッドプールのサイズについて考察しました。 非同期処理とスレッドプール Androidには、UIを操作することができる唯一のメインスレッドと、APIや画像のリクエスト、DBの読み書きなどの時間のかかる処理でメ

    モバイルアプリのスレッドプールサイズの最適化(画像読み込み編) - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • ウィンドウ関数で作るデータプロダクト - クックパッド開発者ブログ

    検索編成部の兼山(@PENGUINANA_)です。 クックパッドではウィンドウ関数をデータプロダクトの開発に活用しています。 ウィンドウ関数を利用すると、行動ログを利用したプロダクトの開発や評価が簡単に始められます。 今回は「関連キーワード」を例にとりウィンドウ関数がどのように活用できるのかを紹介します。 関連キーワードとは 朝ごはんのレシピ 52750品 [クックパッド] 簡単おいしいみんなのレシピが224万品 検索画面に検索を補助するための関連キーワードが提示されています。 「朝ごはん」の検索画面の関連キーワード: レシピを検索していると、自分の欲しいレシピが簡単に見つからない時があります。 理由は様々ですが一例として以下の様な状況があると思います。 「入力するのがめんどくさい」 「さがしたいものがあまりイメージできていない」 「それをさがす適切な検索語が思いつかない」 関連キーワード

    ウィンドウ関数で作るデータプロダクト - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • サービスの改善を、最も小さく、最も高速に行うために - クックパッド開発者ブログ

    買物情報事業部の根岸です。寒いですか。僕は今名前がわからない簡易暖房みたいなものの前にいるのであったかいです。今日は、僕がサービス開発エンジニアとして行っているサービス改善プロセスの一部についてお話させて下さい。 サービスの価値を高めるための改善は、より少ない人数で、より速く行うことが重要になります。これは、意思決定を最小限必要な人数以上で行うとコミュニケーションコストが高くなること、また、意思決定は一定の確率で失敗するものなので、イテレーションの速度を早くすると結果的に全体の価値を高めることなどが理由です。 それでは、最小の改善とは、最速の改善とは一体どのようなものなのでしょうか。 最小の改善が行われる単位 最小の改善が行われる単位は、サービスの開発を行っている個人です。個人が、改善の対象となっているサービスの課題を発見して解決へと導くことが最小の改善になります。 リリースしたサービスで

    サービスの改善を、最も小さく、最も高速に行うために - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • ESDoc - The Good Documentation For JavaScript - クックパッド開発者ブログ

    こんにちは。会員事業部の丸山@h13i32maruです*1。 ソフトウェアのドキュメント(マニュアル)を書くには色々なツールや方法があります。 JavaScriptの場合はJSDocというドキュメンテーションツールがデファクトスタンダードです。 ですが、JavaScriptの最新仕様であるECMAScript2015(ES2015)がリリースされたことにより、 JSDocの競合として新しいツールが登場したり、JSDoc自体もバージョンアップしたりしています。 記事ではそうした新しいツールの一つであるESDocを紹介します。 ESDocとは? ESDocとは私が2015年4月から開発を行っている、JavaScript(ES2015)向けの良いドキュメントを作るためのドキュメンテーションツールです。 https://esdoc.org/ https://github.com/esdoc/es

    ESDoc - The Good Documentation For JavaScript - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • モダンJavaScript開発環境 on Rails - クックパッド開発者ブログ

    投稿推進部の外村(@hokaccha)です。 クックパッドブログの開発でRails上にECMAScript6などのモダンなJavaScript開発環境を導入した経験を元にノウハウを紹介したいと思います。 RailsはSprocketsというgemJavaScriptCSSをコンパイルする仕組みが提供されています。Sprocketsによるasset管理の仕組みは非常によくできており、AltJSのトランスパイルやファイルの結合、minifyなど、assetのコンパイルに必要な機能を一通り備えています。 しかし、JavaScriptにおけるモジュールの依存関係の解決や、ライブラリの管理などについてはモダンなJavaScript開発と乖離してきているのが現状です。そこで、Railsでも以下のようなことを実現できることを目標に環境を作りました。 ECMAScript6のシンタックスを使う モジュ

    モダンJavaScript開発環境 on Rails - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • 現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ

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

    現代のエンジニアのための強力なメモ帳 Jupyter notebookのすゝめ - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • ディレクションの役割を持つスタッフの活躍を広げる取り組みについて - クックパッド開発者ブログ

    クックパッド検索・編成部の五十嵐啓人です。業はレシピなどの料理検索を中心とした、主に「さがすユーザー」のサービス責任と、ユーザー数の拡大に責任を負っています。日は部門を超えて取り組んでいる、ディレクションの役割を持つスタッフの活躍を広げるための取り組みについて紹介します。 ディレクションの役割を取り巻く当社の状況 日のインターネットサービス界隈で「プロダクトマネージャ」の話題が盛り上がりを見せつつありますが、当社でもプロダクト開発を牽引・補佐する役割を担当しているスタッフを(名前の議論はありますが)慣習的に「ディレクター」と分類しています。 当社では、以前からエンジニアリングで活躍するスタッフについては、エンジニアマニフェストやエンジニア専用の評価制度作りなどに注力し、組織として期待するエンジニア像の言語化による職種の価値向上、およびキャリア支援を充実させてきました。しかし、エンジニ

    ディレクションの役割を持つスタッフの活躍を広げる取り組みについて - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • エンジニアが人事部に入ってやったこと - クックパッド開発者ブログ

    人事部 エンジニア人事企画リーダー*1の小川(@conceal_rs)です。 前回はサービス開発に関するお話をしたのですが、今回はエンジニアが人事に入ってやったことについてお話したいと思います。 人事部との兼務のきっかけ そもそも去年から中途エンジニア採用には関わってきていました。主に書類選考や面接官をしてきたのですが、去年の終わりごろからはさらに、新卒を含めたエンジニア採用全般に関わるようになっていました。また同じような時期から社内のエンジニア評価に関しても関わりが強くなってきていて、業務のほとんどが「人事系の仕事では?」と思う時があるほど比重は大きくなりました。 そんななか、当然のように人事の方と一緒に仕事をすることが増えたのですが、なぜか一歩引いた状態で会話されているなと感じることが増えてきました。言葉では説明しづらいのですが、「手伝っていただいて恐縮です」という雰囲気で接してこられ

    エンジニアが人事部に入ってやったこと - クックパッド開発者ブログ
    nettabo
    nettabo 2016/01/03
  • gdbを使ったrubyのデバッグ - クックパッド開発者ブログ

    技術部の国分 (@k0kubun) です。 先日byebugの高速化を行っていた最中、変更を加えたbyebugを使っていると一定の確率でrubyがSEGVするバグを発見しました。 私はC言語のコードのデバッグの経験はなかったのですが、デバッガの使い方を調べながらSEGVの原因調査を行いパッチを送ったところ無事取り込まれ、最新の高速なbyebugが安全に使えるようになりました。 その際、ruby自体をデバッグするために必要な情報が分散していて大変だったので、まだrubyのデバッグをしたことがないけれどやってみたいという人を対象に、gdbというデバッガを使ったrubyのデバッグの方法を紹介します。 デバッグ用にrubyをビルドする デバッグ時に変数名やソースコードなどの情報を見るためには、最適化オプションをオフにしてデバッグ用にrubyをビルドしておく必要があります。 rubyのデバッグ用ビル

    nettabo
    nettabo 2015/12/10
  • クックパッドのジョブ管理システム kuroko2 の紹介 - クックパッド開発者ブログ

    こんにちは。技術部 開発基盤グループの大石です。 今回はクックパッドで利用されているRuby製のジョブ管理ツールkuroko2について紹介したいと思います。 kuroko2 とは クックパッドでは2011年頃より、kurokoというジョブ管理ツールがありました。 そして現在、kurokoの後継のジョブ管理ツールとしてkuroko2が2014年にkurokoの開発者でもある当時の技術部長 takai によって開発され現在に至っています。 商用のジョブ管理ツールは昔からありますし、ここ最近はAirflowやAzkabanなどのOSSのツールが存在しており、わざわざ自社でジョブ管理ツールを作る必要は無いのかもしれません。 しかし、kurokoが開発された当時はそこまでの完成度のOSSのジョブ管理ツールは存在していなかったということと、過去のバッチ資産も問題なく動作させることでき、機能追加など自分

    クックパッドのジョブ管理システム kuroko2 の紹介 - クックパッド開発者ブログ
    nettabo
    nettabo 2015/12/08
  • Smart Lock for Passwordsを利用したAndroidアプリログインフロー改善への取り組み - クックパッド開発者ブログ

    技術部モバイル基盤グループの児山です。 モバイル基盤グループでは、クックパッドのiOS/Androidアプリの開発だけでなく、アプリのユーザー体験を向上させるために新しい仕組みの調査や実装も行っています。 稿ではAndroidアプリにおけるログインフロー改善の取り組みについてご紹介したいと思います。 モバイルアプリでIDとパスワードを入力してログインするのは大変です。 端末サイズが大型化してきているとはいえ、キーボードで1文字ずつポチポチメールアドレスを打つのはストレスが溜まりますし、安全な長いパスワードは入力する気が起きません。 特にWebサービスも提供しているモバイルアプリであれば、ChromeやSafariなどに保存しているWebサービスの認証情報をアプリでも使えたら…と思うことがよくあります。 実はSafariに保存した認証情報でのログインはiOSアプリで利用可能になっているので

    Smart Lock for Passwordsを利用したAndroidアプリログインフロー改善への取り組み - クックパッド開発者ブログ
    nettabo
    nettabo 2015/12/06
  • 日々の気づきをクックパッドのサービスとして形にするための取り組み - クックパッド開発者ブログ

    こんにちは、検索・編成部ディレクターの原田です。検索・編成部では検索サービスをはじめとして、主にクックパッドレシピを探す方に向けたサービス開発をしています。 さあ、しっかり企画を立てよう!の落とし穴 突然ですが、例えば 思いつきで施策をスタートしてしまって、後でチームのメンバーがバラバラになってしまった… 関連する部署を調整できなかった… またその逆で、誰かの思いつきの施策によって翻弄されて大変だった… という経験はないでしょうか。 個人の制約を超えて目的を達成できることがチームで仕事をすることの可能性ですが、チームワークの威力は各自が自発的に行動できるようになって発揮されるので、判断を支える明確な目標や指針を含む「企画」が必要になります。 一方で、さあちゃんとした企画を立てるぞ! と意気込んでみても、ちゃんとしたどころか発想すら浮かばない…ということはないでしょうか。毎日の暮らしの中で

    日々の気づきをクックパッドのサービスとして形にするための取り組み - クックパッド開発者ブログ
    nettabo
    nettabo 2015/12/04
  • ウェブ系企業において技術を学ぶことについて - クックパッド開発者ブログ

    技術部の牧です。 最近は主に新卒社員研修や新卒採用選考プロセスの設計などに携わっています。 半年ほど前に書いた「クックパッドの新卒研修2015」という記事の中で、みんなが技術を理解することを大事にしたいという旨を述べました。 クックパッドでは、様々な役割の社員が技術を学ぶことを志すケースが多くあり、このブログでもいくつか事例を紹介しています。 稿では、主にエンジニアではないメンバーが技術を学ぼうというときのモチベーションを分析し、それに対するクックパッドの取り組みについてお話しします。 1. ソフトウェア開発を体験したい 「プログラミングをしてみたい」という話をエンジニア以外の方からたびたび聞きます。 これは、同僚のエンジニアが普段何をしているのかという興味などから来るものが多いです。 この場合は、プログラムを書き、それが動くという体験が重視されます。 その目的にはウェブアプリケーショ

    ウェブ系企業において技術を学ぶことについて - クックパッド開発者ブログ
    nettabo
    nettabo 2015/12/02
  • iOS アプリの UI でこれだけはおさえたい、読み込み中の体験を向上させる基本 UI パターン3つ - クックパッド開発者ブログ

    ホリデー株式会社 *1 の多田です。Holiday ( https://haveagood.holiday/ ) というサービスの開発を行っています。 アプリを通してユーザに価値を届けるためには、アプリの細部のインタラクションを軽視することはできません。細かい部分に気を配り使い心地を良くしてこそ、サービスで当に実現したい価値をユーザにまっすぐ届けることができるためです。 iOS アプリの使い心地を良くするための基的なインタラクションを以前当ブログで投稿した記事でいくつか紹介しましたが、今回は前回紹介しなかったインタラクションのうち、「読み込み中」の UI の基パターンについて取り上げようとおもいます。 はじめに:なぜ読み込み中の UI を考えなくてはいけないのか Holiday iOS アプリでは、基的にデータはクライアント側で持たずサーバと通信して表示するデータを受け取っており、

    iOS アプリの UI でこれだけはおさえたい、読み込み中の体験を向上させる基本 UI パターン3つ - クックパッド開発者ブログ
    nettabo
    nettabo 2015/12/02
  • 管理画面を開発する際に気をつけたこと - クックパッド開発者ブログ

    クックパッド編集室の加々美です。 現在、や暮らしのトレンドを発信するメディアであるクックパッドニュースの開発に携わっています。 「総合職で入社した新卒がクックパッドエンジニアになるまで」 というエントリを投稿した2015新卒の土谷と同様に、2014年に新卒として入社後、総合職から研修を経てエンジニアへと転向しました。 今回は、クックパッドニュースの管理機能の改善を行う際に注意した点についてお話します。 自分がその管理ツールを使う人になる 事業体制の変化もあり、現状のクックパッドニュースの管理画面に関して、いくつかの運用上の問題点が指摘されており、その改善を行いました。 管理画面改善の進め方としては 「現状の業務フローの把握」「問題点の把握」「理想の管理画面の設計」 という基的な手順で取り組みました。 現状把握と問題点洗い出しの方法としてまず思いつくのはヒアリング中心で進めていく方法で

    管理画面を開発する際に気をつけたこと - クックパッド開発者ブログ
    nettabo
    nettabo 2015/11/28
  • たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 たまにネットやイベントなどで「たかがレシピサイトになんでこんな技術力が必要なのか」と言われることがあるので今日はそれに真正面から答えてみようと思います。 例えばどういうところで技術使ってるか 他の人の話はこのブログの他のエントリを見てもらえればわかると思うので、僕の所属しているクックパッド編集室での取り組みの中から今回は料理動画を例に説明します。 Adaptive bitrate streaming での配信 クックパッドで配信している動画は基的に「料理動画を支える技術」でも触れられている配信プラットフォームを利用しています。 ここでは裏で動画を「低画質」「普通」「高画質」の 3 パターンでエンコードして、回線状況に応じて最適な画質の動画を HTTP Live Streaming (HLS) で配信してい

    たかがレシピサイトに何故こんな技術力が必要なのか - クックパッド開発者ブログ
    nettabo
    nettabo 2015/11/28