Slide 1

Slide 1 text

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.

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Concurrency is not parallelism.

Slide 4

Slide 4 text

Channels orchestrate; mutexes serialize.

Slide 5

Slide 5 text

The bigger the interface, the weaker the abstraction.

Slide 6

Slide 6 text

Make the zero value useful.

Slide 7

Slide 7 text

interface{} says nothing.

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

A little copying is better than a little dependency.

Slide 10

Slide 10 text

Syscall must always be guarded with build tags.

Slide 11

Slide 11 text

Cgo must always be guarded with build tags.

Slide 12

Slide 12 text

Cgo is not Go.

Slide 13

Slide 13 text

With the unsafe package there are no guarantees.

Slide 14

Slide 14 text

Clear is better than clever.

Slide 15

Slide 15 text

Reflection is never clear.

Slide 16

Slide 16 text

Errors are values.

Slide 17

Slide 17 text

Don’t just check errors, handle them gracefully.

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Documentation is for users.

Slide 20

Slide 20 text

Don’t panic.