爆速でGo!

GoGo!

Go

ISUCON8予選は学生枠6位で本戦出場が決まりました

Go

isucon.net ISUCON8の予選に、メルカリで一緒だった@zaq1tomoと@inatonixとzin-gonicというチーム名で出場しました。 結果は学生枠6位だったので、やったこととかまとめます。 事前準備 二度のisucon合宿を行った(どちらも環境構築で頓挫) 何回か集まってi…

Go × Clean Architectureのサンプル実装

Go

クリーンアーキテクチャとは 以下を実現することで、関心の分離をするアーキテクチャパターンです。 ドメインロジックを独立させる フレームワークを独立させる UIを独立させる DB含む外部の全てを独立させる ドメインロジックをテストしやすくする 詳しくは…

csvをGoの構造体にマッピングする

Go

Goでcsvを扱う際は、標準パッケージのendording/csvで対応できますが、いちいちスライスを扱うのは少しつらいものがあります。 大抵の場合構造体にマッピングした方が扱いやすいため、その方法を紹介していこうと思います。 csvマッピングライブラリはjszwec…

【Go】エディタ操作用簡易ライブラリを作った

Go

はじめに しっかりエディタでファイルオープンするとなると意外に煩雑になることに気づきました。 そこでedindというライブラリに切り出したので、今回はその紹介をしたいと思います。 github.com 使い方 クイックスタート Factoryを生成し、エンドユーザー…

GAE/Goからelasticsearchへ接続する

クライアントライブラリの選定 elastic/go-elasticsearch(公式) olivere/elastic 以上の2つが候補としてあげられます。どちらかというとGoらしく書ける印象だった2つ目のolivere/elasticを今回は使用します。 クライアントの生成 olivere/elasticは使用し…

GoでDDD設計する際のrepositoryをどう定義するか

GoDDDでrepositoryを設計する際に色々考えたのでメモ アーキテクチャ この記事では、レイヤードアーキテクチャを使用します。 しかし正式なレイヤードでなく、以下のようにinfra層がdomain層に依存する形で設計します。 ディレクトリ構成 . ├── app ├── doma…

GAE/Goで位置情報マッチングAPIの設計を考える

先日、サイバーエージェントさんの学生版ガレスタというインターンに参加しました。 6週間で企画からサービス完成までを4人(ビジネス1人, デザイナー1人, エンジニア2人)で行うというものでした。 今記事ではこのインターンで得た技術的なことを、つらつら書…

Goで軽量なスクレイピングライブラリを作ってみた

Go

リポジトリ github.com はじめに GoでWebクローラーを開発する際、皆さんどうされてますか?? フルスクラッチで作るのは少し面倒だし、asciimoo/collyのようなフルスタックなのはいらない、、という時に丁度いいライブラリがなかったので作りました! 本当…

GoのcliツールUIライブラリを試す ~ 今日のGithub Trending ~

Go

今日のGithub Trending カリスマエンジニアになりたい!! そう願う大学二年生の私は新たな企画を始めます\(^o^)/ 題して、 >>今日のGithub Trending<< Github Trendingを眺めて、面白そうなリポジトリがあったらガンガン試していきます。 Github Tren…

CyberAgentのアドテクチャレンジで正確なDMPを作る

先日株式会社サイバーエージェントの2dayインターン、アドテクチャレンジに参加させて頂きました。 そしてなんと優勝させて頂きました! 私はインフラ設計の経験がなく、常に手探り状態でした 今記事では、優勝に至るまでの技術的苦悩をまとめていきます。 d…