(元々Gistにメモ的に書いていたが後から追跡しにくいので転載した)
golangweekly.com が http://golangweekly.com/issues/140 にてBest 2016をまとめていた.便乗して自分なりに今年良かったものをまとめてみる.https://blog.golang.org/ は除外している.あくまで「自分が良かった」ものである.
まずgo-kitのPeter BourgonのGo best practices, six years inとBoltDBのBen Johnsonが標準パッケージを詳細に語るGo Walkthroughシリーズ https://medium.com/go-walkthrough はMUSTである.これらの知見を知ってるだけでだいぶ良いコードが書けるのではないか.
今年はGo1.6とGo1.7がリリースされたがruntimeの変更で大きかったのがGCの改善とSSAの導入だった.これらに関しては以下が面白かった.
- GC
- SSA
Go1.7ではcontext
パッケージが新たに標準パッケージに追加された.今後Gopherがこれを使いこなすのは必須である.以下がわかりやすい.
- context パッケージの紹介
- http://peter.bourgon.org/blog/2016/07/11/context.html (Valueをいかに使うべきか)
来年頭にリリース予定のGo1.8については以下をチェックしておけば良い.
- What's Coming in Go 1.8
- Go 1.8 toolchain improvements
- Go 1.8 - Plugins!
- Golang 1.8 でやってくる database/sql の変更点
- The default GOPATH
- HTTP/2 Server Push
Testingに関してはHashicorpのMitchell Hashimotoの
Advanced Testing with Go は今すぐ使えるテクニックばかりで良かった.
Performanceに関してはUberのPrashant Varanasiのgo-torchの発表Profiling and Optimizing Goが華麗すぎて何度も観た.またプライベートで開催したがDave Cheneyの トレーニング High Performance Go もとても勉強になった.
今年はGopherConに参加した.全ての発表が面白かったが特に以下が自分的には面白かった.
- Katrina Owen Mind the Gap(これからGo言語を勉強しようと思っている人とGo言語を教える立場にある人の両方に響く素晴らしいトークだと思う)
- George Tankersley Go for Crypto Developers(CoreOSの中の人による現時点で使うべきcryptoパッケージについてのトーク)
- Daniel Whitenack Go for Data Science(Data ScienceだとPythonを使うことが多いが依存が面倒くさいしGoを使ってくのが良いのではないかという話.結局Data Scientistはデータの収集や整形に多くの時間を使うからGoは適してるのでななどなど)
- Keith Randall Inside the Map Implementation
- Rob Pike The Design of the Go Assembler
- Francesc Campoy Understanding nil
- Alan Donovan Navigating Unfamiliar Code with the Go Guru
その他
- Codebase Refactoring (with help from Go)(Go1.8で入れるか揉めたType aliasesについてなぜそれが必要か by Russ Cox)
- Go microservices workshop example project (Go-kitの作者によるGolangによるmicroservicesのワークショップ資料)
- go bits(Go teamのrakyllのブログ.本格的に更新され始めたのは今年からではないか.次期バージョンの新機能をわかりやすく紹介してて良い)
-
Don’t just check errors, handle them gracefully (
pkg/errors
は今年登場したばかりだが必須のパッケージになってきた ) -
So you want to expose Go on the Internet (Cloudflareは
net/http
パッケージの知見の塊) - Visualising concurrency in Go(idanyliukによるgoroutineの可視化プロジェクト.GopherConでの発表も感動する)
- Idiomatic Go Tricks
- Go is for everyone
- Gopherくん入門
(まだまだあったと思うので随時追加する)