Proverbs Go

Simple, poetic, concise

  • Do not communicate over shared memory, communicate over shared memory

Don’t communicate by sharing memory, share memory by communicating.

  • Concurrency is not parallelism

Concurrency is not parallelism.

  • Channel arrangement; Mutex serialization

Channels orchestrate; mutexes serialize.

  • The larger the interface, the weaker the abstraction

The bigger the interface, the weaker the abstraction.

  • Make zero useful

Make the zero value useful.

  • Interface {} says nothing

interface{} says nothing.

  • Gofmt’s style is not people’s favorite, but Gofmt is everyone’s favorite

Gofmt’s style is no one’s favorite, yet gofmt is everyone’s favorite.

  • A little copy is better than a little dependence

A little copying is better than a little dependency.

  • System calls must always be secured with build tags

Syscall must always be guarded with build tags.

  • Cgo must always be secured with build tags

Cgo must always be guarded with build tags.

  • Cgo is not Go

Cgo is not Go.

  • There are no guarantees for insecure packages

With the unsafe package there are no guarantees.

  • Clear is better than clever

Clear is better than clever.

  • The reflection is never clear

Reflection is never clear.

  • Mistakes are values

Errors are values.

  • Don’t just check for errors, deal with them gracefully

Don’t just check errors, handle them gracefully.

  • Design the architecture, name the components, document the details

Design the architecture, name the components, document the details.

  • Documents are intended for use by users

Documentation is for users.

  • Don’t panic

Don’t panic.

Github. IO/video address: www.youtube.com/watch?v=PAA…