Skip to main content

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

Comments

No comments yet. Be the first!