Go

Go言語でcodemod

·3 分で読めます

大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codem

Go1.17beta1でGenericsに触れてみた

·3 分で読めます

Go1.17beta1がダウンロードできるようになったので、Generics(Type Parameters)でStackを書いて軽く遊んだメモ。 Generics (Type Parameters)について 最新の仕様のProposalは以下を見ると良い。 実際にどんな感じのコードになるのかは、

moq - gomockを使わないMock生成

·6 分で読めます

Goでよく使われるMockの生成ツールとしてgomock(https://github.com/golang/mock)がある1(fn:1)。個人的にはgomockが生成したコードでモックを書くのが好きではないので、代替としてmoq(https://github.com/matryer/moq)を使

go testを並列で動かして速くする

·2 分で読めます

はじめに アプリケーションが大きくなってくると、テストを並列で実行しないとどんどんgo testの実行時間が長くなってしまい、いわゆる「CI待ち」というものが発生してしまう。この記事は自分用のメモだが、テストを少しでも速くしたいという人のための記事。おそらく会社の誰かがもっと丁寧な説明のブログ記事を

Go言語における並行処理 - ユースケース編

·3 分で読めます

はじめに これは以下の記事の続きの記事。以下の2つではgoroutineとchannelについて説明したので、これらを使って具体的な並行処理のユースケースを書いてみる。 Goにおける並行処理 - goroutine編 - oinume journal(https://journal.lampe

Goにおける並行処理 - channel編

·5 分で読めます

はじめに これはGoにおける並行処理 - goroutine編 - oinume journal(https://journal.lampetty.net/entry/concurrency-in-go-goroutines)の続きの記事。goroutineに引き続き、Goの並行処理を支える重要な概

Goにおける並行処理 - goroutine編

·5 分で読めます

はじめに Goでは、goroutineとchannelが言語仕様として組み込まれているため、他の言語に比べてとても並行処理のコードが書きやすい。この2つの基本的な動作原理についてまとめた自分用のメモである。(channelについては別の記事で書く予定) goroutineとは? gorout

Goのcontextによるキャンセルやタイムアウト

·5 分で読めます

これはなに? Go言語におけるcontextパッケージ(https://godoc.org/context)を使ったキャンセルやタイムアウトについて説明する。この記事を読むと以下について詳しくなれるはず...! context.WithCancel context.WithTimeout