ブックマーク / techblog.kayac.com (9)

  • GoのDBライブラリと俺たち、それからsqlla - KAYAC engineers' blog

    年末ですね。カヤックでは360度評価の時期でもあるので、みんな振り返りだとか内省などの言葉がいたるところで飛んでいます。この記事でも今年の出来事を振り返りしてみたいと思います。どうも、ソーシャルゲーム事業部ゲーム技研の谷脇です。 この記事はTech KAYAC Advent Calendar 2019 Migration Trackの20日目の記事です。19日目はAWS Lambda Node.js runtime の EoL に疲れたので Go にしていっている話でした。 この記事のあらまし あるWebサービスを作るプロジェクトORMを切り替えた 開発言語はGo言語 DBライブラリ/ORMgithub.com/xo/xoを使っていました ですが開発途中から、私が作成したライブラリであるgithub.com/mackee/go-sqllaに乗り換えました どっちもコード生成系だけれど、

    GoのDBライブラリと俺たち、それからsqlla - KAYAC engineers' blog
  • エンジニアがすごく頑張ってサブスリーしたよって話 - KAYAC engineers' blog

    こんにちは! 技術部で市民ランナーの荒賀です。 この記事はTech KAYAC Advent Calendar 2019の11日目です! 例年筋肉について書いており、2016年、2017年と筋肉ネタを投下していましたが、 昨年の記事にて社内に自称ボディビルダーが爆誕したため筋肉ネタは卒業すると宣言していました。 しかし、今年ついに横浜マラソンでサブスリーを達成したため、一周回ってまたスポーツネタを書きたいと思います。 kotobank.jp サブスリー達成者は市民ランナーの3%、女性にいたっては0.4%と言われているほど結構な難易度で、自分で言うのもあれですがたいそうすごいことなんじゃないかと思っています。 グロス2:57:41でゴールした瞬間の神写真 で、サブスリーした人のこうしたら達成したぜって情報も世に溢れているので、自分が書いたところで今更感があるんですが、 達成までの軌跡には十人

    エンジニアがすごく頑張ってサブスリーしたよって話 - KAYAC engineers' blog
  • GOPATHを掃除してGo Modulesに移行しよう - KAYAC engineers' blog

    こんにちは! ソーシャルゲーム事業部の川添 (@acidlemon) です。 この記事は Tech KAYAC Advent Calendar Migration Trackの8日目です。 今年はみなさまどんな一年だったでしょうか。私もいろいろありましたが、最近ちょっと私がやってたマイグレーションというと自分の開発環境のGOPATHの掃除がありますので、今日はその話を書こうと思います。 2018年までのGOPATH GOPATHというと、昔からGo言語をゴリゴリ書いていた人にはおなじみの、 GOPATH=$HOME/go みたいなのを設定して、go get github.com/kayac/ecspresso すると $GOPATH/src の下に $GOPATH/src/github.com/kayac/ecspresso みたいなディレクトリができてそこにソースコードがcloneされる

    GOPATHを掃除してGo Modulesに移行しよう - KAYAC engineers' blog
  • 複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog

    こんにちは。 2016新卒でLobiのサーバーサイドエンジニアをやっているmorikuniです。 今回は、mdqというGo製のツールを作ったので、その紹介をします。 mdqは複数のデータベースに並列にクエリを投げて、結果をJSONで出力してくれるというものです。 github.com mdqに近いコンセプトのツールとして、弊社の荒賀(@ken39arg)が作ったshard_promptがあります(#6「Shardingマジ怖い」tech.kayac.com Advent Calendar 2012)。 こちらはSQLを解析し、複数データベースにまたがる集約関数を一部サポートしていますが、MySQL専用かつ直列にクエリを投げるというものでした。 mdqでは複数データベースにまたがる集約関数はサポートしませんが、PostgreSQLなどMySQL以外のデータベースへのクエリや、並列処理による速

    複数のデータベースをまとめてSELECTできるツール「mdq」を公開しました - KAYAC engineers' blog
  • 今年の新人研修はgoでした - KAYAC engineers' blog

    新人研修のgo担当だったhandlenameです。 昨夏、Go言語を積極的に推進していきます。という宣言を出しましたが、 この一環として新人研修で扱う言語としてgoが選ばれました。 研修では何をやったのか Webサービスの開発・運用に関わる要素を対象としました。 goの研修に使える時間は合わせて10時間程度と限られていたこともあり、 かなり内容を絞っています。 開発環境の準備 研修に入る前に、受講者それぞれに開発環境の準備をしてもらいました。 brew install go 環境変数の設定 エディタの設定(保存時にgofmt自動実行) 幸いここで躓いた受講者はいなかったようです。 Tour of Go プログラミングは全くの未経験、という受講者はいなかったので、 いきなりTour of Gogoのコードを書いてもらいました。 基文法/制御構文/データ構造/並列処理 の4つのセクションに

    今年の新人研修はgoでした - KAYAC engineers' blog
  • #21 github-botで捗っている話、もしくはgit-subtree使ってみた - KAYAC engineers' blog

    この記事はtech.kayac.com Advent Calendar 2014 の21日目です。 こんにちは、最近日にちの感覚がなくなっているいっちーです。 アドベントカレンダー駆動で何かつくろうと思ったんですが、そんな時間はなかったので、最近プロジェクトでやってみた取り組みをご紹介します。 背景・目的 僕は今現在Unityを使ったソーシャルゲームの開発に関わっており、 主にサーバサイドのプログラムを担当しています(もちろんPerl)。 Unity側ではサーバとのやりとりをBaalというAPIの定義書にもとづいて行っており、 サーバへのリクエストやレスポンスが形式にあっているかをチェックする機能があります。 例えば「Hogeというエンティティは整数型のFugaというフィールドを持っている」ということをBaalで定義すると以下のようになります。 // Baal定義の例 namespace

    #21 github-botで捗っている話、もしくはgit-subtree使ってみた - KAYAC engineers' blog
  • #22 普段からRailsプロジェクトで使っている10個の便利Gem - KAYAC engineers' blog

    この記事は tech.kayac.com Advent Calendar 2014 22日目です。 こんにちは。Rubyを書いている @yumiyon です。 今回は、Railsプロジェクトで「○○がしたい!」と思った際に、自分がよく利用するGemを機能ごとに分けて10個ほどご紹介します。日頃からRailsで開発を行なっている方は既知のものばかりかもしれませんが、Railsを始めたばかりの方や、自分のための備忘録として。 目次 Gemとは 1、画像をアップロードしたい(CarrierWave) 2、管理画面を作成したい(ActiveAdmin) 3、環境毎に定数を管理したい(rails_config) 4、crontabを管理したい(Whenever) 5、スプレッドシートにアクセス(google_drive) 6、ページャーを実装したい(kaminari) 7、非同期処理を使いたい:ジョ

    #22 普段からRailsプロジェクトで使っている10個の便利Gem - KAYAC engineers' blog
  • #13 フロントエンド制作に華を! 面白いWebAPI 7選 - KAYAC engineers' blog

    こんにちは。 カヤックに新卒で入社し、フロントエンドエンジニアとして スロット制作を中心とした活動を続けている田島です。 どうぞお手柔らかによろしくお願いします。 さてさて、Webのフロントエンドエンジニアの場合、 何か作りたいアイデアを思いついてから世に公開するまでのスピードが コピーライターに次いで早いです。 また、リッチなコンテンツや大量のコンテンツを扱って何かしようというときには WebAPIをうまく活用すれば、自前でデータベースを作らずとも ササッと作って公開することもできます。 今回は、そうしたフロントエンド制作を豊かにするWebAPIの中から特に 面白いと思うものを7つ選び、実例を交えて紹介していきたいと思います。 1. MediaWiki API http://ja.wikipedia.org/w/api.php Wikipediaの情報を取得できるAPIです。 このAPI

    #13 フロントエンド制作に華を! 面白いWebAPI 7選 - KAYAC engineers' blog
  • 安全なバッチ処理の作り方 - KAYAC engineers' blog

    このまえ登り坂の途中でロードバイクのタイヤが破裂しました。ながたです。 今回はバッチ処理について書いてみようと思います。 バッチ処理? Webサービスの処理開始条件は、大まかに次の2つに分けることができます。 ユーザーのアクションに起因するもの ユーザーのアクションに起因しないもの このうち後者の処理をバッチ処理が担当することになります。 バッチ処理の担当分はさらに、 特定の条件(時間やサービスの状態)で実行するもの 手動で実行するもの の2つに分けられます。 今回はこの「手動で実行するもの」について書きたいと思います。 バッチを手動実行するのはどんなとき? バッチ処理を手動で実行するのは、十中八九イレギュラーな状況が発生したときです。 ルーチンワークや実行の条件が決まっているものは何らかの方法で自動化できるはずです。 そしてイレギュラーな状況のほとんどは不具合が発生したとき。 つまり 重

    安全なバッチ処理の作り方 - KAYAC engineers' blog
  • 1