between a method that's easy to test and not is often a matter of whether you are passing interfaces (good) or concrete types (bad) • Since functions are first class types in Go, functions can also be passed around to decouple implementations
Go program stops about 100 times per second and records a sample consisting of the program counters on the currently executing goroutine's stack. • With go test lib you can use • -cpuprofile • -memprofile
set, the compiler instruments all memory accesses with code that records when and how the memory was accessed, while the runtime library watches for unsynchronized accesses to shared variables. When such "racy" behavior is detected, a warning is printed