Go is a great language for building web applications. But teaching yourself from blog posts and the standard-library documentation can often leave you with more questions than answers.
Let's Go! Learn to Build Professional Web Applications With Golang [Professional Package]
You might be wondering:
- Where can I see a concrete example of a real-world web application?
- How is it best to structure and organize my code?
- How do I make sure I’m not making any mistakes when it comes to security?
- How do I use modules to manage and version control dependencies?
- And how do I effectively test my web application?
Let’s Go answers these questions for you — and a whole lot more.
The book guides you through the start-to-finish build of a real-world application, so you'll gain all the knowledge, understanding and confidence you need to create production-ready applications with Go.
What You’ll Learn…
- All the fundamentals — How to start a server, create handlers, send responses, route requests and serve static files.
- Structure and organization — How to create an idiomatic and scalable structure for your web application.
- Using Modules — How to use Go's new Module functionality to manage and version control your dependencies.
- Managing configuration — How to use command-line flags and dependency injection to manage your application settings.
- Logging and Error Handling — How to implement leveled logging and centralized error handling.
- SQL databases — How to design a database model, set up a connection pool, and execute statements and queries.
- HTML templating — How to cache your templates, display dynamic data, create custom functions and handle runtime errors.
- Middleware — How to create your own middleware to perform common actions (like logging requests and recovering panics).
- RESTful routing — How to create a modern request routing structure that follows the principles of REST.
- Form validation — How to implement reusable and user-friendly pattern for validating forms and displaying errors.
- Session management — How to use and configure sessions to persist data between requests.
- Using HTTPS — How to correctly setup a HTTPS server and configure it for improved performance and security.
- Prevent common vulnerabilities — How to prevent SQL injection, CSRF, XSS, clickjacking and slow-client attacks.
- Authentication and authorization — How to safely encrypt user passwords and add signup, login and logout functionality.
- Request context — How to use Go's context.Context to pass data between your middleware and handlers.
- Testing — How to create unit tests, integration tests and end-to-end tests, mock dependencies and measure test coverage.
- And most importantly… How to put it together in a fully-functioning application!
Additional
Go 1.24 language updates
Section 13 ("Testing") has been updated to use the new slog.Discard handler, instead of a slog.TextHandler that writes to io.Discard.
Dependency updates
- golang.org/x/crypto => v0.33.0
- github.com/alexedwards/scs/mysqlstore => v0.0.0-20250212122300-421ef1d8611c
Other changes
Various broken link and typo fixes, and minor copy tweaks to improve clarity.
About the Author: Alex Edwards
About Alex Edwards
Hi, I'm Alex Edwards. I am a software developer and author who works with the Go programming language.
I live in the mountains near Innsbruck, Austria. I once worked for the British Government as the project manager for police.uk and data.police.uk.
I have also built a few small businesses and still enjoy working on them. I use Go, Ruby, Git, and Linux in my daily work. I write often about building web applications.
You can view my open‑source projects on GitHub.
Books
Read Book Let's Go! Learn to Build Professional Web Applications With Golang [Professional Package]
| # | Title |
|---|---|
| 1 | lets-go-professional-package-v2.24.0 |