Go for Web Development

Find out how Go makes web development fast and enjoyable by developing a full stack web project
3.2 (24 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
147 students enrolled
80% off
Take This Course
  • Lectures 20
  • Length 2 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 1/2016 English

Course Description

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

Larry Price is a software engineer with a passion for exploring the world of programming. He has a wide experience in building softwares with programming languages like go, ruby, javascript, and C++. He fell in love with go a couple of years ago and has taken every opportunity to utilize it at home and work.

What are the requirements?

  • We expect you to have a background in general programming principles and the ability to write in any programming language, but no direct experience with Go is necessary.

What am I going to get from this course?

  • Get a web server up and running quickly with Go’s standard library
  • Design a UI with multiple template engines for improved flexibility
  • Call on the services of an external API
  • Get to grips with and incorporate web middleware
  • Use AJAX requests to build a single page web application
  • Integrate Gorilla/MUX for cleaner route handling
  • Create users securely by using bcrypt to hash user passwords
  • Access SQLite and Postgres databases and deploy your application on Heroku

Who is the target audience?

  • If you've heard a lot about Go and are interested in understanding how to use it for web development, this video course delivers the knowledge you need to start developing full web applications.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Hello, Go Web Development

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.

Section 2: Collecting Books

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.

Section 3: Become the Librarian

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.

Section 4: A Place for Everything

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.

Section 5: Different Folks, Different Libraries

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.

Section 6: Wrapping Up

Building a web application with standard library components can take a long time and result in redundant code. We could explore a number of potential frameworks to make writing web applications easier.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Packt Publishing, Tech Knowledge in Motion

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.

Ready to start learning?
Take This Course