Go Proverbs
The Go Proverbs are a collection of short sayings that capture the philosophy behind the Go programming language. They were popularized by Rob Pike and reflect the language’s emphasis on simplicity, clarity, and pragmatic engineering.
These proverbs often serve as guidelines for writing idiomatic Go, rather than strict rules. Understanding them helps developers write code that aligns with the design intent of the language.
Original source: https://go-proverbs.github.io/
Don't communicate by sharing memory; share memory by communicating
pk_todo
Concurrency is not parallelism
pk_todo
Channels orchestrate; mutexes serialize
pk_todo
The bigger the interface, the weaker the abstraction
pk_todo
Make the zero value useful
pk_todo
interface says nothing
pk_todo
Gofmt's style is no one's favorite, yet gofmt is everyone's favorite
pk_todo
A little copying is better than a little dependency
pk_todo
Syscall must always be guarded with build tags
pk_todo
Cgo must always be guarded with build tags
pk_todo
Cgo is not Go
pk_todo
With the unsafe package there are no guarantees
pk_todo
Clear is better than clever
pk_todo
Reflection is never clear
pk_todo
Errors are values
pk_todo
Don't just check errors, handle them gracefully
pk_todo
Design the architecture, name the components, document the details
pk_todo
Documentation is for users
pk_todo
A little duplication is far cheaper than the wrong abstraction
pk_todo