Let’s Go! Learn to Build Professional Web Applications With Golang
Author: by Alex
Written for: Go 1.23
Last updated: August 18th, 2024
Formats: HTML, PDF and ePUB
Language 语言: US English
Size: 403 pages (in PDF format)
Version: 2.23.0
Book Description
Let’s Go! Learn to Build Professional Web Applications With Golang [Professional Package], 2nd Edition
Let’s Go is a clear, concise and easy-to-follow guide to web development with Go.
It packs in everything you need to know about best practices, project structure and practical code patterns — without skimping on important details and explanations.
Go is a great language for building web applications. But teaching yourself from blog posts and the standard library documentation can be a big time-sink and leave you with more questions than answers.
You might be wondering things like:
- 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 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 — helping you get up to speed quickly and saving you months of research and experimentation.
The book walks through the start-to-finish build of a complete working application, helping you to learn by doing. You’ll get practical experience implementing common real-life code patterns, the topics that you’re learning about are put in context, and you’ll end up with a well-structured codebase that you can adapt for your own future work.
By the end of the book, you’ll have all the knowledge and confidence that you need to build your own professional, production ready, web applications.
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 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).
- Form validation — How to implement a 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.
- Embedding files — How to embed static assets (like HTML templates, images, CSS and JS files) into your Go binary.
- 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!
About the Author
Hey, I’m Alex Edwards, a full-stack web developer and author of Let’s Go and Let’s Go Further. I live near Innsbruck, Austria.
I’ve been working with Go for over 10 years, building production applications for commercial clients and myself (including the website that you’re reading now!) and helping people all around the world improve their Go skills.
You can see more of my writing on my blog (where I publish detailed tutorials), some of my open-source work on GitHub, and you can also follow me on Instagram and Twitter.