Go is rapidly becoming the preferred language for building web services. While there are plenty of tutorials available that teach Go's syntax to developers with experience in other programming languages, tutorials aren't enough. They don't teach Go's idioms, so developers end up recreating patterns that don't make sense in a Go context. This practical guide provides the essential background you need to write clear and idiomatic Go.\n\nNo matter your level of experience, you'll learn how to think like a Go developer. Author Jon Bodner introduces the design patterns experienced Go developers have adopted and explores the rationale for using them. You'll also get a preview of Go's upcoming generics support and how it fits into the language.\n\nLearn how to write idiomatic code in Go and design a Go project\nUnderstand the reasons for the design decisions in Go\nSet up a Go development environment for a solo developer or team\nLearn how and when to use reflection, unsafe, and cgo\nDiscover how Go's features allow the language to run efficiently\nKnow which Go features you should use sparingly or not at all