爆速でGo!

GoGo!

Go × Clean Architectureのサンプル実装

Go

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

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年は決める年でした。 人生哲学を決める 決まりました。 どんどん見える世界が変わっているので確…

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…

2017年は「決める年」

今週のお題「2017年にやりたいこと」 タイトルに書いたように、2017年は「決める年」にします。 以下に記す中期的な目標のために具体的な3つの目標を定める。 中期的な目標:時間密度を濃くする(人生哲学は定まっていないが、どんな人生哲学でもおそらくこ…