Learn to write modern, fast, and secure web applications in Google's Go programming language, and learn it from an award winning University professor with 20 years of teaching experience, and 20 years of experience working in the industry as an entrepreneur.
Go is a modern, type safe, compiled, and extremely fast programming language. It it is ideally suited for building safe, scalable, incredibly fast web applications.
This course is well-suited for both absolute beginners, and for developers who already know something about web development, but want to add Go to their toolbox.
Learn to write modern, fast, and secure web applications in Google's Go programming language, and learn it from an award winning University professor with 20 years of teaching experience, and 20 years of experience working in the industry as an entrepreneur.
Go is a modern, type safe, compiled, and extremely fast programming language. It it is ideally suited for building safe, scalable, incredibly fast web applications.
This course is well-suited for both absolute beginners, and for developers who already know something about web development, but want to add Go to their toolbox.
We start with an overview of the Go language, and then cover everything you need to get started writing web applications, including an overview of HTML5, a survey of JavaScript and JavaScript modules, how to work with Cascading Style Sheets to make our application look the way we want, and much more.
The major project in this course is building a bookings and reservation system for a Bed & Breakfast. Visitors to our site will be able to search for accommodations by date and make an online reservation, and the site owner will be able to manage reservations from a secure back end.
By the time you finish this course, you will have a solid grasp of what it takes to build a completely functional, secure, and fast web application from the ground up, and you will have a solid understanding of the Go programming language.
An overview of what we are going to do, and a bit about my background.
The advantages of Go over other options.
Go and system resources.
In this lecture, we install Go, an Integrated Development Environment (IDE), and the necessary plugins, and then write a simple "Hello, world" application.
My suggestions for solving problems along the way.
A few useful resources that will help you as you go through the course.
For Windows users, an alternative to the standard command prompt.
We learn how to use basic variables and functions.
Pointers, and how they are implemented in Go.
We learn how to define our own data types.
Methods: functions with receivers.
Two useful data structures: maps and slices.
Making decisions in our programs.
How to loop over data structures in Go.
Go's useful implementation of interfaces.
Check your understanding of interfaces in Go
Go's package management system.
How to pass data to (and between) goroutines.
Working with Javascript Object Notation (JSON) files.
How to write tests in Go.
An overview of what happens when you visit a web page.
We convert our simple "Hello, world" program to a basic web application.
Go 1.16 requires modules for a lot of things. Let's enable them.
We improve our "Hello, world" web application by creating additional handlers and routes.
A basic introduction to error checking.
We modify our web application to serve actual HTML pages, instead of simply writing text to the browser window. Pages are served using Go's template/html package.
We organize our application a bit more intelligently, and add Bootstrap to our HTML templates (which we will be using in more detail later in the course).
We enable Go Modules, and move core components of our application into packages.
We set up an application wide configuration, so we can share information with our packages as needed.
A bit more about our site wide configuration logic.
Making our template cache more useful.
We go through the process of taking data from our handlers and sending it to Go templates.
One option for making our routes easier to manage.
Another option for making our routes simpler.
Middleware is useful, and easy to write.
Saving our application state with a sessions package.
An overview of how sessions work.
An overview of what we will be working on.
Getting things started.
How to serve static site content using Go.
An overview of HTML pages.
Creating the landing page for our site.
Creating a few additional pages in HTML.
HTML forms, and how they work.
Making our form a bit more useful.
Creating the HTML page for a reservation.
A brief overview of Javascript, and why it's so useful
Using a custom date picker instead of the built in browser functionality
Creating non-intrusive alerts for our web application using Notie
Making nice popup alerts using SweetAlert
How to simplify our Javascript by using modules
We simplify our alerts by wrapping them all in a Javascript module
Adding a custom popup function to our Javascript module
An overview of Cascading Style Sheets (CSS).
An overview of Go templates and how they work.
An overview of HTTP handlers, and how to make them.
How to return JSON as a response, instead of HTML.
What is Ajax, and how to we send/receive to an Ajax handler?
More about Ajax, and improving our implementation of it.
Reorganizing our code to make it a bit more sensible.
Starting the process of validating form submissions on the server.
More about validation.
Working on the reservation summary page.
An alternative to Go's built in template system
More about writing tests.
How to test our GET handlers.
Writing tests for POST handlers.
How to test our render package.
More about testing our render package.
Using Go's built in functionality check our test coverage.
Writing tests for our forms package.
The solution to the exercise.
Writing a shell script to make running our app simpler.
Improving our error handling logic.
Using our client/server error functions.
Keeping our tests up to date is very important.
How to install our database software locally.
Setting up and connecting our database client software (on a Mac).
Setting up and connecting our database client and server software (on Windows).
The basics of writing structured query language (SQL).
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.