Timers Tech Blog

カップル専用アプリPairy💑と、子育てアプリFamm👶を運営する、TimersのTech Blogです👐Engineer、Designerなど、各職種を絶賛採用中🙏詳細はこちらから👉http://timers-inc.com

BigQueryで読みやすいSQLを書くコツ - たったの3つであなたの意図はもっと伝わる。

こんばんわサーバサイドエンジニアのjonnyです。

弊社では分析のためにBigQueryを使っています。 エンジニアだけでなく、企画職の人間もクエリを叩いて日々分析をする環境が整っています。

データを見る場所の分散を避けるため、分析対象のデータは全てBigQueryに集約しています。 RDS(Aurora)上のデータはdigdag+embulkによって日時バッチで連携しており、WebサーバのアクセスログやFirebaseのイベントデータはストリーミングインサートされています。

データの可視化については、昔ながらのGoogleSpreadSheet+GoogleAppScriptから、最近ではre:dashや一部Tableauを使用しています。

分析を促進するための工夫として、SQLをレビューするSlackチャンネルが合ったり、社内勉強会を行ったりしています。

しかしながら、非エンジニアが書くクエリはしばしば非効率であったり、読みにくく再利用しづらいことがあります。

なので、SQLレビュー時に気をつけている観点や、よく指摘する事項、使い回しやすいスニペット(クエリの断片)を幾つか紹介したいと思います。

中にはTimersならではの事情にフォーカスした物もありますが、広く色んな人が使える情報もあると思いますので、参考にしてみてください。

続きを読む

1つのメソッドの中で同じ例外クラスがスローされている場合にテストする方法

サーバーサイドエンジニアの鈴木です。

PHPUnit では期待する例外が発生することをテストするために、@expectedException アノテーションが用意されています。このアノテーションに例外クラス名を指定することで、そのテストが実行されたときに指定した例外クラスのインスタンスがスローされるかどうかテストをすることができます。

しかしながら、 同じ例外クラス (例えば、Exception クラス等)のインスタンスがそのままスローされているメソッドが複数含まれている場合、@expectedException アノテーションだけではどの例外が発生するのか識別することができません。

具体例を用いてご説明します。

続きを読む

#akibaswift 忘年回で「Poly API for ARKit」というタイトルで登壇してきました

iOS Test Nightでの登壇に引き続きAKIBA.swift 忘年回にて登壇してきましたかっくんです。
最近リリースした機能でもPolyを利用させて頂いたんですが、GoogleAPIもリリースしたので触ってみた事を発表してきました。

続きを読む

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる