September 8th, 2023
Resources for Learning Go
Tech
Go
(Last Updated: Sep 27th, 2023)
Below is a collection of links I have gathered as I have been learning Go. I plan to keep this updated as the learning continues…
Getting Started
- A Tour of Go - Official tour of the Go language.
- Learn Go with Tests - Text based course for learning Go by writing tests.
- Go By Example - An introduction to Go using annotated example programs.
- 50 Shades of Go - Traps, gotchas, and common mistakes for new Go developers.
Project Structure
- Organizing a Go module - Official guidelines for organizing your Go project, in terms of the layout of files and folders.
- Structuring Applications in Go - Basic guidelines for structuring your Go application.
- Standard Package Layout - How should I organize my code?
- Packages as Layers, Not Groups - Why packages in Go are different, more guidance on organizing your application.
- Style Guideline for Go Packages - A set of best practices regarding the location, name, and structure of your packages.
- Simple Go Project Layout with Modules - A simple starting point for a new Go project.
- Non-Standard “Standards” Project - Contentious discussion regarding a popular yet unofficial “Golang Standards” project on GitHub recommending a certain project structure.
Style Guides / Design
- Go Code Review Comments - A collection of common comments made during reviews of Go code.
- Accept Interfaces, Return Structs - An explanation of a common rule of thumb in Go.
- Practical Go - A collection of real world advice for writing maintainable Go programs.
Testing
- Go _test packages - A test package naming convention built into Go to enable black-box testing of your packages.
- Structuring Tests in Go - Four ways that can help make your Go tests more clear and maintainable.
- Test fixtures in Go - Some insight on where to store test data within your Go application.
- Go Test Comments - A collection of common comments made during reviews of Go test code.