Go is on the rise and showing itself as a powerful option in many software development domains. For web developers seriously considering adopting the language on the server side, Go comes with a very strong and accessible standard library. It makes setting up the architecture for web applications a comfortable experience, and provides a growing ecosystem of tools, libraries, and frameworks that can help you build web applications for delivery on the web.
Go for Web Development gets you started with web development in the language, opening with the classic "Hello world" through building an application with a strongly designed database backend, useful middleware, UI with an intelligent search function, multi-user authentication, and more.
We'll start off by building a web server with Go’s extensive standard library. You’ll learn the concepts of a single page web application and create a dynamic user interface using templates, manipulate a database, and use powerful encryption algorithms to implement an authentication system. We'll also start to incorporate more functionalities by calling out to external libraries from our database. When we've put everything together, we'll show you how package it all up and deploy it into the wild using Heroku.
About The Author
This video will offer an overview of the course.
We'll get started by building a Go web application, which can be overwhelming. Let's focus on using a standard library to create our first route. We'll have a working web application by the end of this video.
We want to display a rich, data-driven interface to the users of a web application. We'll write some markup files and use the built-in templating engine to generate HTML to display dynamic data to the user.
We want to store data and access it from our server in the future. We'll connect to a sqlite database and show the connection status in our template.
The UI will be incomplete until the server delivers meaningful data. We'll put together a very basic search UI and fetch fake data from the server to present to the user.
We need to collect data from an external source to have any value in this app. We'll query the classify2 API to fetch real reference information based on the user's search criteria.
Users need to choose books to add to their collection. We'll save book selections from the server in our sqlite database for future use.
We don't want to duplicate the code to create the sqlite connection in every route. We'll use web middleware to inject the connection.
Raw HTML is very verbose and, at times, repetitive. We will utilize a third-party template engine, called Ace, which will let us write cleaner, more succinct markup.
We need to display the user's book collection from previous selections. We'll pull all the books from the database and display them in the UI.
A user may want to remove old books from a collection. We'll add a feature to our application and delete unwanted selections.
We need our web application to be fast and easy to modify. We'll integrate one of the most popular and most powerful HTTP routers in golang to make our server more robust.
Manually building Go objects from SQL results can be difficult to write and dangerous to modify. We'll use go-gorp to clean up our database calls.
Users need to sort books based on standard classification numbers in order to build a library. We'll add functionality for the user to sort books and store sort preferences.
Users may only want to see fiction and nonfiction collections displayed separately. We'll add the filtering functionality so that the user can see a single category of books.
A library should support multiple users using the system. We need a method to identify each user. We'll build a basic login UI to allow authentication with the library application.
We do not want to store user passwords as plain text in our database. We'll use an encryption library to build secure password hashes for users.
As users perform actions within the application, we need to verify the user's identity. We'll store the user's identity in the browser session and use the session to validate requests.
Each user should have an independent collection of books. We'll associate books with a user and filter books being pulled from the database to match the corresponding user.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.