タグ

ブックマーク / tech.toreta.in (11)

  • Ruby 2.5.1からRuby 2.6.3にバージョンアップしてCSV生成が高速化しました - トレタ開発者ブログ

    SREチームの中村です。 弊社にはtoreta-railsというトレタ全体の8割ほどのサービスのロジックが書かれているコアAPIがあります。 先日、toreta-railsRails versionを5.2.3にバージョンアップしました。 それに続き、今週はRuby versionを2.5.1から2.6.3にバージョンアップしたのですが、CSV生成ジョブの性能向上が顕著でした。 その内容について報告します。 処理の内容 toreta-railsはSidekiqを非同期ジョブとして利用しています。以下の2つのCSV出力ジョブもSidekiq Workerとして実装しています。 顧客データCSV出力ジョブ トレタは様々な規模の飲店さんに利用されています。 店舗数が多い法人さんは売上を上げるために、自社の店舗に来店した顧客を分析します。そのため、トレタに溜まった顧客データをダウンロードできる

    Ruby 2.5.1からRuby 2.6.3にバージョンアップしてCSV生成が高速化しました - トレタ開発者ブログ
    Watson
    Watson 2019/06/12
  • RubyKaigi2017とModule Builder Pattern #rubykaigi - トレタ開発者ブログ

    サーバサイドエンジニアの中村です。先日開催されたRubyKaigi2017に参加しました。 その中で最も興味深かったセッションである The Ruby Module Builder Pattern について自分なりの理解をまとめてみようと思います。 Moduleの問題 module内でdefine_methodを使ってメソッド定義を行ったmethodに対して、そのmoduleをextendしたclass内で該当のメソッドに対して super を呼び出すことができません。 module AdderDefiner def define_adder(*keys) define_method :+ do |other| self.class.new( *(keys.map { |key| send(key) + other.send(key) }) ) end end end class Line

    RubyKaigi2017とModule Builder Pattern #rubykaigi - トレタ開発者ブログ
  • iOSDC 2017に参加してきました - トレタ開発者ブログ

    iOSエンジニアの高です。 去年に引き続き、今年もiOSDCに参加してきました。 iosdc.jp 今回は前回以上に色んな所がパワーアップしていて、運営のみなさんの気を感じました。 トレタとしてはゴールドスポンサーとしてスポンサードさせていただいています。 バッグの中にお風呂♨️のチラシがありましたよね。あれが弊社です。 またスポンサー読み上げをアークエンジェル艦長のマリューさんにして頂けるとはなんとも嬉しい限りです。 iOSDC Japan 2017 スポンサー紹介 - YouTube 弊社登壇メンバー 弊社からは増井と堀見が登壇しました。 増井はトレタ初のBluetoothデバイスの開発について。 堀見は誰もが悩むログ収集について登壇しました。 初めて作るIoT機器とBLEの光と闇 | iOSDC Japan 2017 ここで話していた実際の製品はこちらになります。トレタフォン ボッ

    iOSDC 2017に参加してきました - トレタ開発者ブログ
    Watson
    Watson 2017/09/19
  • トレタにおけるBigQueryの活用法について - トレタ開発者ブログ

    サーバーサイドエンジニアの芹沢です。 トレタは検索用のデータストアとしてBigQueryを使用しています。 奇抜な使い方はしていませんが、トレタにおけるBigQuery活用法を紹介します。 システム構成 BigQuery周りのシステム構成を1枚の図にまとめるとこんな感じです。珍しいものは使っていませんがその分安定した構成かと思います。 BigQueryにimportしているデータ 大きく分けて以下2種類のデータをBigQueryにimportしています。 1.APIが参照しているRDBのデータ APIが参照しているRDB(Amazon Aurora)のslaveからデータをimportしてデータ分析や調査用のデータ検索業務に使っています。 2.各種ログ 以下のログをfluentdでBigQueryに保存しています。 nginxのaccessログ railsで1リクエスト単位で出力しているカ

    トレタにおけるBigQueryの活用法について - トレタ開発者ブログ
  • try! Swift Tokyo 2017に行ってきた - トレタ開発者ブログ

    iOSエンジニアの高です。去年に引き続き今年もtry! Swiftに参加してきました。 www.tryswift.co 最近のカンファレンスは後日スライドだけでなく動画まで公開していたりします。try! Swiftの場合はスポンサーのRealmが公開してくれてます。 try! Swift Conference こうやって資料が共有されると、そもそも参加する必要はあるのだろうか?と思ってしまいがちなのですが、やっぱりそこでの空気感だったり、他のエンジニアとの交流だったりは結構大事だなと思っていて出来る限り参加するようにしています。 海外からはもちろんですが、国内でも東京以外から参加されてる方も多かったです。僕が話した感じでは福岡が多かったなという印象です。 会場 ベルサール新宿セントラルパークビルで行われました。天井も高く、広々とした会場で良かったです。 所感 今年も興味深い話ばかりでしたが

    try! Swift Tokyo 2017に行ってきた - トレタ開発者ブログ
    Watson
    Watson 2017/03/08
  • CTOがチームマネージメントじゃない方向に向かう時に何をするべきなのか - トレタにおけるmasuidriveの役割 2017年版 - トレタ開発者ブログ

    トレタ CTOの増井です。 トレタは創業して3年半、エンジニアも2名から13名に増え、私の役割も変わってきました。 当初は一人目のエンジニアとしてアプリの設計やサーバサイドのコードを書いたり運用全般を行っていました。 人数も増え、2年を過ぎたあたりからエンジニアリングの中で私が率先してやる必要のあることがほぼなくなってきました。むしろ海外展開で出張が増え、連続した時間がとれずに進捗を遅らせる原因になってしまうこともありました。 最近の論調では、メンバーが増えるとCTOはマネージメントや組織作りに移行して行くみたいですが、私はそっちに興味が全然なく、向いているとも思えませんでした。そもそも私は上司を持ったこともないし、決められた環境の中で働くのがとても苦手なので。 私が「組織を作って管理して行く」のは無理というのはトレタ設立当初から分かっていたことなので、メンバーを増やす時は「自分で目標を作

    CTOがチームマネージメントじゃない方向に向かう時に何をするべきなのか - トレタにおけるmasuidriveの役割 2017年版 - トレタ開発者ブログ
  • Pull Request発行時にそのコミットIDでデプロイされた環境を自動構築してレビュー時/マージ前に確認しやすくする仕組み - トレタ開発者ブログ

    インフラをアレしてる佐野です。Pull Request(以下、p-r)が発行されると、そのp-rのコミットIDでデプロイされた環境を自動構築する仕組みを作ったので、今日はそれについて。マージ直前の環境が立ち上がるのでレビューアはレビュー時にコードを追うだけでなく、ブラウザ/アプリの接続先をこの環境に向きかえることで実際のアプリケーションの動作も確認できるようになります。レビューが非常に捗ります。 動作 仕組み GitHubのWebhookについて 自動構築の処理 Dockerの活用 tmpfsの活用 まとめ 1. 動作 こんな感じです。ここで、この通知するボットおよびこの仕組みを以下、シャイニング・ウィザードと呼ぶことにします。シャイニング・ウィザードというのは好きなプロレスの技でして最初はこの基盤の仮名だったのですが、チーム内で定着してしまったのでもうこれでいいや的な…。ちなみに、Ama

    Pull Request発行時にそのコミットIDでデプロイされた環境を自動構築してレビュー時/マージ前に確認しやすくする仕組み - トレタ開発者ブログ
    Watson
    Watson 2017/02/25
  • トレタのiPadアプリをSwift 3 対応しました - トレタ開発者ブログ

    iOSエンジニアの高(@y_koh)です。 この度トレタではiPadアプリのSwift 3対応を行いました。どんな感じで進めたのかと、ハマったところなど共有できればなと思います。 対応自体は去年末には終えていましたが、年が明けて1/10にリリースしました。 年末は飲店さま繁忙期のため、トレタではこの時期のアプリアップデートは控えています。例年このタイミングでリファクタリングやKaizenタスクなどを行っています。今回はSwift 3対応をメインに行いました。 先日サーバサイドもRailsを4.2にバージョンアップしています。言語やフレームワークのバージョンアップは機能改善に直接つながるものではないので後回しにしがちですが、将来的に負債になってしまうだけなので出来る限り時間を作って適宜アップデートするようにしています。 今回のSwift 3対応については、昨年のpotatotips#35で

    トレタのiPadアプリをSwift 3 対応しました - トレタ開発者ブログ
    Watson
    Watson 2017/01/31
    どこも苦労しているようで(ΦωΦ)
  • トレタのRailsを4.2にアップグレードしました - トレタ開発者ブログ

    サーバサイドエンジニアの中村です。 今回はトレタのAPIに使っているRailsのバージョンを4.1.12から4.2.7.1にアップグレードしたので、その手順について紹介いたします。 トレタのAPIでrake statsを実行した結果は以下の通りです。同じ規模感のサービスのRailsをアップグレードするときに役立てていただけたら幸いです。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC | Classes | Methods | M/C | LOC/M | +----------------------+-------+-------+---------+---------+-----+-------+ | Controllers | 19554 |

    トレタのRailsを4.2にアップグレードしました - トレタ開発者ブログ
    Watson
    Watson 2017/01/20
  • Rubyを2.0から2.3にバージョンアップした効果とか - トレタ開発者ブログ

    インフラをチョメチョメしている佐野です。今日はRubyを現最新バージョンの2.3.1にアップデートしたのでその効果について書きます(2.0、とっくにEOLですしね...)。gemのバージョンアップはserizawaニキがやってくれました。結論から言いますと、 CPU使用率が劇的に下がり、メモリ使用率が少し上がった。 サーバ台数削減できる。 です。 CPU 9/6の昼過ぎくらいに2.3に切り替えたのですがそれ以降、CPUが下がっていることがわかります。 メモリ メモリについては使用率が上がっています。 2.3 2.0 何が使っているのかというと、Ruby2.3なプロセスのメモリ使用量が全体的に増えました。次のtopコマンドは左ペインが2.3、右ペインが2.0なのですが、rubyないしbundleとなっているものがunicorn, sidekiqになります。これら全般的に2.3の方がメモリ使用

    Rubyを2.0から2.3にバージョンアップした効果とか - トレタ開発者ブログ
    Watson
    Watson 2016/09/13
  • トレタのアプリ新機能開発の舞台裏 - トレタ開発者ブログ

    開発部の@horimislimeです。普段は@y_koh さんとiPadアプリ開発をさせてもらっています。 先日トレタはメジャーアップデートとなるver5.0.0で、飲店従業員の方が店内のテーブル配置を作成し、空間的にテーブルを見ながら予約を取れる「テーブルレイアウト」機能をリリースしました。 この機能の詳細や、開発にあたっての想いは弊社ブログのエントリも御覧ください。 トレタ新バージョン「5.0.0」とモノ作りの話 : TORETA(トレタ) ブログ トレタとして大規模なアップデートとなるver5.0.0でしたが、その裏ではiOS開発チームとして新しいチャレンジもありました。それが以下の二点です。 Swiftと新しいパラダイムの導入 これまでのトレタには無かったUIの実現 まずiOS開発チーム内でこの新機能からSwiftを導入し、合わせてMVVM風な設計を取り入れつつ実装を進める方針を

    トレタのアプリ新機能開発の舞台裏 - トレタ開発者ブログ
    Watson
    Watson 2016/02/01
  • 1