Go beyond Go syntax into the language’s unique perspective on program design.
Through engaging hands-on examples, Go by Example will teach you to think differently about programming in Go. You’ll get to grips with the “Go mindset”, writing code that’s simple, straightforward, and easy to understand for your fellow Go developers. You’ll discover how Go’s tooling helps you write code that’s robust and testable, and see just how productive you can be with Go's rich set of built-in packages.
In Go by Example you will learn how
• Understand what makes Go different and adopt its philosophy for simple, pragmatic, and straightforward code • Write idiomatic code that’s robust, efficient, maintainable, and inherently testable by design • Identify common Go mistakes and apply proven patterns for higher quality code • Structure and organize effective Go packages and APIs • Build performant concurrent programs with Go’s unique concurrency
Go by Example explores what makes Go so dramatically different from other languages. Through hands-on and realistic project examples—like command-line tools, web services, and scalable concurrent programs—it helps experienced developers unlearn habits and quickly become productive in crafting truly Go-like, high-quality code.
About the technology
You can’t appreciate the simplicity, explicitness, and pragmatism of Go until you see it with your own eyes! Even a quick glance at an elegant interface or a bit of clean error handling code reveals why Go was the language of choice for Kubernetes, Docker, and Terraform.
About the book
Go by Example unpacks real Go programs to highlight the language features and idiomatic coding practices used by the pros. In it, you’ll dissect and explore examples of command-line tools, concurrent programs, web services, and more as you learn to write Go code that’s simple, efficient, and testable.
What's inside
• Acquire the “Go mindset” • Write idiomatic, reliable, and maintainable code • Structure Go projects and packages • Best practices and antipatterns
About the reader
For experienced programmers.
About the author
Inanc Gumus is a veteran programmer who has specialized in Go since 2012. Inanc has educated over 100,000 developers through his social presence, GitHub repositories, online courses, and his popular blog.
Table of Contents
1 Getting started 2 Idioms and testing 3 Test coverage and optimization 4 Command-line interfaces 5 Dependency injection 6 Synchronous APIs for concurrency 7 Responsive and efficient programs 8 Structuring packages and services 9 Composition patterns 10 Polymorphic storage
I started learning the Go language in the summer of 2010, and I also led the development of controller software for digital multifunction printers using Go. When I began working on the development of microservices using gRPC in June 2018, I encountered many unfamiliar idioms. I think that if I had read this book at that time, I would have been able to understand them much more naturally.
I read this book in the course of translating it into Japanese. The Japanese edition is scheduled to be published in the fall of 2026.
I think this is an excellent book for learning the idioms and philosophy of Go. If you learn Go through this book, I recommend also reading "The Go Programming Language", "100 Go Mistakes and How to Avoid Them", and "Learn Concurrent Programming with Go" in order to organize your knowledge more systematically.
The above three books have also been translated into Japanese by me and published in Japan.
I read the MEAP-version of it, so there is going to be a follow up of my recension here for sure.
For me the chapters are well structured, the examples easy to understand and the lessons easy to apply. I especially like that this isn't one big example, but several ones that might be connected somehow. Maybe you can benchmark the link shortener with hit?
I think the further exercises should be added to the previous chapters as well and maybe the complete list of the functions of a package isn't a bit noisy though.