Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
LEARNING PATH: Go: Advancing into Web Development with Go
Rating: 3.9 out of 5(26 ratings)
312 students

LEARNING PATH: Go: Advancing into Web Development with Go

Harness the power of Go to level up your skillsets in web development and build web apps like a pro
Last updated 11/2017
English

What you'll learn

  • Perform DOM operations with GopherJS
  • Upload client-side image and client-side forms
  • Create a 3D scene in the web browser
  • Implement a single page application
  • Build a feature-rich social media website
  • Manage requests and responses
  • Create custom middleware
  • Build web forms with validation and security in mind
  • Create functionality to upload and process images and videos
  • Implement a custom datastore for a relational database, document database, and an in-memory database
  • Explore the fundamental Concepts of Go
  • Write a unit test in Golang
  • Create a simple web server instance for the GopherFace website

Course content

4 sections115 lectures12h 51m total length
  • The Course Overview6:10

    This video provides an overview of the entire course. 

  • Introduction to GopherJS6:20

    In this video, we will look into GopherJS.

    • Get introduced to GopherJS
    • Install and use GopherJS
    • Demonstrate some basic DOM operations 
  • Basic DOM Operations12:48

    In this video, we will perform basic DOM Operations using GopherJS.

    • Check out the classic alert dialog
    • Explore how to fetch an element by ID
    • Learn how to dynamically change the css style property of an element 
  • The jsbuiltin Binding4:47

    In this video, we will delve into the jsbuiltin Binding.

    • Get introduced to the jsbuiltin Binding
    • Know what the type of operator is used for
    • Demonstrate a type of operation using the jsbuiltin binding 
  • Making XHR Calls8:02

    In this video, we will learn how to make an XHR Call in GopherJS.

    • Explore what the XHR object is
    • Learn how to make an XHR call to the web server
    • Read the result of the XHR call
  • Rendering Client-Side Templates5:48

    In this video, we will understand how to render templates on the client-side.

    • Explore benefits of rendering templates on the client-side
    • Check out an example of an inline template
    • Learn how to render the inline template 
  • Sending Gob Encoded Data over XHR6:11

    In this video, we will learn how to encode data in the Gob format and send it over an XHR call.

    • Get introduced the encoding/gob package
    • Learn the concept of a Go-specific Environment
    • Encode Gob data and transmit it over an XHR call 
  • Websocket Client12:47

    In this video, we will learn how to use Websockets in Go.

    • Delve into an example of the echo client server from the Gorilla project
    • Learn how to port the websocket client program to the web browser
    • Demonstrate how the Go calls can be converted to their respective GopherJS calls 
  • Rendering a 3D Gopher8:47

    What do we do when we don't have GopherJS bindings for a particular JavaScript library? The answer is that GopherJS is interoperable with Java and we can use functionality within the js.Global object to call JavaScript functionality.

    • Learn how to tap into the ThreeJS library functionality with GopherJS
    • Explore how to instantiate objects from the library
    • Learn how to access functionality form the library to create a 3D scene 
  • Dynamically Resizing the 3D Gopher2:34

    Now that we've created the 3D scene in the web browser, how do we go about re-rendering the scene when the window dimensions change? We add an event handler.

    • Get to know the problem
    • Learn how adds an event handler on the resize event
    • Explore how the 3D scene gets re-rendered once the window is resized
  • Panning the Camera Around the 3D Gopher4:27

    A stationary 3D scene is dull. Let's make the scene livelier by having the camera pan around the 3D Gopher. Let's also add color to the 3D Gopher.

    • Add color material to the 3DGopher
    • Learn how to call the JavaScript function to pan the camera using Go and GopherJS
    • Demonstrate the 3D scene with the camera panning around the 3D Gopher 
  • Introduction to Local Storage3:43

    Did you know that the web browser comes with a built-in key/value database? It's called LocalStorage and we're going to show you how it works.

    • Get introduced to Local Storage and cover its benefits
    • Learn how to set a key value pair in local storage
    • Learn how to get all key-value pairs that exist in local storage and how to clear all entries 
  • Reading and Writing to Local Storage9:02

    Now that we've been introduced to Local Storage, how do we make use of it in Go using GopherJS? We'll show you how by building a working demo from the ground up.

    • See a preview of the user interface we will build to show key-value pairs stored in Local Storage
    • Learn how to display the contents in Local Storage on the web page
    • Demonstrate all the common operations associated with local storage 
  • Instantly Kickstarting Go Projects9:37

    Issuing "go build" or "gopherjs build" commands can get tedious when we make a lot of changes to our code, and we want to see those changes reflected immediately upon refreshing the web browser. We can use Kick to provide instant kickstarts.

    • Get introduced to the Kick tool from the Isomorphic Go Project
    • Demonstrate how to use Kick with the GopherFace web application project
    • Demonstrate how Kick provides an instant kickstart when a Go or template source file is changed 
  • Introduction to Single Page Architecture4:35

    Currently, the GopherFace web application has to do a full page refresh as we move through the different sections. How can we remove the need for full page refreshes? The answer is to use Single Page Architecture.

    • Get introduced to Single Page Applications
    • Learn how Single Page Applications work and provide details on their benefits
    • Present a strategy to consider GopherFace as a Single Page Application 
  • Implementing Client-Side Routing8:14

    Did you know that routes can be registered on the client side as well? This allows us to prevent a full page refresh when going from section to section.

    • Get introduced to the isokit package from the Isomorphic Go project
    • Learn how to register client-side routes using the isokit Router
    • Learn how handler functions can be defined for client-side routes 
  • Introduction to Template Sets6:54

    Explore document generation capabilities with Dynamics 365 for all those redundant documents that you must prepare for completing a Sale.

    • Understand the situations where Word Templates would be useful
    • Explore what are Word Templates by creating one
    • Explore Microsoft Office feature behind Word Templates I.e. Mail Merge 
  • Implementing Client-Side Templates11:47

    Now that we know how to use TemplateSets, how do we use them with GopherFace to pursue a single page architecture?

    • Demonstrate how to render the page on the server-side
    • Demonstrate how to render the page on the client-side
    • Demonstrate when the template is being rendered on the server-side and when it's rendered on the client-side 
  • The Profile28:54

    How do we implement the functionality to allow the user edit their profile? We'll need to know how to implement a form to edit the profile.

    • Present the Rest APi Endpoints that are needed to implement the profile page
    • Learn how to implement the form for my profile section
    • Demonstrate the functionality to save the user's profile 
  • Profile Image Upload7:42

    How can we allow the user to upload their profile image and now have to perform a full page refresh?

    • Review the save user profile Rest API Endpoint
    • Learn how the profile image is uploaded over XHR
    • Demonstrate how we can change the profile image multiple times without causing a single page refresh 
  • Finding New Friends14:28

    How do we go about implementing the search feature for GopherFace?

    • Learn how we can retrieve the list of gopherface users from the database
    • Cover the find gophers Rest API endpoint
    • Demonstrate that the find new friends section is working properly 
  • Friends List14:54

    Now that we are able to search for friends, how do we follow them, unfollow them, and display them in a list?

    • Learn how to implement the follow functionality
    • Learn how to implement the unfollow functionality
    • Explore how to display the list of friends on a given user's profile page 
  • The Social Media Feed18:56

    How can we display a set of posts on a given user's feed? Let's use the social media post object we made in the first video course.

    • Learn how to fetch posts to be displayed on the user's feed
    • Learn how to save a social media post
    • Demonstrate the save post functionality 
  • Extending GopherFace4:17

    Now that the GopherFace web application has reached its first milestone, what are the ways that we can extend its capabilities?

    • Present improvements that can be made to the feed section
    • Present improvements that can be done to the friends section
    • Present improvements that can be done to the my profile section 
  • Front-End Web Development using Go

Requirements

  • This Learning Path provides a pragmatic approach to learning frontend web development using Go. Each video provides in-depth knowledge on a topic with a number of hands-on examples. As you progress through the Learning Path, we continue to elevate your skills to the next level. Filled with hands-on examples, this Learning Path will help you learn how to perform real-time web development using Go. You will learn to build various applications and enhance them.

Description

Go is one of the most powerful, efficient, and highly-performant programming languages. Go has seen an increased rate of adoption mainly because it is lightweight, easy to use, and displays great robustness when performing in a variety of domains. Go is a modern language, created by a team of researchers from Google that is an ideal choice for all the levels of web development. Go is not only a powerful tool that can be utilized on the server-side but one that can be utilized on the client-side as well. If you're interested to imbibe the skills of Go programming language and become a full-stack web developer, then you should opt for this Learning Path.

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

The highlights of this Learning Path are:

  • Build a feature-rich social media website
  • Build functionality for user authentication and session management
  • Create a simple web server instance for the GopherFace website
  • Build your first real-time web application: a chat server

Let’s take a quick look at your learning journey. In this Learning Path, you will be provided deep insight into frontend web development using Go. It starts off by covering the fundamental mechanics of frontend web development such as performing common DOM operations, accessing native JavaScript functionality, making XHR calls, rendering templates on the client-side, transmitting Gob encoded data, and communicating over a WebSocket connection. You will then demonstrate how to create a single page application by implementing client-side routing and directly rendering templates in the web browser itself. Utilizing the valuable knowledge presented in this Learning Path, you will be able to build GopherFace, a fully functioning social media website with incredible features.

Further, you will learn backend web development using Go. You will go through essential concepts which include web templates, the model view controller pattern, managing requests and responses, and building web forms. You will also learn how to create real-world solutions such as uploading image/video files, implementing a datastore for a variety of databases (relational, document, and in-memory), creating secure cookies, implementing authentication middleware, and implementing an asynchronous task queue to perform long-running tasks in the background.

In addition to getting you up to speed with backend web development practices, this Learning Path will also provide you with helpful advice and techniques that will guide you on your way to becoming a successful Go programmer.

The projects also demonstrate 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.

By the end of this Learning Path, you will learn the tricks to build robust, secure, and fully-featured applications for the web. You will have everything you need to go out into the wild with Go to build projects of your own and become a full-stack Go web developer.

Meet Your Experts:

We have combined the best works of the following esteemed authors to ensure that your learning journey is smooth:

  • Kamesh Balasubramanian is the founder and CEO of Wirecog, LLC. He is the inventor of Wireframe Cognition (Wirecog), an award-winning, patented technology that allows machines to understand wireframe designs and produce source code from them. Kamesh has over 20 years' software development experience and has implemented numerous solutions in the advertising, entertainment, media, publishing, hospitality, videogame, legal, and government sectors. He is an award-winning, professional member of the Association for Computing Machinery and an InfyMaker Award winner. He was recognized as a Maker of Change at the 2016 World Maker Faire in New York and, upon request, has demonstrated Wirecog at MIT.
  • Ben Tranter is a developer with nearly six years’ experience. 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.
  • Rostislav Dzinko is a software architect who has been working in the software development industry for more than six years. He was one of the first developers who started working with the Go language far earlier than the first official public release of Go 1.0 took place. Rostislav uses the Go language daily and has successfully used it in production for more than two years, building a broad range of software from high-load web applications to command-line utilities. He has a Master’s degree in Systems Engineering and has completed a PhD thesis.

Who this course is for:

  • This course is targeted at Go developers interested in learning how to use Go to build powerful web applications, and who want to learn full-stack web development using Go. Anyone who want to harness the power of Go, both on the backend and frontend, to create sophisticated, efficient, and production-ready web applications will also benefit from this Learning Path.