Zero to Production in Go
Why this Go guide?
I’ve been dipping my toes into Go lately, and I've noticed a gap in the learning resources. Coming from Rust, which has a wealth of excellent guides and tutorials, Go’s landscape is a bit more barren, especially when it comes to practical, production-ready applications for beginners. This guide is greatly inspired by Luca Palmieri's Zero to Production in Rust book.
So, I'm writing this guide to share what I've learned and to help others level up their Go skills. We'll cover everything from the basics to advanced topics, including:
- Building APIs: Designing, testing, and securing RESTful APIs.
- Data Persistence: Working with SQL databases.
- Monitoring and Logging: Implementing effective telemetry solutions.
- Deployment Strategies: Deploying Go applications to production environments.
- Error Handling and Debugging: Mastering Go's error handling mechanisms.
I'm no expert in Go, so this guide will be updated regularly when techniques or patterns are made avail to me. I hope this resource will help you become a more proficient Go developer.
What's not covered
Installing Go and setting up your IDE. This guide is all about the language and writing applications with it.
Use case
Throughout this guide, we'll implement a newsletter delivery service, just like in a certain other book. It will be barebone:
Users can subscribe to the newsletter, and authors can notify users of new content by sending them an e-mail.