ブックマーク / blog.otakumode.com (8)

  • PromiseとCallbackの両方に対応する関数の書き方 | Tokyo Otaku Mode Blog

    こんにちは。Tokyo Otaku Mode(TOM)ソフトウェアエンジニアの稲田です。 TOMが開発、運営している自社ECサイトのotakumode.comのバックエンドは現在Node.jsで動いています。その中で多数の関数が定義され利用されていますが、そのほとんどがCallbackを取るようになっています。 しかし最近、バックエンドのNode.jsのバージョンがv6.11.xにアップデートされジェネレータが使えるようになり、co + yieldの組み合わせで同期的な書き方ができるようになりました。このco + yieldで書くために、PromiseとCallbackの両方に対応した関数を書いたときの問題とその解決方法を書いておきます。 TL;DR const f = (callback = () => {}) => { const p = new Promise((resolve, r

    PromiseとCallbackの両方に対応する関数の書き方 | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2017/08/30
  • まだJavaで消耗してるの?Android開発ならKotlinでしょ! | Tokyo Otaku Mode Blog

    エンジニアのたかです。Androidアプリの開発を担当しています。 Tokyo Otaku Mode(以下 TOM)のEC用のAndroidのアプリ(Otaku Shop)では、半年ほど前からKotlinを導入しています。 以前は、70億のデバイスで動くJavaという言語を100%使ってAndroidアプリ開発をしてましたが、現状では約70%をKotlinで書いています。 今回は、Kotlinを実際に導入して分かったメリットとデメリットをまとめてみました。 Kotlin導入のメリットコードが読みやすい!Javaと比較して、記述量も減りますので、すっきりとしたコードになり、コードの全体像を掴みやすくなりました。 AndroidでViewにOnClick処理を追加するコードの、JavaKotlinの比較です。 // Java TextView textView = (TextView) fi

    まだJavaで消耗してるの?Android開発ならKotlinでしょ! | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2016/04/27
  • 仕事が10倍捗るスプレッドシート神関数10 | Tokyo Otaku Mode Blog

    こんにちは。Tokyo Otaku Modeの安宅です。先日から、とあるプロジェクトにジョインして、久々にGoogleスプレッドシートをゴリゴリ活用して仕事をしています。そんな中、これは惚れた!というスプレッドシートの神関数を紹介したいと思います。 ARRAYFORMULA関数 これを活用し始めてから、関数をいちいち全部の行に埋め込んでいくことが、なんだかカッコ悪く感じるくらい、スマートでオシャレな関数です。例えば、100行のVLOOKUP関数を行うときには、これまではVLOOKUP関数を1つ作って、それを残り99個の行にVLOOKUP関数をコピーしていたと思いますが、ARRAYFORMULA関数を使うと、なんと1個の関数で100行分の値が出力されます。実際に動作も軽くなるのでカッコよさと実用性を兼ね備えた関数です。配列に対応する関数であれば、ほぼなんでも利用できるのも好感度が高いです。

    仕事が10倍捗るスプレッドシート神関数10 | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2015/09/26
  • 今から始めるCreateJSで実装するHTMLリッチコンテンツ | Tokyo Otaku Mode Blog

    エンジニアのたかです。半年ほど前からTokyo Otaku Mode(以下 TOM)にjoinして働いています。 はじめてのブログ投稿は、CreateJSについて書いていきたいと思います。 CreateJSでTOMのロゴマークをParticleにしてみました。 クリックをすることでParticleが弾けるようになっています。はじけたParticleは指定の場所に戻ってくるようにTweenが実行されます。すべてのParticleが指定の場所に戻ると再度、細かいアメーバっぽい動きを始めます。 ※ブラウザの環境によってはご覧になれない場合があります。ご了承ください。 ■ CreateJSについてCreateJS | A suite of JavaScript libraries and tools designed for working with HTML5 CreateJSはHTML5のモジ

    今から始めるCreateJSで実装するHTMLリッチコンテンツ | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2015/08/06
  • CTO/エンジニア総勢10名でアニメ鑑賞会をしてたら本音が止まらなくなって…(後半) | Tokyo Otaku Mode Blog

    決して忘れていたわけではないのだ。劇場版『シドニアの騎士』先行上映会の開催が急きょ決まったり、参加メンバーそれぞれに内容を確認してもらったりしていたら、公開するまで予想以上に時間がかかってしまったのだ。 なんのことかって? え~、2014年12月に開催されたTOMアニメ鑑賞会の後半戦の模様をお伝えする記事に関してである。前半戦の内容は2月5日に公開。「続きはまたの機会に!」と書いておきつつ、約3カ月も放置プレーすることになってしまった。当にごめんなさい。ようやく準備が整いました。 というわけで、後半戦である。いきさつをご存じでない方、忘れてしまった方は、ぜひコチラとコチラに目を通されたあとにご覧いただきたい。それでは、エンジニアの皆さんが忌憚なき意見をぶつけ合った後半戦の模様をお楽しみいただこう。 参加メンバー(※敬称略、五十音順) •石井 慧(元FreakOut) •伊藤 直也(Kai

    CTO/エンジニア総勢10名でアニメ鑑賞会をしてたら本音が止まらなくなって…(後半) | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2015/05/08
  • Node.jsエンジニアなら2014年内に知っておきたいPromise入門 | Tokyo Otaku Mode Blog

    Promiseは非同期処理をベースにした並列処理の実装方法の一種です。Promiseでは並列処理の各タスクが必ず1回実行されることが保証され、タスクとタスクからの結果を取得する処理を分離することできます。また、タスクの並列処理/直列処理をユーザーが自由に制御することができます。 ECMAScript Language Specification 6th EditionにPromiseが追加されたことから、しばらくの間JavaScriptの非同期処理に関する話題の中心はPromiseになると思われます。 Node.jsでも既にPromise対応したモジュールも多く、Promiseでのみ非同期処理を提供しているモジュールも存在します。Promiseを使用する機会は今後必然的に増えていくでしょう。 今回のエントリーでは、Node.jsでPromiseを使用する方法を説明します。コード例を中心に理

    Node.jsエンジニアなら2014年内に知っておきたいPromise入門 | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2014/09/17
  • カンタン! Express.js を拡張する超詳細手順 | Tokyo Otaku Mode Blog

    こんにちは。Tokyo Otaku Mode エンジニアの重岡です。 ブログを読んだことがある方々は既にご存知かもしれませんが、Tokyo Otaku Modeでは otakumode.com に Node.js と MongoDB を採用しています。フレームワークには Node.js 製の Express.js (3系) を使っています。Express.js は Ruby の Sinatra や Python の Flask と同じような MicroFramework なので、必要な機能は npm で module をインストールする、もしくは自分で Express.js の機能を拡張します。 今回は Express.js に機能拡張した一例として res.render を otakumode.com 向けに使いやすく改良した手順をご紹介します。 View 出力時の共通処理をまとめたい

    カンタン! Express.js を拡張する超詳細手順 | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2014/08/27
  • 東京Node学園 14時限目で「Synth」について話してきました | Tokyo Otaku Mode Blog

    昨夜、渋谷ヒカリエで行われた東京Node学園 14時限目で、トップバッターとして発表してきました。 発表内容は、「Synth」というWebアプリケーションフレームワークについてです。 Tokyo Otaku Modeでは、バックエンドとしてNode.jsとMongoDBを使っていてExpressで運用していますが、色んなフレームワークも触っていてSynthもそのうちの一つです。 SynthはInfoQの「APIファーストのWebフレームワークSynthを巡るコミュニティの困惑」という日語版記事が出て初めて知った人が多いと思います。 記事にもあるとおり、JSONやテンプレートHTMLを返すAPIとそれを使ってクライアント側でアプリケーションを構築するという形に特化したAPIファーストのWebアプリケーションフレームワークです。 ちょうど上記の記事が出た頃、天下一クライアントサイドJS MV

    東京Node学園 14時限目で「Synth」について話してきました | Tokyo Otaku Mode Blog
    kkeisuke
    kkeisuke 2014/08/20
  • 1