タグ

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

  • モバイルアプリの開発上の違和感・痛みに向き合い、少しずつでも前進するための取り組み - クックパッド開発者ブログ

    こんにちは、モバイル基盤部の茂呂(@slightair)です。 いやー12月になって寒くなってきましたね。 この記事では最近部で始めた「アーキテクチャ課題共有会」という取り組みについて紹介したいと思います。 開発中に感じる痛み いきなりですが、モバイルアプリの開発中に痛みを感じたり違和感を持ったことはありませんか? 痛みというと大げさかもしれませんが、例えば以下のような設計・実装上のつらみ、悩みのタネたちのことを指します。 同じような記述を毎回書く必要がある 採用している設計パターンにあてはめようとすると、実装しづらい場合がある 必要となる場面が多い割にできないことがある 適切に扱うのが難しく、使い方を間違えやすいものがある 複雑で理解するのが難しい、手を入れられない 特に複数人で開発しているアプリプロジェクトだと、自分でそういう痛みを感じることもあれば、他の人からそういう声が聞こえてくる

    モバイルアプリの開発上の違和感・痛みに向き合い、少しずつでも前進するための取り組み - クックパッド開発者ブログ
    braitom
    braitom 2020/12/20
    よい取り組み“定期的にきちんと課題に向き合う時間を作って運用してみることにしました。 前述の通り、アプリのアーキテクチャに関する話題が多かったので「アーキテクチャ課題共有会」という名前で始めています”
  • ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ

    こんにちは。クリエイション開発部の丸山@h13i32maruです。 みなさんドキュメント書いてますか?私はドキュメントを書くのは結構好きです。最近もプライベートで開発しているJasperというGitHub用Issueリーダーのユーザ向けドキュメント(マニュアル)を書きました。でも良いドキュメントを書くのって難しいですよね。 そこで、記事では「ツールやライブラリなどを対象にしたユーザ向けドキュメント」を書くときに私が考える原則を紹介します。ちなみに私はテクニカルライティングの専門家ではなく、普通のソフトウェアエンジニアです。そのあたりはいい感じに汲み取っていただけると🙏 🕵️メンタルモデルの原則 良いドキュメントとはどのようなものなのでしょうか?私は「そのツールやライブラリに対して読者がメンタルモデルを構築できる」のが良いドキュメントだと考えています。これを「メンタルモデルの原則」と呼

    ドキュメントを書くときの「メンタルモデルの原則」 - クックパッド開発者ブログ
    braitom
    braitom 2020/11/28
    大事なやつだ。“以下のことを意識してドキュメントを書くことが重要だと考えています。1.読者の現在のメンタルモデルや目的 2.演繹的・帰納的な説明”
  • 負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ

    技術部 Site Reliability (SR) グループの id:itkq です。2020 秋タイトルで一番期待しているのはおちこぼれフルーツタルトです。エントリでは、Web サービスの負荷試験に対する障壁を下げるために、汎用的な Web コンソール開発に至ったまでの話を書きます。 Web サービスの負荷試験の障壁を下げたい クックパッドでは、マイクロサービスを支える基盤が成熟しており、新規サービス開発や、サービスリニューアルなどの機能開発の場面では、疎結合な新規のマイクロサービスとして実装されることが多いです。このようなサービスをリリースする際は、予想されるトラフィックに対して、実際にそれを捌ききれるかどうかテストする、いわゆる負荷試験をすることは一般的です。これまで、サービスリリース時に、負荷試験をきちんと行うこともあれば、負荷試験を行わないこともありました。負荷試験が行われない

    負荷試験用 Web コンソールの開発 - クックパッド開発者ブログ
    braitom
    braitom 2020/10/23
    Serverless-artilleryを使った負荷テストについて。選定理由や検証した内容などがまとめられている。
  • エンジニア社内留学制度を利用してAndroidアプリ開発を体験した話 - クックパッド開発者ブログ

    こんにちは、事業開発部でデータ分析やデータエンジニアリングをやっている佐藤です。最近の楽しみはクックパッドマートで買ったコーヒー豆を挽いて淹れることです。 今日はクックパッド社内で実施されているエンジニア社内留学制度について紹介します。 エンジニア社内留学制度とは エンジニア社内留学制度は「異動をすることなく短期的に他の部署でその部署の仕事をする制度」というもので2019年4月に作られました。 この制度は異動をせずに視野を広げたり自分のキャリアを考えるための制度であり、普段自分が関わらない技術や分野に対して新しいチャレンジをする機会を提供するための制度です。 エンジニア社内留学制度を利用することで、最大2ヶ月の間もとの部署の仕事から離れて留学先部署の業務に取りかかれます。これは全エンジニアが利用可能な制度です。 この制度の概要は上記のとおりですが、制度を利用して留学させる・受け入れる側を含

    エンジニア社内留学制度を利用してAndroidアプリ開発を体験した話 - クックパッド開発者ブログ
    braitom
    braitom 2020/07/17
    社内留学面白いな
  • KPI 設定の難しさについての思索とそれに付随した細かな考察 - クックパッド開発者ブログ

    こんにちは、事業開発部でプロジェクトマネージャー兼エンジニアをやっている新井(@SpicyCoffee)です。10 万円の申請書を書く前に 20 万円のパソコンを買いました。 クックパッドでは、毎日の料理を楽しみにするべく日々サービス開発がおこなわれています。稿では、サービス開発の中でも重要かつ難解な「KPI の設定」について、私がプロジェクトマネージャーとして普段考えていることや注意している点を紹介します。 KPI を決めるのは難しい サービス開発において KPI を設定し、それを改善するような施策や検証を繰り返していくことは基中の基です。しかしながら、現実には「KPI を設定する」という行為自体の難易度が非常に高く、日夜頭を悩ませている開発者のみなさんも多いのではないでしょうか。 以下では、その要因の一つである「KPI は複数の要件を満たす必要がある」ことについて考えます。 満た

    KPI 設定の難しさについての思索とそれに付随した細かな考察 - クックパッド開発者ブログ
    braitom
    braitom 2020/06/12
    KPI設計について。KPIが満たすべき要件について、KPIを設定するときの考え方、試作を実行するときの注意点などについて書かれている。
  • インフラにかかるコストを正しく「説明」するための取り組み - クックパッド開発者ブログ

    技術部 SRE グループの mozamimy です。 クックパッドでは、 SRE が中心となって、サービスを動かす基盤の大部分である AWS のコスト最適化を組織的に取り組んでいます。 昨年夏に公開した記事である、インフラのコスト最適化の重要性と RI (リザーブドインスタンス) の維持管理におけるクックパッドでの取り組みでは、 なぜインフラのコスト最適化が必要なのか、具体的にどのような考え方に沿って進めてゆけばよいのか。 SRE が一括して管理する AWS のリソースプールそのもののコスト最適化を実践するための具体的な取り組みの一例として、RI のモニタリングや異常時の対応フローによる維持管理。 といった話題にフォーカスしました。 今回は、インフラにかかるコストを正しく「説明」するための取り組みということで、コスト最適化に貢献する社内アプリケーションである Costco (Cost Co

    インフラにかかるコストを正しく「説明」するための取り組み - クックパッド開発者ブログ
  • 在宅勤務環境の継続的改善 - クックパッド開発者ブログ

    コーポレートエンジニアリング担当 VP の @kani_b です。 新型コロナウイルス感染症の拡大リスクを鑑みて、従業員や関係者の皆さまの安全確保を目的に、クックパッドでは 2/18 (火) から、国内拠点の全従業員(正社員、契約社員、パート・アルバイト、派遣社員、通常在席の業務委託)を対象に在宅勤務の原則化を実施しています。現在は5月末まで継続する予定としています。 クックパッド、新型コロナウイルス感染症の拡大に伴う在宅勤務(Work from Home)を5月末まで継続のお知らせ | クックパッド株式会社 また、クックパッドでは、今の状況にあわせた、料理に関する様々な取り組みを進めています。そうした取り組みを集めたページをオープンしていますので、こちらもぜひご覧ください。 私たちは、料理でつながろう | クックパッド株式会社 さて、在宅勤務が開始された 2 月に、在宅勤務に対する取り組

    在宅勤務環境の継続的改善 - クックパッド開発者ブログ
    braitom
    braitom 2020/04/23
    椅子やデスクのレンタルもしているのかー
  • license-tools-pluginの移行に関するお知らせ - クックパッド開発者ブログ

    はじめまして、クックパッドAndroid開発を担当している吉田です。 記事は弊社がOSSとして公開していたAndroid向けのライセンス管理プラグインに関するお知らせです。 2行まとめ cookpad/license-tools-plugin はアーカイブしました 今後は互換性があるcookpad/LicenseToolsPluginを作成したのでお試しください 旧license-tools-pluginをアーカイブした背景 クックパッドでは社内で利用していたライブラリのいくつかをOSSとして公開します。これらは国内外を問わず多くの方にご利用頂いていることを観測しており、皆様の開発が僅かでも効率化されていればとても嬉しく思います。 さてOSSについてまわるのがメンテナンス問題です。クックパッドエンジニアもここ数年で入れ替わりライブラリの著者が既に在籍していないケースもあります。lic

    license-tools-pluginの移行に関するお知らせ - クックパッド開発者ブログ
    braitom
    braitom 2020/01/17
    企業でOSS公開しているとこういう問題起きちゃうよね。“ライブラリの著者が既に在籍していないケースもあります””issueやPRが届く度に持ち回りで対応していたのですが直近ではほとんど対応出来ていない状態”
  • Grafana の scripted dashboards を利用してダッシュボードを自動生成する - クックパッド開発者ブログ

    技術部 SRE グループの鈴木 (id:eagletmt) です。 去年クックパッド開発者ブログでも紹介した hako-console の延長として、メトリクス表示に Grafana の scripted dashboards を利用するようにしているのでその紹介をしようと思います。 アプリケーション毎のダッシュボード クックパッドではダッシュボードの作成に Grafana を利用しており、主に Amazon CloudWatch と Prometheus に保存されているメトリクスを Grafana で可視化しています。それ以外にも一部開発用のメトリクスは InfluxDB に保存しており、その可視化にも Grafana が利用されています。 Grafana の variables 機能を利用すればリソースの種類毎にダッシュボードを作成することは簡単です。 ELB のロードバランサー名、

    Grafana の scripted dashboards を利用してダッシュボードを自動生成する - クックパッド開発者ブログ
    braitom
    braitom 2019/07/24
    GrafanaのScripted Dashboardsという機能について。JavaScriptで動的にダッシュボードを制御できる。
  • Firebaseで運用するKomercoの管理用アプリケーションの開発 - クックパッド開発者ブログ

    こんにちは。Komerco事業部エンジニアの高橋(id:yosuke403)です。「料理が楽しくなるマルシェアプリ」であるKomercoの開発を行っています。 Webサービス開発と聞くとユーザが利用するWebアプリやモバイルアプリの開発を思い浮かべますが、運営スタッフがサービスのデータを閲覧・更新するための管理用アプリケーションの開発も必要になることがほとんどです。 KomercoはバックエンドにFirebaseを活用しているのを一つの特徴としているサービスです。 今回はKomercoの開発事例を通して、Firebaseを用いた管理アプリケーション開発の知見をご紹介したいと思います。 Komercoの管理用アプリケーションについて KomercoではFirebaseのHostingを利用し、Webで管理用アプリケーション(以下、管理アプリ)を提供しています。 Komercoの管理アプリでで

    Firebaseで運用するKomercoの管理用アプリケーションの開発 - クックパッド開発者ブログ
    braitom
    braitom 2019/07/05
    なるほどー。“Firestoreには誰がどんな操作をしたのかをログ出力する機能がありません。 そのため...、直接Firestoreへはアクセスさせず、Cloud Functionsを経由して読み込み、書き込みを行うようにしています”
  • Markdown と GitHub で社内規程を便利に管理 - クックパッド開発者ブログ

    VP of Technology の星 (@kani_b) です。技術基盤や研究開発領域などを担当しつつ、社内の色々なことを技術の力でいい感じにする仕事をしています。セキュリティAWS の話が好きです。 さて、みなさんは、ご自身が勤務する会社の就業規則を読んだことはあるでしょうか。 エンジニアに限らず、会社の全スタッフが仕事をする上で関わってくるのが、就業規則や情報セキュリティドキュメントなど、会社のルールや規程を記す文書です。 特にセキュリティやインフラに携わるエンジニアは、その改訂も含め携わったことがある方もいるのではと思います。 よくある文書管理 こうした文書は、以下のように管理されていることが多いようです。 ベースドキュメントは Word 保存時は PDF で保存 版管理は Word の編集履歴 + PDF に保存する際のファイル名 編集は担当部門, 担当者のみが行う かつての

    Markdown と GitHub で社内規程を便利に管理 - クックパッド開発者ブログ
    braitom
    braitom 2019/06/28
    ほんとこれ。“そもそも、そこまで頑張って整えている体裁は本当に必要…?”ルールの提案もPRでできるのめっちゃいいな。
  • クックパッド基幹システムのmicroservices化戦略 〜お台場プロジェクト1年半の軌跡〜 - クックパッド開発者ブログ

    インフラストラクチャー部の青木峰郎です。 最近はDWH運用の傍ら、所属とまったく関係のないサービス開発のためのデザインスプリントをしつつ、 Java 10でgRPCサーバーを書きつつ、 リアクティブプログラミングを使った非同期オーケストレーション層を勢いだけで導入したりしています。 ですが今日はそれとはあまり関係なく、クックパッドの中核サービスであるレシピサービスの アーキテクチャ改善プロジェクト、「お台場プロジェクト」の戦略について話します。 これまで、お台場プロジェクトで行った施策について対外的に発表したことはあっても、 全体戦略について話したことはありませんでした。 その一番の理由は、正直に言って、プロジェクトオーナーであるわたしにもプロジェクト全体の姿が見えていなかったからです。 しかし現在プロジェクト開始から1年半が経過してようやく全貌が見えてきたので、すべてをお話ししようと思い

    クックパッド基幹システムのmicroservices化戦略 〜お台場プロジェクト1年半の軌跡〜 - クックパッド開発者ブログ
    braitom
    braitom 2018/12/30
    クックパッドの大規模アーキテクチャ刷新プロジェクトの概要や戦略について。すごいな。
  • Catchpointを使ったWebページのパフォーマンス計測 - クックパッド開発者ブログ

    技術部開発基盤グループの外村です。最近はクックパッドレシピサービスのWebフロントエンドの改善に取り組んでいます。その一環でWebサイトのページロードのパフォーマンス計測をおこなっているので、今回はその取り組みについて紹介します。 Webページのパフォーマンスといっても、文脈によってそれが指すものは様々です。サーバーのレスポンスタイムのみを指すこともあれば、ブラウザがページをレンダリングするまでの時間を指すこともあります。また、レンダリング後にUIの操作やアニメーションがどのぐらいの速度で動くかというのもWebページのパフォーマンスの1つです。今回はブラウザでWebサイトを開いてからページが表示されるまでのパフォーマンス(ページロードのパフォーマンス)にフォーカスします。 継続的なパフォーマンスの計測 ページロードのパフォーマンスを計測する手法はいくつかあります。まず、簡単なのは Goo

    Catchpointを使ったWebページのパフォーマンス計測 - クックパッド開発者ブログ
  • Android版クックパッドアプリで採用している技術の現状確認 2018年版 - クックパッド開発者ブログ

    目次 目次 はじめに 技術選択の各論 開発環境 targetSdkVersion minSdkVersion Kotlinの導入 HTTP Client Dependency Injection Image Loader Debugging Android Emulator on Jenkins コードレビューbot リリースエンジニアリング おわりに はじめに 技術部の門田( @_litmon_ )です。 Androidクックパッドアプリで採用している技術の現状確認 2015年版 から3年、Androidアプリ開発を取り巻く環境も大きく変わってきました。 エントリでは、以前のエントリからこれまでにAndroidクックパッドアプリにあった技術選択の推移や、現在の状況を記していきます。 技術選択に関する基的な方針などは変わっていないので、前回のエントリ( Androidクックパッド

    braitom
    braitom 2018/11/20
    クックパッドのAndroidアプリで採用している技術について。targetSdkVersionについて、主要ライブラリの変更、CI周りの変更についてなど。
  • Chaos Engineering に向けてレシピサービスの Steady State を追求する - クックパッド開発者ブログ

    こんにちは、今年ソフトウェアエンジニアとして新卒入社した @itkq です。社会人になってから 1 クールで見るアニメの数がガクッと減っていることに気づいて最近は無力を感じています。さて、この開発者ブログで「Chaos Engineering やっていく宣言*1」が公開されたことは記憶に新しいと思います。私はインフラストラクチャー部 SRE グループに配属され、最近は Chaos Engineering に関わる取り組みも行っています。その中から今回は「レシピサービスの Steady State を追求する」取り組みについて、背景や現状も含めて紹介します。 Steady State とはなにか、なぜ必要か 一昔前の Web サービスといえば、様々な機能が 1 つのアプリケーション上に実装されたモノリシックアーキテクチャが一般的でした。その後サービスという単位で機能を切り出して別アプリケー

    Chaos Engineering に向けてレシピサービスの Steady State を追求する - クックパッド開発者ブログ
    braitom
    braitom 2018/11/15
    Steady Stateについて。ユーザの体験という外的な状態をもってシステムが正常であるかの判断基準となるもの。Chaos EngineeringではこのSteady Stateに変化が見られないという仮説を検証する。なるほど。
  • SketchからFigmaに移行してチーム間でのコミュニケーションがしやすくなりました - クックパッド開発者ブログ

    こんにちは、メディアプロダクト開発部のデザイナ若月 ( id:puzzeljp ) です。 現在関わっている、一緒につくれるクックパッド | cookpadTV のアプリ開発上のチーム間のやりとりについて今回は書きたいと思います。 cookpadTV は料理上手な有名人や料理家がクッキング LIVE を生配信しているサービスです。クッキング LIVE を見られるのは、iOS アプリ・Android アプリ・FireTV アプリとなっています。 cookpadTV のデザインデータを Figma に乗り換えました cookpadTV に私がジョインしたのは、今年の8月です。 cookpadTV アプリがリリースされたのは3月なので、デザインを引き継ぐ形でジョインをしました。 私がジョインしたタイミングで、社内で Figma が使われる事例が増えてきたので、 Figma に移行を行ってみました

    SketchからFigmaに移行してチーム間でのコミュニケーションがしやすくなりました - クックパッド開発者ブログ
    braitom
    braitom 2018/10/31
    デザインツールをSketchからFigmaに移行した話。URLを共有するだけでチームにデザインを共有できるようになった、画像の書き出しをエンジニアがデザイナに頼まず直接できるようになったなど。
  • 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 やっていく宣言 - クックパッド開発者ブログ
    braitom
    braitom 2018/08/04
    なるほど。こういう理由でSpotインスタンス使うのいいな。“耐障害性の高いシステムを作るためにはやらなければいけない事をSpotインスタンスの環境にする事によって強制するようになっただけです”
  • Firebaseを活用したiOSアプリ開発事例

    こんにちは。新規サービス開発部の中村です。 最近Komercoで販売されている鉄のフライパンが欲しいです。クリエイターさんたちの作品は見ているだけで当に楽しいですね。 そんなKomercoはバックエンドにFirebaseを活用していますが、実は弊社からKomercoの他にもFirebaseを活用したサービス「Cookin'」をリリースしています。 稿ではCookin'のFirebaseを活用した事例についてご紹介します。 Cookin'とは Cookin'は料理動画撮影アプリです。手順ごとに3秒間取るだけで1料理動画が投稿できるサービスとして、2017年12月にiOSアプリとしてリリースしています。 このサービスの特徴は、簡単に料理動画が作成できるほかに、投稿から斬新なアイデアを得られたり、コメント欄から料理のコツやポイントを気軽に質問できるところです。 料理をしながら動画撮影する

    Firebaseを活用したiOSアプリ開発事例
    braitom
    braitom 2018/07/18
    Firebaseの各種サービスの説明と、それをどのようにアプリ内で活用しているかが書かれている。
  • x3 Speed Up Android CI at Cookpad - クックパッド開発者ブログ

    海外事業部の松尾(@Kazu_cocoa)です。こちらは、私たちの x3 Speed Up Android CI at Cookpad に公開した記事の日語訳です。英語でご覧になりたい方は原文を一読ください。 以下に登場するAndroidアプリは海外版のクックパッドアプリとそれにまつわる環境を指します。国内のものと構成も異なるところがありますので、そのあたりを頭に入れつつ読んでいただければと思います。 この記事では、現在のAndroidアプリ開発向けCI環境の紹介とその環境構築の流れを紹介します。現在の環境では、GitHub上に作成されたプルリクエストへのプッシュ毎にビルド・テストの実行含めて処理が 7分程度 で完了します。これらの処理にはAPKの作成、各種テストの実行が含まれます。 以前は、私たちのCIはプッシュ毎に 合計で25分程度 かかっていました。そのころは、2つの役割の異なるJ

    x3 Speed Up Android CI at Cookpad - クックパッド開発者ブログ
    braitom
    braitom 2018/07/10
    AndroidアプリのCI高速化について。AWSのベアメタルインスタンスを使いAndrodエミュレータ向けのVMアクセラレーションの各種機能を利用。エミュレータを並列起動して高速化。
  • 無理をしないコードレビュー - クックパッド開発者ブログ

    会員事業部の三吉(@sankichi92)です。 クックパッドでは、GitHub Enterprise の Pull Request を使ったコードレビューを広く実施しています。 この記事では、私がコードレビューすることに対する苦手意識をなくすために意識したことを紹介します。 クックパッドでは、テックリードや新卒、インターン、バイトといった肩書きに関係なく、誰もがレビュワー・レビュイーになります。 チームやプロダクトによって開発ルールは少しずつ異なりますが、私の所属する会員事業部では、PR を出したときに GHE やチャットで部内のエンジニアにメンションして、その時にレビューできる人がレビューするという形を取っています。 私は、昨年2017年に新卒入社したのですが、それまでは個人開発や研究用のコードしか書いたことがなく、短期インターンシップを除くチーム開発の経験がありませんでした。 配属当

    無理をしないコードレビュー - クックパッド開発者ブログ
    braitom
    braitom 2018/06/23
    “レビューしていると、どうしても細かいところが気になってしまうものです。 そうしたときは、[nits] や [IMO] といったラベルをレビューコメントの先頭につけて、修正の判断を実装者にゆだねます”