今更ながら CircleCI 2.0 を本格的に触りました。 CircleCI 2.0 になりキャッシュの柔軟性が向上したようなの で、 Go 1.10 から導入された build cache と併せて最適化してみました。
この記事は Go Advent Calendar 2017 の 1 日目の記事です。
Go の長所に goroutine による非同期処理がありますが、どうしても channel の取り回しで黒魔術化しがちです。少しでも闇を減らしていきたいので、 channel らへんの取り回しについてパターンをまとめました。チートシート的に使えれば嬉しいです。
![eyecatch image of CA.go #2 で golang.org/x/sync について喋りました #ca_go](/static/5338e38b05c0cdb9ebc3cd27ea80e796/4576d/eyecatch.png)
CA.go #2 - connpass にて golang.org/x/sync 以下にある 4 つのパッケージを用いて効率的に非同期処理をする技術についてお話しました。
![eyecatch image of 社内勉強会で HLS と Key frame について改めて解説した](/static/3ccf29cf2cac14887b9413623c607071/4576d/eyecatch.png)
![eyecatch image of CA.go #1 で sync.Pool について喋りました #ca_go](/static/07f820abb6a2db9943a0322c746549eb/4576d/eyecatch.png)
1 ヶ月ほど前になってしまいましたが、 CA.go #1 - connpass にてメモリ効率を瀑上げする sync.Pool について話をしてきました。