Learning Go. An Idiomatic Approach to Real-World Go Programming
- Personal review:
- This book is an excellent introduction to Go, covering the language features, idioms, and best practices in a clear and concise way.
- Easy to read and understand, with several examples and exercises at the end of each chapter.
- Sometimes, the author compares Go with other languages, such as Java, Python, or C++, which helps to understand the differences and advantages of Go.
- It covers all the important topics of Go, including the new features of Go 1.18, such as generics and fuzzing.
- It also provides insights into the design decisions and trade-offs of Go, and how to write idiomatic Go code.
- It is a great book for both beginners and experienced Go developers who want to learn more about the language and its best practices.
-
From Amazon:
Go has rapidly become the preferred language for building web services. Plenty of tutorials are available to teach Go’s syntax to developers with experience in other programming languages, but 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.
No 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. This updated edition also shows you how Go’s generics support fits into the language.
This book will help you in:
- Write idiomatic code in Go and design a Go project
- Understand the reasons behind Go’s design decisions
- Set up a Go development environment for a solo developer or team
- Learn how and when to use reflection, unsafe, and cgo
- Discover how Go’s features allow the language to run efficiently
- Know which Go features you should use sparingly or not at all
- Use Go’s tools to improve performance, optimize memory usage, and reduce garbage collection
- Learn how to use Go’s advanced development tools