- Write unit test
- Write testable code
- How to write a git commit
- Git branching model
- Pull request
- Code review with Go
- Effective Go language
- Effective unit testing
- Go's Declaration syntax
- Interface, you're not using enough
- Is Go an Object Oriented language?
- How to write Go code
- Neither self nor this: Receivers in Go
- SOLID Go Design
- Understanding Go language memory usage
- 10 things you don't know about Go
- 10 Useful techniques in Go
- 50 tips, traps, mistake in Goers
- 7 Common mistakes in Go
- Twelve Go Best Practices
Understanding of go proverbs
- Don't communicate by sharing memory, share memory by communicating.
- Concurrency is not parallelism.
- Channels orchestrate; mutexes serialize.
- The bigger the interface, the weaker the abstraction.
- Make the zero value useful.
- interface{} says nothing.
- Gofmt's style is no one's favorite, yet gofmt is everyone's favorite.
- A little copying is better than a little dependency.
- Syscall must always be guarded with build tags.
- Cgo must always be guarded with build tags.
- Cgo is not Go.
- With the unsafe package there are no guarantees.
- Clear is better than clever.
- Reflection is never clear.
- Errors are values.
- Don't just check errors, handle them gracefully.
- Design the architecture, name the components, document the details.
- Documentation is for users.
- Don't panic.