Arundel John (self-published), 2024. — 263 p.
Are you ready to unlock the power of Go, master obviousness-oriented programming, and learn the secrets of Zen mountaineering? If so, The Power of Go: Tools is the perfect next step on your software engineering journey, explaining how to write simple, powerful, robust, and even delightful programs in Go. Includes free updates for life.
This edition is fully updated and revised for Go 1.23, with masses of new material, and dozens of ready-to-use code samples. It also includes complete solutions to all code challenges. If you’ve already bought a previous version, just re-visit the link in your original download email to get the latest edition.
About the book:This friendly, supportive, yet challenging book will show you how master software engineers think, and guide you through the process of designing production-ready command-line tools in Go step-by-step.
If we can figure out how to break down our unsolved problems into a bunch of mini-problems that have already been solved by existing packages, then we're 90% done.
How do you break down a problem into manageable chunks? How do you test functions before you've written them? How do you design reusable libraries and tools that delight users? These are all questions I’ve encountered many times, and (good news!) The Power of Go: Tools has the answers.
If there's one thing worse than mandatory paperwork, it's mandatory meaningless paperwork.
What you'll learn:It may be fun and easy to read, but this book is also a serious challenge. At each stage there are problems for you to solve, code to write, and design questions to ponder.
Throughout the twelve chapters and 260+ pages, you'll be tested to your limits, as you learn the intricacies of flags and arguments, files and filesystems, commands, shells and pipelines, JSON and YAML wrangling, and even sophisticated API clients.
There are more ways for things to go wrong than for them to go right, so it's fine for the majority of our code to be about error handling. Indeed, it's statistically inevitable.
As we work together to develop increasingly powerful and delightful tools in Go, you'll learn how to test behavior, not functions; how to reduce error-handling boilerplate and eliminate paperwork; and how to make sure the user is the one having fun.
Don't think of it as a failing test: think of it instead as a succeeding bug detector.