フレームワーク の検索結果:

【開催レポ】Cookpad.apk #1 〜筋肉はすべてを解決する〜

…で実際に用いた公式のフレームワークFire App Builderを使ったときの良かった点、悪かった点やTV向けアプリで気をつけなけらばならない事をお話させていただきました。 「Gradle Kotlin DSLのあれこれ」 2017年4月入社し、技術部ユーザ決済基盤グループ所属で、現在はモバイルアプリのアカウント管理と決済機能の開発担当をしている宇津からは、Gradle Kotlin DSLに移行するにあたってのノウハウのお話をさせていただきました。 付箋形式でお答えするQ…

インタプリタ開発者によるRubyの挙動解析への道

… といった、性能評価フレームワークの上で動作させる、というのも当然考えられますが(実際、それが格好良く、順当だと思いますが)、私が使い方がよくわからなかったのと、性能測定しないとき(つまり、ほとんどの場合)に、オーバヘッドを残さないようにする自信がなかったため、現在のような素朴な実装になっています。 デバッグカウンタの利用 では、ちょっと miniruby を使って次のサンプルプログラムを実行してみましょう。 # sample code 10_000.times{ s = […

Cloud Firestoreのrulesをテストする

…トテストを行うためのフレームワークです。RSpecのような記述が可能となります。 今回はjestを使った場合でのテストの紹介となりますが、テストのフレームワークは任意のものでも構いません。 また、テストに関連するファイルは、 test/ ディレクトリ以下に配置していきます。 KomercoではCloud Functionsのテストもあるので、 test/rules/ ディレクトリ以下に配置しています。 Firebaseの初期化をする テストで使うFirebaseの初期化をしま…

【開催レポ】Cookpad Tech Kitchen #16 コメルコテックバナシ〜新規事業開発のリアル〜

… A: 外部のモデルフレームワークに則っているからそっちで任せている。モデルに実装を寄せると自由度が落ちる シェフの手作り料理 Cookpad Tech Kitchen ではイベントに参加してくださったみなさまにおもてなしの気持ちを込めて、シェフ手作りのごはんをご用意しております!食べながら飲みながらカジュアルに発表を聞いていただけるように工夫しています。今回お越しいただけなかった方も、ぜひ次のイベントはご参加くださいね。 オリジナルロゴ寿司ケーキとシェフ特製の料理 乾杯の様…

Firebaseを活用したiOSアプリ開発事例

…関数のテスト テストフレームワークはJestを利用しています。 テスト方法はオフラインモードとオンラインモードの2種類あり、オフラインモードで行う場合、データベースの書き込みを全てスタブしなければならないため、オンラインモードで行っています。 オンラインモードではデータベースへの書き込みやユーザーの作成などが実際に行われ、テストコードがその結果を検査できるように、テスト専用のFirebaseプロジェクトとやり取りするテストを作成します。 注意点として、Firebase Tes…

Firebase ML Kitで自作のカスタムモデルを使って料理・非料理画像を判定できるようにした

…のとなります。 他のフレームワークでモデルを学習する場合は一旦TensorFlowのモデルに変換する必要がありますが、変換用のライブラリは色々出てるので、標準的なoperationのみを使っていれば可能だと思います。 後述しますが、TensorFlow Liteではでサポートしているoperationはまだ限定的なので、特殊なoperationを含むモデルを使う場合は自分でTensorFlow Lite側の実装をする必要があります。 また、コンバーターであるTOCOは重みの量…

Railsアプリケーションでフォームをオブジェクトにして育てる

…ビスを高速に開発するフレームワークとしてデビューしました。と同時に、 Web アプリケーションフレームワークとしての使い勝手の良さや時流も手伝って、そう単純でないサービスを作るのにも使われるようになりました。 そうした背景も踏まえて、この数年は Rails の設計に関する興味も高まってきており、MVC だけでないレイヤの導入や DDD の諸アイディアの適用への興味も高まっているように思います。 中でもよく参照される考え方は、Code Climate 創業者の @brynary…

AWS Lambda@Edge で画像をリアルタイムにリサイズ&WebP形式へ変換する

AWS

…ると思いますが、特にフレームワーク等は使っていません。ただし機能の開発中にローカルでも実行できるようにはしてあります。オリジナルレスポンスはダミーの JSON で代替していますが、関数から S3 には実際にアクセスして画像を取得します。開発中はダミーの JSON の中身を適宜変更し、画像ファイルはテスト用の画像を S3 に置いてください。 ローカルの Node.js のバージョンは AWS 上の Lambda の実行環境と合わせて 6.10 としてください。またローカルから …

S3に保存したログファイルをストリーム処理するサーバーレスアプリケーションの紹介

…ーキテクチャのためのフレームワークを紹介したいと思います。 最もシンプルなS3オブジェクトの処理構成とその課題 AWSの環境において、S3に到着したログを処理するのに最もシンプルな構成はどのようなものでしょうか? おそらく下の図のように、S3にオブジェクト(ファイル)が生成されたというイベントによってサーバーレスコンピューティングサービスであるAWS Lambdaが起動し、その後起動したLambdaがオブジェクトそのものをダウンロードして処理する、という構成かと思います。 こ…

"体系的" に開発サイクルを回して "効果的" に学びを得るには

…のサイクルを実現するフレームワークに、BML ループと呼ばれるものがあります。 これは、リーン・スタートアップの中で提唱されているフレームワークで、以下の 3 フェーズから成ります。 仮説からプロダクトを作成する Build プロダクトをリリースしユーザーの利用状況を計測する Measure 得られたデータから知見を抽出し、新たな仮説を構築する Learn これらのフェーズの頭文字を取って BML ループと呼ばれているわけです。 このループを数多く回しながら、その都度学びを得…

Cookpad の新規事業と Firebase

…Store のモデルフレームワークとして Pring を利用し、モデルでは facebook のユーザーIDと名前をプロパティに持つとします。 // User model import Pring class Firebase { } extension Firebase { class User: Object { @objc dynamic var name: String? @objc dynamic var facebookUserID: String? } } コン…

Encoder-Decoder でレシピの材料名を正規化する

…8xlarge を、フレームワークには Chainer を利用しました。やや詳細な話になりますが、Encoder と Decoder には Stacked Uni-directional LSTM(3 層)を使用しました。なお、我々のタスクでは Bi-directional LSTM や Attention はあまり効果がありませんでした。 PR がマージされると Jenkins が起動して、プログラムの実行環境をまとめた Docker イメージが社内の Docker レポジ…

Alignment and Autonomyな組織づくり

…る全社的な戦略立案のフレームワークをそのまま採用しました。Data→Insight→Belief→Betという観点で現状を整理し、サービス開発の観点で「Company Bets (会社として賭けるもの)」について、上長(本部長)との議論を通じてお互いの認識を揃えました。また、後者は、私自身の考えや部署のグループリーダーたちの考えをもとに再整理しました。 結果として、部署で進めるテーマは期初に計画していたものと大きく変わることはありませんでしたが、Spotify Rhythmに…

クックパッドのデータ活用基盤

…eというSQLバッチフレームワークと、 ジョブ管理システムKuroko2の組み合わせで構築しました。 この2つについては過去にだいぶいろいろ書きましたので、 Bricolageについては 「巨大なバッチを分割して構成する 〜SQLバッチフレームワークBricolage〜」 を、 Kuroko2については 「クックパッドのジョブ管理システム kuroko2 の紹介」 を、それぞれごらんください。 Redshift内のデータアーキテクチャ SQLバッチは全体で一番地味ですが、最も…

料理きろくにおける料理/非料理判別モデルの詳細

…ラベルの画像データ フレームワーク:Chainer 最初のリリースでは CaffeNet というモデルを使っています。 これは ILSVRC2012 で優勝した AlexNet を少し変更したもので、pooling が Local Response Normalization の前に来ています。 最初の段階では、素早くリリースまで持っていきたい、社内に画像分析の知見がまだ蓄積していなかった*1、などの理由で、事例も多いこのモデルを採用しました。 データはシンプルに料理画像と非…

Kuroko2の近況

…チ管理の方法をUIがフレームワーク的にアシストしていることが挙げられます。 具体的には、ジョブ定義の際にジョブの説明を書くためのテンプレートが用意されていたり、ジョブのお気に入り機能、自分の管理するジョブが一覧で見れるダッシュボードなどクックパッドでの運用を通して必要とされたものが実装されています。 この点は Kuroko2 の良い点であり今後も重点的に改善を進めていくべき点だと思っています。ただし、当初よりフロントエンドのアーキテクチャが古くなっており、その改良は課題である…

モバイルアプリのアーキテクチャを考える

…avaScript フレームワークがあります。 Flux には下記のような4つの要素があります。 Store アプリケーションで用いるデータ・状態を保持する View Store の持つ状態を UI に反映する Action UI イベントに起因して作られる Store への要求 Dispatcher Action を Store へ送る これらの要素で下図のようなデータフローを構築します。View は Store の持つ状態を購読し、変更があると UI に反映します。ユーザ…

Webpackerを使ったRailsでのJavaScript開発

…サイドのテストと同じフレームワークで書けるので、導入コストがほとんどない という点から、E2EテストでJavaScriptで書いたロジックのテストをすることにしました。 そこで問題になったのは、モジュールのビルドをどのタイミングで行うかです。 いわゆるRails wayなプロジェクトだと、Sprocketsをつかってモジュール管理をすると思うのですが、Sprocketsはアセットのリクエスト時にビルドをしてくれるので、phantomjsなどのヘッドレスブラウザを使ってテストを…

クックパッドのiOSアプリ開発を加速させるスクリプト群

…ないからです。 またフレームワークが増えるほどアプリ起動に時間がかかってしまう問題を防ぎたいというのも理由です。 CocoaPods と Carthage のコマンドを叩き、Carthage がチェックアウトしたライセンスファイル群を CocoaPods の acknowledgements.plist にマージするスクリプトを用意しています。 また、Carthage にはこの記事を書いている時点では更新のあったライブラリだけをビルドし直す仕組みがなかったので、ビルド時間を抑…

Swift 3 マイグレーション

…る Swift でのフレームワークが Swift 3 に対応している必要があります。クックパッド iOS アプリでそれが問題になる可能性を見越していたのもあって、 Swift でのフレームワークの導入を抑えていました。マイグレーションの時点で社外 Swift フレームワークは Himotoki と Result の2つだけだったので、社外フレームワークの Swift 3 対応に関して問題は特になかったです。 すべてのフレームワークが Swift 3 に対応していたら、試しに手…

EarlGreyを使った画面操作を伴う自動テスト

…いうGoogle製のフレームワークの導入を試みています。 この記事では、EarlGreyの導入と現状についてまとめます。 内容は、iOS Test Night #1 でLT発表した内容からの抜粋です。LT資料はこちら。 画面操作を伴うテストの自動化 クックパッドでは、 モバイルアプリの最低限の機能を確認する用途で画面操作を伴うテストを自動化しています。 このテストは、Android/iOSアプリのテストの区分戦略にて定義しているサイズをもとにすると、L/Eサイズに当たるような…

最小限にこだわるサービス開発の試み

…成功に近づけるためのフレームワークやプロセスについては、書籍等で多くの知見が紹介されています。こちらのブログでもクックパッドの例についてご紹介をしてきました。 クックパッドで大事にしているサービス開発の取り組みのひとつに「仮説をスピーディーに最小限の形で確かめる」というものがあります。言うは易しなのですが、そもそも取り組むべき最小限の形とは? それをどうやって見つけるのか? やっとの思いで何かを見つけられたとして、その後最小限にこだわり判断し続けるには? と、大変な困難が伴う…

非SPAなサービスにReactを導入する

…ptやそれを取り巻くフレームワークなどの話題では、サーバ側はAPIのみを提供し、View(HTML)は全てJavaScriptで描画するような、いわゆるシングルページアプリケーション(以下SPA)についてよく語られます。 一方で、SPAを構築するにはコストがかかることも事実で、特にフロントエンドエンジニアが多くない環境では、従来通りサーバーサイドでViewを書きつつ動的な部分だけJavaScriptで処理するというアーキテクチャのほうが現実的な場合も往々にしてあります。 今回…

エンジニア全体ミーティング Tech MTGのすゝめ

…lem, Try) フレームワークを使って振り返り行い、Problemで挙がった問題点を改善するためにTryの内容をissueに書き込んで次回改善されていたら閉じる、というように地道な作業をしています。 また、準備期間をしっかりとれるように、約一ヶ月前には企画を固めて登壇者に依頼しています。 大きな機能のリリースや社内外のイベントに参加した社員(カンファレンスへの参加、社内勉強会など)がいないか、最近技術的にホットな話題とそれに精通している社員がいないか等から運営メンバー間で…

クックパッド サマーインターンシップ2016の資料を公開します

…ちらも、テスティングフレームワークRSpecの使い方や気の利いたAPIの説明などはインターネット情報にお任せしたうえで、「なぜTDDするのか」「何を考えてテストに駆動させるか」という 気持ち を伝えたい構成でした。 資料: https://speakerdeck.com/moro/about-tdd-at-cookpad-summer-intern-2016-day1 1日目 Rails (@moro) ボリュームたっぷり1日目のラストは、Ruby on Railsを使ったW…

「プログラミングElixir」から分散系の世界へ踏み込もう

… x Phoenixフレームワーク を使い構築したり、HTTPリクエストをrecord/play/proxyするテストツールとしてhttp_proxyを実装していたりしました。 (社内向けWebアプリケーションのコード分布) そんな折、翻訳者の笹田さんから恵贈いただきましたので、簡単ですがElixirについてここで書いてみます。 私がElixirを学びはじめたわけ:分散と並行処理 私は、大学の頃にソフトウェアの信頼性や、分散系の問題であるThe Byzantine Gener…

デザイナー横断組織の変遷

…インのガイドライン、フレームワーク化が促進され仕組みが整い効率化されました。そして、個々のデザイナーにとっても視野が広がることでこれまで幅広い仕事の領域にトライでき成長にもつながったと思っています。コーディングが得意な人、イラストが得意な人、UI が得意な人、ディレクションできる人がコミュニケーションを高め、教えあう環境を自然に作り個々の経験を高めるということです。結果、苦手なところを補いあってトータルの完成度も高められたのではないかと感じています。 そんな過程で、それぞれが…

インフラ新卒研修と社内ISUCONのはなし

…利用されている言語・フレームワーク) 新卒研修で学んだことを活かせるよう、N+1クエリ、スロークエリなど日常でお目にかかるような消耗ポイントを用意しました テーマは「雑実装なクックパッド」でした ベンチマーク(ryot_a_rai) Gatlingをつかって実装しました。レスポンスをチェックできたり、テストデータを流し込めたりと、簡単な社内ISUCONでは十分機能しました。 スコアやベンチマークの成否などはGatlingのsimulation.logから算出しました サーバの…

Try! Swiftで感じた将来

…ftに留まらずiOSフレームワーク(CoreData、CoreAnimation、HomeKit)やテスティング、ユーザビリティ、コードリーダビリティなど、様々でした。 Swiftとは Swiftとは2014年のWWDCでAppleが公開し、プログラマーコミュニティを驚かせたプログラミング言語です。モダン、安全、書きやすくて読みやすい、既存のObjective-Cのコードベースに同時と使える言語と言われました。 実は「そんなにすごいのか」の議論はまだまだ続いています(Swif…

ブラウザから使える O/R マッパ、 js-data を使ってみる

… などの Flux フレームワークを導入するまでもないんだけど、React.js と組み合わせてデータのアクセスの部分だけ抽象化してくれるライブラリはないかな……。ということで調査したのが、js-data を見つけるきっかけでした。 自分以外の特定のフレームワークに依存していないので、React.js で管理されたコンポーネントとそれ以外のコンポーネント、両方でこのライブラリをモデル層として使用することもできます。 名前で損をしている感じがあるのですが、なかなか使いやすいやつ…