Edited at

Goを始めて1年間で最高にお世話になったGo関連ブックマークを晒します。

自分は普段はChromeのブックマークを使ってよく見返す記事を保存しています。Goを一年間書いてきてブックマークを整理したのですが、せっかくなのでお世話になったブックマーク記事を晒します。


Blog & Serial


The Go Blog

Goの公式ブログ。深いところまでしっかり書かれているので、調べたいトピックはまずはここで調べたい。

https://blog.golang.org/


Practical Go

GoのcontributorであるDave Cheneyさんのブログです。Goで開発&運用する上でのアドバイスが書かれており、入門記事だけでは得られないノウハウがふんだんにまとめられています。

https://dave.cheney.net/practical-go


Goならわかるシステムプログラミング

@shibukawaさんの連載です。Goで低レイヤーを学んでいきます。根底の仕組みがガッツリ学べます。あまりに良すぎて僕は書籍で購入してます。書籍の方は色々加筆されているので皆さんも書籍で書いましょう。

https://ascii.jp/elem/000/001/235/1235262/


A Journey With Go

Goに関する面白いトピックが多いです。Goの内部の話などGo初心者が中級者になるための記事が多い印象です。

https://medium.com/a-journey-with-go


Tips


Go CodeReviewComments 日本語翻訳 #golang

Goを書く上で気をつけるべき&意識すべきポイントが網羅された「Go CodeReviewComments」の日本語訳記事

https://qiita.com/knsh14/items/8b73b31822c109d4c497


High Performance Go Workshop

Goアプリケーションのパフォーマンスに関するトピックほぼ全てが網羅された記事。ベンチマーク、プロファイリングはもちろん、コンパイラ最適化、メモリやガベージコレクタについてなどについて書かれている。はっきり言って最高。

https://dave.cheney.net/high-performance-go-workshop/gopherchina-2019.html


Profiling Go Programs

Goの公式ブログによるプロファイリングツールpprofの使い方です。使い方忘れたらよくここにきます。

https://blog.golang.org/profiling-go-programs


SliceTricks

Goの公式WikiのSlice操作の実装パターン集です。いい感じのSlice操作実装を忘れた時にめちゃ見返す。

https://github.com/golang/go/wiki/SliceTricks


インタフェースの実装パターン #golang

インターフェースの実装パターンがコード付きで丁寧に解説されています。

この記事を書いている @tenntenn さんの記事はどれもGo初心者にとって知っておいたほうがいい事ばかりなので他の記事も読んでみることをオススメします。

https://qiita.com/tenntenn/items/eac962a49c56b2b15ee8


Architecture


struct に依存しない処理は function に切り出すのか、method に切り出すのか

関数にするかメソッドにするかはGopherたちが悩む部分です。迷ったら読み返します。

https://www.pospome.work/entry/2017/01/16/233351


Golang Receiver vs Function Argument

こちらも処理を関数にするかメソッドにするか迷った時に読み返します。

https://grisha.org/blog/2016/09/22/golang-receiver-vs-function/


Functional Option Pattern

構造体の初期化時にオプション引数を与えるためのデザインパターンである「Functional Option Pattern」の日本語解説です。

https://blog.web-apps.tech/go-functional-option-pattern/


Analysis


GoのためのGo

Goで静的解析する際の基本が体系的にまとまっています。

https://motemen.github.io/go-for-go-book/


Handson


Write a Kubernetes-ready service from zero step-by-step

Goで作ったAPIをKubernetesで動かす記事ですが、Kubernetes動かすまでにGoによるAPI開発の基本的なポイントがしっかり抑えられていてGoを触り始めた頃にすごく勉強になったハンズオンです。

https://blog.gopheracademy.com/advent-2017/kubernetes-ready-service/


Test


Goのtestを理解する in 2018 #go

テストの書き方でここってどうやって書いたっけ?となったら必ず訪れるブログ。ほぼテストに関する全てが書いてある。

https://budougumi0617.github.io/2018/08/19/go-testing2018/


Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト #golang

非公開の機能をテストしたい時のパターンが網羅されている。

https://tech.mercari.com/entry/2018/08/08/080000


Packages


Awesome Go : 素晴らしい Go のフレームワーク・ライブラリ・ソフトウェアの数々

こんなパッケージないかな??って時に開く記事。

https://qiita.com/hatai/items/f31914f37dc6c53b2bce


Playground


GoDoc Playground

GoDocのPlaygroundです。GoDocを書く際にコメントアウトで記載していきますがそれをリアルタイムで確認できます。

https://bradleyjkemp.dev/godoc-playground/


Editor


vim-go チュートリアル

vim-goのチュートリアルです。GoをVimで操りたくなったらまずここ。

https://github.com/hnakamur/vim-go-tutorial-ja


vim-goを使うなら使用したいコマンド集と設定

VimでGoを触るためのノウハウが体系的にまとまっています。

https://qiita.com/gorilla0513/items/a027885d03af0d6d5863


Detects Issue


Go Report Card

Go Report Card

GoのリポジトリのURLを入れるだけでgolintやgofmtでコードをチェックしたりmisspellを見つけたりしてくれます。最終的にREADME.mdに貼れる上記のようなバッジがすぐに作れます。

https://goreportcard.com/


GolangCI

GolangCI

こちらもGoのリポジトリに対して様々な問題を指摘してくれます。structcheck、errcheck、gosimpleなどのツールで細かい問題点も指摘してくれます。こちらもバッジが作れます。

https://golangci.com/