タグ

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

  • モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ

    こんにちは、サービス開発部の森川 (@morishin127) です。主にクックパッドの iOS アプリの開発に携わっています。 日々アプリを開発する中で、近頃は最適なアーキテクチャとは何かを考えながら色々な形を試行錯誤しています。世の中で採用されているモバイルアプリのアーキテクチャには様々なものがあります。MVC, MVP, MVVM, VIPER, Clean Architecture などなど。開発している、あるいは開発しようとしているアプリケーションでどういったアーキテクチャを選択するかというのは難しい問題です。選択するためにはアーキテクチャに求める要件を定義する必要があります。この記事では私がアーキテクチャに求める要件と、それらをある程度満たすと考えた MVVM と Flux という2つのアーキテクチャで実装したサンプルを見つつその長所・短所について考えてみようと思います。 アー

    モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ
    kasajei
    kasajei 2017/05/19
  • ディレクターがSQLを使えてよかった話 - クックパッド開発者ブログ

    こんにちは。ディレクターの川原田です。 クックパッドでお気に入りレシピを保存する「MYフォルダ」のサービス開発や、保存・記録に関する新規サービスの検討・開発を担当しています。 ディレクターの仕事は様々ありますが、今回は私が身につけたことで仕事領域が広がった!と感じているSQLについてお話ししたいと思います。 いきなりですが、SQLが使えてよかった点をまとめると以下です。 よかったこと 数値抽出から分析まで自己完結 エンジニアとのコミュニケーションがスムーズに 仕事が増えていそうで実は効率アップ 周囲の知的好奇心を刺激 それぞれ具体例を交えてお話します。 数値抽出から分析まで自己完結 事例1:ログ構造を理解でき後の仕事がスムーズに 昨年、アプリのサービス開発を担当した際、エンジニアの設定したログが、実際に送信されるかどうかを事前チェックをしました*1。 アプリのリリースはタイミングが決められ

    ディレクターがSQLを使えてよかった話 - クックパッド開発者ブログ
    kasajei
    kasajei 2016/07/06
    re:dashだ
  • 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ

    こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推

    日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
    kasajei
    kasajei 2016/05/12
    すごい
  • Try! Swiftで感じた将来 - クックパッド開発者ブログ

    こんにちは。広告事業部のモバイルエンジニアパヴェウ @RusinPaw です。 先日、3月に東京で開催されたtry! Swiftカンファレンスに行ってきました。開催者のおかげで世界中の様々な優秀なスピーカーが発表してくれました。発表内容はSwiftに留まらずiOSフレームワーク(CoreData、CoreAnimationHomeKit)やテスティング、ユーザビリティ、コードリーダビリティなど、様々でした。 Swiftとは Swiftとは2014年のWWDCでAppleが公開し、プログラマーコミュニティを驚かせたプログラミング言語です。モダン、安全、書きやすくて読みやすい、既存のObjective-Cのコードベースに同時と使える言語と言われました。 実は「そんなにすごいのか」の議論はまだまだ続いています(SwiftとObjective-Cをミックスする時に困っている場合がある)が、Swi

    Try! Swiftで感じた将来 - クックパッド開発者ブログ
    kasajei
    kasajei 2016/04/09
    やっぱり新規は使ってるけど、って感じよね
  • Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ

    こんにちは。新規広告開発部所属エンジニアのレオ(@lchin)です。普段は広告配信関係のシステムを開発していますが、ここ最近「データサイエンス」に興味を持ち始めました。雑に説明すると、データサイエンスは統計学や機械学習などを用いて莫大のデータから価値を引っ張り出す分野です。今回のtechlifeは、そのデータサイエンスを学ぶ過程で知ったツールJupyter NotebookをRuby on Railsの開発に役に立つ使い方を紹介します。 Jupyter Notebookとは何か Jupyter Notebook*1は科学者の「実験ノート」にインスパイアされたウェブ上のインタラクティブシェル環境です。ただのインタラクティブシェル環境ではなく、ソースコード、その実行結果、解説する文書、数式、画像などをまとめて1つの「ノートブック」ドキュメントとして扱えることが特徴です。 Jupyter Not

    Railsエンジニアに役立つJupyter NotebookとiRuby - クックパッド開発者ブログ
    kasajei
    kasajei 2016/01/27
  • GitベースのコードリーディングTips - クックパッド開発者ブログ

    こんにちは、投稿推進部の森川 (@morishin127) です。 エンジニアが既存のプロダクトの開発に携わる際、他人の書いたソースコードを読み解くところから始まります。過去に書かれたコードの意図を理解することは自分が書いたものでもしばしば難しく、他人が書いたものならなおさらです。この記事では過去に書かれたコードを理解するための工夫についてお話したいと思います。 なお、この記事ではプロダクトのソースコードはgitおよびGitHubのPull Requestを利用して開発が進められていることを前提としています。 特定の行から関連するPull Requestページを開く クックパッドのソースコードには概してコメントがあまり書かれておらず、見ただけでは理解しづらいような特殊な方法をとっている場合のみコメントを書いている印象です。基的に実装に関する説明はソースコード中ではなく、GitHubのPu

    GitベースのコードリーディングTips - クックパッド開発者ブログ
    kasajei
    kasajei 2015/11/18
    もりしん!
  • 部署の課題を継続的に改善する取り組み - クックパッド開発者ブログ

    はじめに こんにちは、投稿推進部の勝間です。 約1年前、「サービス開発エンジニアからマネージャになった話」というエントリを投稿しましたが、現在も試行錯誤しながらマネジメントに取り組みつづけています。 「組織は生きもの」とも言いますが、私の部署もまた生きもののように、日々いろいろな課題が生まれ、それに取り組んでいます。今回は、そのような部署で私が感じた課題と、それに対する具体的な取り組みについて、いくつか事例とあわせてご紹介します。 1. 業務外の問題に目を向ける 私の部署では、毎日約5分間の朝会を開いています。 1人30秒くらいで、「今日取り掛かること」「参加するミーティング」「その他勤怠など含めて共有すべきこと」を共有します。 朝会を行うことでそれぞれの業務的な進捗を確認でき、また、内容について疑問に思ったこともすぐに確認、理解できる状態を作ることができていました。 一方で、業務と直接関

    部署の課題を継続的に改善する取り組み - クックパッド開発者ブログ
    kasajei
    kasajei 2015/10/23
  • 機械学習によるレシピの自動分類、その裏側 - クックパッド開発者ブログ

    こんにちは。検索編成部&研究開発チームの原島です。 クックパッドレシピには、内部で、様々な情報が付与されています。例えば、こちらの「母直伝♪うちの茹でない塩豚」というレシピには「肉料理」という情報が付与されています。これらの情報は、クックパッドの様々なプロダクトで利用されています。 レシピに情報を付与する方法は沢山ありますが、その一つに機械学習があります。クックパッドでは、レシピが肉料理か否か、魚料理か否か、...という分類を行うことで、「肉料理」や「魚料理」などの情報をレシピに付与しています。 今日は、分類をどのように実現しているか、その裏側を紹介します。 ■ 実装フェーズ まず、分類器を実装する際に気をつけたことを紹介します。 モデルを決定する 分類を行うには、そのための機械学習のモデルを決定する必要があります。クックパッドでは、十分な精度が出るだけでなく、リファレンスが多いという点

    機械学習によるレシピの自動分類、その裏側 - クックパッド開発者ブログ
    kasajei
    kasajei 2015/10/01
  • 夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ

    こんにちは!クックパッド編集室メディア開発グループ長の @yoshiori です。 このまえ夏の技術職インターンシップの前半の開発講義・課題部分が終わったのでさっそく公開しちゃいます! ちなみにこのインターンの対象者はプログラミングはわかるし自分で(授業とかではなく)コード書いている人なので超初心者向けでは無く、少なくともひとつ以上の言語でプログラミングが出来る人向けです。 一日目 TDD + git 編(@yoshiori) 講義初日なのでまずは簡単に肩慣らし & 開発の基礎の部分として TDD と git で始めました。 git については軽く説明し TDD は基のテストファーストで進めて行きました。 ちゃんと何かをするたびにテストを実行し、メッセージを見れば次にすることが分かるというのを体験してもらい、GREEN が良くて RED が悪いのではなく、GREEN を想定しているのに

    夏の技術職インターンシップ講義資料公開 - クックパッド開発者ブログ
    kasajei
    kasajei 2015/09/08
  • MacからiPhoneに遷移させよう - クックパッド開発者ブログ

    こんにちは。モバイルファースト室の中村(@_nkmrh)です。 突然ですが、Mac上で探したレシピをすぐiPhoneで見られると便利だと思いませんか? 先日リリースしたiOSクックパッドアプリではそれが出来るようになりました。 とても便利なのでぜひ活用してください。 ※ 実はこの便利機能、次のバージョンで一旦取り下げ、問題を解決したあとで再度導入することになりました。以降の記事で事情を説明します。 Mac OS X YosemiteがインストールされたMac、iOS 8がインストールされたiPhone 5以降、iPad 第4世代、iPad Air、iPad mini、iPad mini Retinaディスプレイモデル、iPod touch 第5世代でご利用いただけます。 MaciPhoneに同じiCloudアカウントを設定して下さい。 これがその様子...。 Mac上のSafariでクッ

    MacからiPhoneに遷移させよう - クックパッド開発者ブログ
    kasajei
    kasajei 2014/12/14
  • 資料を公開しました(サイバーエージェント×クックパッド合同勉強会~それぞれのクラウド活用事例) - クックパッド開発者ブログ

    5/25(水)に、サイバーエージェント様と勉強会を開催いたしました。 そのときにクックパッドエンジニアが使用した発表資料を公開いたしますので ぜひご覧くださいませ。 当日お忙しい中お集まりくださった皆様、Ustreamでご覧になった皆様、どうもありがとうございました! ●成田一生 [slideshare id=8150494&doc=20110525tofu-110530080429-phpapp02] ●菅原元気 [slideshare id=8120106&doc=random-110527001900-phpapp01] ●濱崎健吾 [slideshare id=8107056&doc=110525amepad-110526022442-phpapp02] Ustreamはこちらからご覧ください。 クックパッドでは、これからもこのようなイベントを不定期に開催予定です。 こちらのブログ

    資料を公開しました(サイバーエージェント×クックパッド合同勉強会~それぞれのクラウド活用事例) - クックパッド開発者ブログ
    kasajei
    kasajei 2011/06/02
    クラウド
  • 1