Go

Google Codelabs の執筆者用ツールの使い方

Go

今週の GCP 7/2 – google-cloud-jp – Mediumでclaat(Codelabs as a Thing)が紹介されていました。 github.com これを使うとGoogle DocsやMarkdownからGoogle Codelabsのコンテンツを生成することができます。 Markdownでとりあえず試してみる 1. ツールをイ…

リポジトリごとにGOPATHを切る環境でのvim-go

↓のようなリポジトリごとにその直下をGOPATHにする環境でGoを書く時、 . ├── github.com/daisuzu/bar │ ├── bin │ ├── pkg │ └── src │ └── bar │ └── main.go └── github.com/daisuzu/foo ├── bin ├── pkg └── src └── foo └── main.go 両方のリポジトリの…

図のライブプレビュー環境を改善した

Go

PlantUMLで図を書く時もblockdiagと同じようにやろうかなと思ったけど、markdown作ったりpandocのテンプレートを準備するの面倒になったのでその部分をやってくれるサーバを作ってみた。 github.com go get github.com/daisuzu/liveimgしてから goemon livei…

Goで時刻が絡む単体テストをどうするか考える

Go

Goにはtimeパッケージをmockする仕組みが用意されていない。 そのため、time.Nowを以下のようにして使っているコードを見かけることがある。 var Now = func() time.Time { return time.Now() } たしかにこうすることでNow()が返す値を自由に設定でき、単体…

grpc-web-clientをjsで試してみた

gRPC-Web: Moving past REST+JSON towards type-safe Web APIs - Improbableを見て、grpcwebを使えばgoogle.golang.org/grpc製の既存gRPCサーバがブラウザからも叩けるようになるとのことなので試してみた。 github.com サーバ側の変更点 DOC.mdにも書いてあ…

gRPCサーバのベンチマーククライアントを生成する

google.golang.org/grpcでサーバ書いたのでそろそろベンチマークしてみようと思ったらgoogle.golang.org/grpc/benchmarkという便利そうなパッケージを発見した。 早速clientをビルドしてみたけどgrpc_testingパッケージ専用だったので中のmain.goをテンプレ…

Goのパッケージをgit subtreeで管理する

Go

Go 1.5からVendoring機能が使えるようになったので外部パッケージをgit subtreeで管理してみた。 以下のコマンドで対象のリポジトリにパッケージを追加することができる。 ※ --squashをつけると取り込むパッケージのコミットを一つにまとめることができる # …

Goでhttp.ClientのテストをするときにProxyを書き換えてテストサーバにリクエストを投げる

Go

Goで外部リクエストが関わる処理をテストする - Qiita のfetch(url string)と違って引数でURLを取れないような関数をテストする場合、 http.DefaultTransport.(*http.Transport).Proxyを書き換えるとテストサーバにリクエストを飛ばせる。 main.go package m…