爆速でGo!

GoGo!

2018-01-01から1年間の記事一覧

2018年良かった〇〇

この記事はこちらに移動しました。 2018年の様々な「良かった」をまとめました。 良かった買物 良かったPodcast トータルテンボスのぬきさしならナイト バイリンガルニュース Turing Complete FM Kubernetes Podcast from Google 良かった飲食店 和門 おく山…

Envoyによる分散トレーシングの実現と、未来

Click here for English version この記事はMicroservices Advent Calendarの9日目の記事です。前回は@moomooyaさんのマイクロサービス化にあたって、gRPCを導入しようとしている話でした。 この記事のタイトルは、先日のGoCon2018 Autumnにて発表された「Op…

Service Meshをスモールスタートするという選択

Click here for English version 今記事は、CyberAgent Developers Advent Calendar 2018 7日目の記事です。 こんにちは、20卒内定者で現在AWAでアルバイトをしている中尾涼(@nakabonne)です。 現在マイクロサービス界隈でService Meshというアーキテクチャ…

isucon8本戦で惨敗したからせめて良いブログを書く

この記事はこちらに移動しました。 ISUCON8の本戦に、メルカリで一緒だった@zaq1tomoと@inatonixとzin-gonicというチーム名で出場しました。 結果は学生9位、全体で19位だったので、やったこととかまとめます。 予選エントリはこちらです↓ nakawatch.hatenab…

gRPCは何故誕生したのか

Click here for English version gRPCという言葉はすっかり有名になり、日本でも「社内でgRPCを導入した」「gRPCサーバーを構築する方法」といったような記事が溢れかえるようになりました。 これにより、gRPCの導入ハードルは下がり、比較的簡単にプロダク…

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

Go

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

Go × Clean Architectureのサンプル実装

Click here for English version *追記:Student Goで発表しました。 speakerdeck.com クリーンアーキテクチャとは 以下を実現することで、関心の分離をするアーキテクチャパターンです。 ドメインロジックを独立させる フレームワークを独立させる UIを独…

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

Go

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

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

Go

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

5分でElasticsearch+Kibanaの環境を作る

動機 とりあえずローカルで一刻も早く動かしたい場合にサクッと構築する手順をまとめます。 手順 1, Dockerのインストール 2, dokcer-compose.ymlを作成し、以下をコピペする version: "3.0" services: elasticsearch: image: docker.elastic.co/elasticsear…

GAE/Goからelasticsearchへ接続する

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

Feature Flagを用いたA/B TestingツールをGCPで設計する

先日、AbemaTVが開催する「AbemaTV x A/B Testing」にてFeature Flagを用いたA/B Testingツールのインフラアーキテクチャ設計を行いました。 その時の学びをまとめていきます。 要件 Feature Flagを用いてA/Bテストできれば良いのですが、以下は守る必要があ…

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

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

2018年のテーマは「持ちつ持たれつ」

2017年は4皮くらい剥けた年でした。 まずはそんな2017年のテーマを振り返ります。 2017年は決める年 nakawatch.hatenablog.com 去年正月に書いたとおり、2017年は決める年でした。 人生哲学を決める 決まりました。 どんどん見える世界が変わっているので確…