YOUR PRACTICAL, HANDS-ON GUIDE TO WRITING APPLICATIONS USING GO
Google announced the Go programming language to the public in 2009, with the version 1.0 release announced in 2012. Since its announcement to the community, and the compatibility promise of the 1.0 release, the Go language has been used to write scalable and high-impact software programs ranging from command-line applications and critical infrastructure tools to large-scale distributed systems. It’s speed, simplicity, and reliability make it a perfect choice for developers working in various domains.
In Practical Go - Building Scalable Network + Non-Network Applications, you will learn to use the Go programming language to build robust, production-ready software applications. You will learn just enough to building command line tools and applications communicating over HTTP and gRPC.
This practical guide will
Writing command line applications Writing a HTTP services and clients Writing RPC services and clients using gRPC Writing middleware for network clients and servers Storing data in cloud object stores and SQL databases Testing your applications using idiomatic techniques Adding observability to your applications Managing configuration data from your applications You will learn to implement best practices using hands-on examples written with modern practices in mind. With its focus on using the standard library packages as far as possible, Practical Go will give you a solid foundation for developing large applications using Go leveraging the best of the language’s ecosystem.
This is a good book to go beyond the basics of Go. In fact, one of the problematic things about this book is that because it does not cover the basics of the language separately, it is difficult to imagine a target audience who would know _all_ the language constructs but need the patterns that the book goes into.
The patterns themselves are relevant and useful for those who plan to write Go code. The first two chapters are about writing CLI apps and then it goes on to build HTTP clients, servers, and gRPC apps. There’s a last chapter on dealing with persisting data.
While the chapters are useful and exactly what I wanted, the writing style makes it difficult to follow the thread of ideas. A part of that is because I am a beginner and may not be aware of certain patterns, but that is why I needed this book (which makes me think who is this book for). Ultimately, I read this book in snippets and kept the code listing open in Github. I found I was able to understand the code much better that way.