"Everyday Go" is the fast way to learn tools, techniques and patterns from real tools used in production.
This book is a compilation of practical examples, lessons and techniques for Go developers. The topics cover the software lifecycle from learning the fundamentals, to software testing, to distribution and monitoring.
If you feel like you may have seen some of these techniques before, you would be right. I've been writing about Go since 2015 and wanted to take everything that I've needed on a regular basis, and to lay it out for you to benefit from.
It's not a reference book or a complete guide to the language, but if you like learning by example and aren't afraid to get your feet wet, then this style is probably for you.
Features my top rated content on Writing unit-tests in Go, updated, extended and modernised for 2021, as featured in the Kubernetes documentation.
Read the launch post: I wrote a book about Everyday Go
Benefits to professional developers and businesses:
- Craft internal tools that you'll enjoy building and maintaining
- Deliver higher quality product through unit testing
- Increase reliability and uptime through monitoring and metrics
- Learn how to integrate quickly with brownfield APIs and products
- Cover your training objectives for this year
Who is this book for?
Whether you're starting out with Go, or are at an intermediate level, then you will probably get a lot out of this book. You may get this book to expand your knowledge, or to go deeper in a certain area like Cross-compilation, Unit Testing, GitHub Actions or Goroutines.
It's also useful as reference material for experienced Go developers, for instance - the author uses the GitHub Actions and Prometheus chapters as a refresher when creating new services.
What do we cover?
- How to use the book
- Why Go?
- Getting started with Go
- Managing packages and paths
- Understand Go modules and vendoring
- Creating your first program in Go
- Manage libraries and packages
- Adding external dependencies to your program
- Cross-compile your code for different Operating Systems
- Inject version information into your binaries
- Merge Go objects together into one
- Deal with HTTP and JSON parsing
- Learn how to use concurrency with Goroutines, channels, Mutexes, error groups and WaitGroups
- Write unit tests and understand everything that's available to you
- Learn party tricks of the testing in Go
- Isolate dependencies and unit test a HTTP server
- Embed data and files into your application
- Create dynamic content with templates
- Build a CLI that you'll enjoy using
- Load and write to config files in YAML
- Write your own HTTP microservices
- Integrate with Prometheus for metrics
- Learn to build and release Go binaries
- Build Docker container images
- Release your code on GitHub
- Get set for your onward journey
You could say that this is the fast track to get the results you'll need in your everyday writing of applications in Go. The Premium Edition ePub has 300 pages with a normal-sized font. The base edition ePub is approximately 215 pages.
Premium + Team editions:
- 15 sample apps in a ZIP file to get you started without having to copy and paste
- Serverless add-on - Learn how to build Serverless functions in Go using OpenFaaS, which can be deployed to Kubernetes, Google Cloud Run and faasd.
Offers and Discounts:
Want a 20% discount? Sign up to my Insiders' Portal via GitHub Sponsors and get a 20% discount off all my eBooks
If you're on a total income of less than 30,000 USD/year or aren't earning yet then you can get a discount by buying the "Scholarship Edition" tier.
Comments, questions & suggestions
If you think that you've found an error, or that you'd like to know more about a certain section, feel free to send me an email firstname.lastname@example.org. I may be able to improve the content for the next revision, which everyone will get for free.
For Kindle users, you may find you get a better reading experience if you convert the ePub file to mobi format.
You may also like these
In my Netbooting workshop for Raspberry Pi with K3s - you'll learn how to build a private cloud with Raspberry Pi and Kubernetes
In Serverless for Everyone Else - you'll learn what functions can do for you, how to build, deploy and monitor them.
What are people saying?
"Alex is a seasoned pro building software and products with Go. He’s a great communicator. You’ll be in a better place for having learned from his experience." - Jeff Nickoloff, Director Venmo
""Everyday Go" by Alex Ellis allows me to get the most out of the standard library, avoiding external dependencies as much as possible. It is kept up-to-date frequently (often including new content that I just happen to need)." - Jan Tytgat, Director @ Core Layer
"Does Alex ever sleep? 😴 He just wrote a Golang book! I had a chance to read an early copy and its really useful, real life content! I liked the testing part the most! 👍" - Engin Diri, Developer Advocate @ Schwarz IT
"I got 'Everyday Golang'. So far, I love the learn by example style and I’m super amped to get to the 'make your own CLIs', writing your own microservices and integrating it with Prometheus for metrics 🙌 🚀" - Ruan Bekker, DevOps Engineer @ Techno Ponies
"Bought the book, it gives you very good insights on very relevant topics using Go as a beginner (and stuff for experienced developers). Using it for all my #CitrixADC projects." - Jan Tytgat, Founder @ Core Layer
"Reading a book written by an expert is one of the cheapest and best hacks there is. You can spend 5 years learning (and fighting) go on your own, or you can read Alex's latest book and instantly leverage his expertise with it." Ramiro Berrelleza, Co-founder @ Okteto
"I read a lot of code and I’m very picky about its quality, not just the logic part. But trust me, Alex produces highly pragmatic and, at the same time, elegant Go!" - Ivan Velichko, SRE @ Booking.com
“Not only is Alex a very knowledgable dude, he’s a genuinely nice guy that does whatever he can to help people. Totally worth checking out his ebook” - Keiran Smith, Lead Operations Engineer @ SolarWinds
"I'm midway through reading "Everyday Golang". Lots of valuable tips and context in there, especially since Go isn't my main language, great job." - DevOps Engineer @ Riskfuel Analytics
"I really liked the personal stories behind the content and seeing how your projects evolved like OpenFaaS from flags to Cobra to improve the user experience." - Felipe Cruz, DevOps Engineer
"I'm starting a new job which will be mostly Go. I’m fluent in many other languages, but a great book like this helps me get the bearings, idiomatic patterns and best practices of a new runtime and language much faster than grinding through the reference docs and finding quality example projects by myself." - Alexander Lais
"I know Go, but I was interested in the Prometheus instrumentation chapter and started recommending it as learning resource :)" - Michael Friedrich, Senior Ops in Dev Evangelism @ GitLab
"Just want to say, your book on Go has been really helpful for getting me up and running with it. Thanks for all the effort you put into it. I’m a async/await fanboy so really wanted some solid sources for learning the Go way." - Ed Stephinson, Senior Engineer @ boomin
"Judging by the table of contents, this is the most practical book I've ever seen on Go! Great work" - Hossein Kazemi @ boringbackend.dev
"Worth every cent. My favourites are the chapters about web services and Prometheus. These two chapters are most relevant for my daily business at work. Most other Go books are like “This is an if statement and this a while loop” which is hard for experienced developers to filter through, but your book is full of practical knowledge instead." - Markus Heinemann, Founder Trustify
"I really enjoyed "Everyday Go". It's very well-written, covers use cases not generally discussed in other programming books, is highly entertaining, and has lots of source code. Check it out!" - Jason Salas, Product Director @ KUAM Digital
"Thanks to @alexellisuk. I finally found some time to start reading „Everyday Go“. Great book! I learned a lot!" - Nico Meisenzahl @ white duck GmbH
"Can I just recommend the great book of Alex Ellis? Easy to read, fast to be PROD-ready" - David Aparicio
"Skimmed through this when I need a bit more Golang primer for things. A really well presented and easy to follow book if you want to understand and work with Go." Peter Fox
"This Go book from @alexellisuk is a #musthave. 1. It’s super hands-on 2. We have the best practices on #CLIs dev 3. I caught things I never caught before, because it comes from real life project 4. Part on concurrency is dope, It helped me to finish my scraper/scheduler" - Philippe Ensarguet, CTO @ Orange Business
"Recently I got my hands on "Everyday Golang" to refresh my Go. When other books mostly teach about programming, this book teaches actual programming skills. Highly recommended!" - Piotr
"I am reading your book Everyday Go. It's an amazing book by the way. Thanks for writing this!" - Alican Sungur
"10 out of 10 even if you are fluent, you learn something new everyday you read" - Talha Altınel
"Just a shout out to Alex and his book "Everyday Golang" it's a great read and a pretty useful golang notebook." - Aris
"Since we’re making a CLI in Go for Comwork Cloud, we got this ebook in order to improve it and to learn from the master @alexellisuk !" - Idriss Neumann
"Must read. It really helped me to become productive quickly at work, even though I was already contributing to OpenFaaS and arkade in Go. There are many concepts covered that I wouldn't have known about by looking through docs." - Nitishkumar Singh
"Two really good books are Serverless For Everyone Else and Everyday Go. I am reading Everyday Go now and found lots of nuggets of information that I didn’t know before. A very useful book." - Rashed Kamal, Developer @ Lora Solutions