Learning Path: Master Google’s Go
3.3 (4 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.
44 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Path: Master Google’s Go to your Wishlist.

Add to Wishlist

Learning Path: Master Google’s Go

Learn how to use this incredible language to build web-scale, real-time systems and applications on your own
3.3 (4 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.
44 students enrolled
Created by Packt Publishing
Last updated 2/2017
English
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
Includes:
  • 4.5 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Enhance your skills at building web applications
  • Set up a database-powered web application to power your own website
  • Frame a user authentication system that supports multiple clients
  • Extend your web applications by creating a JSON REST API
  • Build your first real-time web application: a chat server
  • Access SQLite and Postgres databases and deploy your application on Heroku
View Curriculum
Requirements
  • Basic knowledge on web development and web services
Description

Surely, you have heard about Go, which is on the rise and showing itself as a powerful option in many software development domains. Are you’re looking to explore Go in depth and learn how to build real-world apps? Master Google’s Go is a Learning Path that introduces you to different programming projects ranging from command-line tools to distributed messaging services, web services, and web applications with Go running on the server side.

Packt’s Video Learning Paths are a series of individual video products put together in a logical and step-wise manner such that each video builds on the skills learned in the video before it.

This Learning Path starts by demonstrating how versatile the Go language can be and how it can be put to use in a range of real-world programming domains, whether that’s for DevOps tools, cloud-based services, or RESTful web services. Interwoven with the projects, there are examples of best practices and design patterns, and techniques you can carry over to your own projects. The projects also display the key features of Go in action, such as concurrency, and will start to explore the rich ecosystem of open source libraries and frameworks that are being continually developed for the language. You’ll also 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.

By the end of the Learning Path, you will be able to build your own projects in no time!

For this course, we have combined the best works of these extremely esteemed authors:

Ben Tranter has more than six years of experience as a developer. He has worked with a variety of companies to build applications in Go, in the areas of data mining, web back ends, user authentication services, and developer tools, and is a contributor to a variety of open source Go projects.

Larry Price is a software engineer with a passion for exploring the world of programming. He has a wide experience in building software with programming languages such as 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. He has used go to build web applications or create utility scripts, and often documents the experiences on his blog.


Who is the target audience?
  • This course is aimed at programmers who are currently hacking around in Go, know the fundamentals, but need a more structured way of understanding how to put this knowledge into practice. Experienced programmers with a background in another language—this can be anything from Ruby to C or JavaScript—can also take up this course.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
54 Lectures
04:31:06
+
Go Projects
32 Lectures 02:21:55

In this video, we will review the road map of our course and take a look at what we are going to build.

Preview 01:08

Get started with Go.

Installing Go
05:31

Write a very simple Go application, and not something too complex, to get introduced to the language and tooling. A static file server is an 11-line Go program that actually does something.

Preview 03:58

To accept command-line arguments in our program.

Accepting Command-line Arguments
03:47

Compile the code to a binary.

Compiling to a Statically Linked Binary
02:59

Render HTML templates.

Dynamic Content with Go
05:35

Get started to handle HTTP requests, and extract data from them. Also you will be able to route HTTP requests.

Handling GET and POST Requests
06:23

Learn how to get connected to a database, read to it, and write from it.

Connecting to a Database
04:53

Get started with writing tests in Go.

Writing Tests in Go
03:14

See the techniques that apply to write HTTP middleware.

Variadic Functions, Function Chaining, and Callbacks
04:30

To show how to capture analytics.

Logging and Analytics
03:59

To learn how to handle errors in Go.

Error Handling
04:44

The user must be able to pass data between middleware.

Advanced Middleware
04:25

You will need to know how to handle username/password combinations, specifically how to hash and salt passwords.

Usernames and Passwords
05:15

Get to know how to send a password reset e-mail.

The Password Reset E-mail
05:00

To create a session and a corresponding session.

Sessions
04:52

Implement passwordless, sessionless authentication.

Sessionless, Passwordless Authentication
06:53

The three things that you can do to make your web applications more secure.

Web Application Security
04:06

Learn how to handle JSON in Go.

Preview 05:13

To handle JSON streams.

Streams and JSON
03:33

To stream to a buffer before writing to a client.

Buffers
02:45

Handle images over HTTP.

Image Handling
04:37

Introducing Go's concurrency model before writing a chat server.

Concurrency
04:03

Introduction to advanced concurrency concepts by writing a simple chat server.

A Simple Chat Server
05:17

To write a web-socket-based chat server.

An Advanced Chat Server
05:45

Learn to use web sockets to implement real-time notifications.

Real-time Notifications
02:55

Deploy any Go application in production.

Deployment Options
05:10

Set up automated deployments for the Go app.

Automated Deployments
05:44

The aim of this video is to set up continuous integration for the Go projects.

Continuous Integration
04:11

To debug the existing programs.

Debugging
04:26

Understand how Go's reflection works.

Reflection
02:37

Understand the pprof tool and the information it provides.

Performance
04:27
+
Go for Web Development
22 Lectures 02:09:11

This video will offer an overview of the course.

Preview 03:38

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.

Our First Route
05:42

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.

Using Templates
04:48

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.

Database Connections
05:03

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.

Talking to the Server
06:27

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.

Surfing the Net
04:55

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.

Using the Database
06:32

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.

Introduction to Web Middleware
05:26

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.

Replacing the Default Template Engine
04:47

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.

Showing Off Our Books
06:45

A user may want to remove old books from a collection. We'll add a feature to our application and delete unwanted selections.

Throwing Away Old Literature
04:31

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.

Using gorilla/mux
04:28

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.

Using go-gorp
07:02

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.

Sorting Our Books
08:35

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.

Fiction and Nonfiction
07:47

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.

Authenticated Users Only
05:52

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.

Creating Users Securely
05:12

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.

I Know Who You Are
04:42

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.

Update the Database
04:27

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.

The Road Not Taken
07:55

As codebase grows, readability degrades and bugs are introduced. We'll learn how to use standard Go tools to improve our codebase.

Managing Code Quality
04:49

The ultimate goal of most web applications is to be accessible from any computer through the Internet. We'll push our application to a free cloud platform, Heroku, to expose it to the World Wide Web.

Hello, World Wide Web
09:48
About the Instructor
Packt Publishing
3.9 Average rating
7,282 Reviews
52,070 Students
616 Courses
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.