Go is on the rise. This open-source programming language (created by Google!) comes with a strong and accessible standard library, and provides a growing ecosystem of tools, libraries, and frameworks that can help you build web applications fast. Go for Web Development gets you started with the language, opening with the classic "Hello world" exercise and culminating in a web application with a strongly designed database back end, useful middleware, UI with an intelligent search function, multi-user authentication, and more.
First, learn how to build a web server with Go's extensive standard library. Explore the concepts behind a single-page web application and learn how to create a dynamic user interface, manipulate a database, and use powerful encryption algorithms to implement an authentication system. Next, you'll incorporate more functionality by calling out to external libraries from the database. Finally, it all comes together into an optimized package you can deploy into the wild with Heroku.
- Creating a route in Go
- Using templates
- Building database connections
- Collecting data
- Using web middleware
- Using the Ace template engine
- Integrating HTTP routers like gorilla/mux
- Authenticating users
- Optimizing a Go codebase
Skill Level Intermediate
I've used Go to build web applications, or create utility scripts, and I often document my experiences on my blog at larry price dot com. This is the very first video in Go for Web Development. So I'll take this time to give a brief overview of the topics covered within this course and the structure of the course. This course is divided into six sections. Each section will build on the concepts learned and the code written in each previous section, as we organically build a fully functional personal library application.
In the first section we'll build a basic web server from scratch and start learning about templates and database connections. In section two we'll build search functionality into our basic web server. Our server will pull results from an external API called classify which will help us identify books. We'll start integrating ajax calls into our front end, and we'll save selected books to our database. We'll also introduce the concept of web metalware and its many uses in building web applications. Throughout section three we'll introduce viewing our book collection and deleting unwanted books.
During this section we'll also introduce popular third party packages into our app, such as gorilla mux and the ace template rendering engine. Section four will see us extending our database usage to include sorting and filtering our book collection based on user input. We'll use the popular gor package, to make database access easier. And section five will focus on adding multi-user authentication to our app to enable any number of users to access personal library collections when viewing on our site. We'll learn to use modern cryptography library bcrypt to hash user passwords and block any unknown users from entering the site.
We'll wrap up the course in section six where we'll think about the next steps in our Go web development journey. We'll discuss popular Go web frameworks, and we'll delve into several tools which will allow us to easily format, lent and test our code. In the very end, we'll update our web application to deploy it to Heroku for the world to see. Before starting the course you'll need Go up and running. Go and all of its dependencies can be installed on any of the most popular operating systems and architectures. But I'll be using Go 1.5 on Ubuntu Linux throughout the series.
You'll probably want to have a base knowledge of Go syntax which you can easily get by walking through the Go tour on golang dot org. Having some experience in building software for the web will be helpful, but is not necessary to fully participate in this course. We'll start this course with a blank slate, but we'll end with a fully functional library app, that we'll be able to deploy to the cloud. Now that you know what to expect from this course, I hope you'll take my hand and walk with me, as we explore the world of Go web development together.