Skip to main content

Web Development with Google’s Go (golang) Programming Language

18h 59m 31s
English
Paid

Embrace the Future of Web Development with Google's Go (Golang) programming language, engineered to handle performant web applications at an unrivaled scale. Launched by Google and open-sourced in 2009, Go has rapidly become the top choice for developing web applications, APIs, microservices, and beyond. Outpacing competitors like Ruby on Rails, Python, and PHP, Go is the powerful, performant, and scalable solution for modern web development.

Why Choose This Course?

Gain a solid foundation in web development with this comprehensive course. Here's a glimpse of what you'll master:

Architecture

  • Networking architecture
  • Client/server architecture
  • Request/response pattern
  • Understanding RFC standards by the IETF
  • Format of client requests and server responses

Templates

  • The role of templates in server-side programming
  • Working with templates from Go’s standard library
  • Modifying data structures for templates compatibility

Servers

  • The relationship between TCP and HTTP
  • Building a TCP server for HTTP requests
  • Creating an in-memory database using TCP servers
  • Designing RESTful TCP servers for routes and methods
  • Understanding web server variations: servemux, multiplexer, mux
  • Utilizing third-party servers like Julien Schmidt's router
  • Importance of HTTP methods and status codes

The net/http Package

  • Streamline development with the net/http package
  • Explore nuances of the net/http package
  • Understanding the handler interface
  • Using http.ListenAndServe
  • Creating and using a custom servemux
  • Understanding http.Handle, http.Handler, and related functions
  • Using http.ServeContent, http.ServeFile, and http.FileServer
  • Working with http.StripPrefix and http.NotFoundHandler

State & Sessions

  • Creating secure state with UUIDs, cookies, and URLs
  • Implementing session management: login, permissions, logout
  • Managing session expiration

Deployment

  • Purchasing a domain for your web applications
  • Deploying applications to Google Cloud

Amazon Web Services

  • Utilizing AWS for cloud services
  • Setting up a virtual Linux machine on AWS EC2
  • Managing virtual machines with SSH
  • Transferring files using SCP
  • Understanding and implementing load balancers on AWS

Database Management

MySQL

  • Integrating MySQL with AWS
  • Connecting MySQL Workbench to AWS

MongoDB

  • Understanding CRUD operations
  • Using MongoDB with Go

MVC Design Pattern

  • Mastering the MVC design pattern
  • Applying MVC in your projects

Docker

  • Comparing virtual machines and containers
  • Leveraging Docker's benefits
  • Implementing Docker containers and registries
  • Deploying Docker with Go

Google Cloud Tools

  • Using Google Cloud Storage and no-SQL datastore
  • Implementing Google Cloud Memcache and App Engine

Web Development Toolkit

  • Handling AJAX and JSON in web applications
  • JSON in Go with json.Marshal and json.Unmarshal
  • Securing web applications with HMAC and Base64 encoding
  • Utilizing web storage and managing context
  • Implementing TLS & HTTPS

Build and Deploy Applications

  • Create a photo blog
  • Develop a Twitter clone

By the end of this course, you will have mastered the fundamentals of web development, equipped with the skills to become an outstanding web developer.

Meet Your Instructor

I'm Todd McLeod, tenured faculty in Computer Information Technology at Fresno City College and adjunct faculty in Computer Science at California State University Fresno. With over 20 years of experience, I am confident this course will transform you into a top-rated web developer.

Who Should Enroll?

  • This course serves as a university-level introduction to web programming.
  • Ideal for those with a foundational understanding of the Go programming language.
  • Perfect for programmers seeking a thorough introduction to web development with Go.
  • An excellent choice for developers looking to fill knowledge gaps.

Ready to advance your career? Join this course and open doors to a bright future. Learn the best practices in web development and gain the hottest skills in today's marketplace.

About the Author: greatercommons.com

greatercommons.com thumbnail
At the core of Greater Commons are great classes. Our classes teach you real world skills that you need to survive & thrive. Live a better life.

Watch Online 171 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 171 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Why Go For Web Dev
All Course Lessons (171)
#Lesson TitleDurationAccess
1
Why Go For Web Dev Demo
07:40
2
Prerequisites
01:36
3
Resources
02:33
4
Language review
18:31
5
How to succeed
08:13
6
Understanding templates
03:28
7
Templating with concatenation
06:26
8
Understanding package text/template: parsing & executing templates
16:53
9
Passing data into templates
03:58
10
Variables in templates
02:29
11
Passing composite data structures into templates
14:58
12
Functions in templates
15:12
13
Pipelines in templates
09:55
14
Predefined global functions in templates
06:11
15
Nesting templates - modularizing your code
07:52
16
Passing data into templates & composition
05:39
17
Using methods in templates
03:38
18
Hands-on exercises
01:59
19
Using package html/template, character escaping, & cross-site scripting
03:37
20
Understanding servers
10:09
21
TCP server - write to connection
06:56
22
TCP server - read from connection using bufio.Scanner
10:34
23
TCP server - read from & write to connection
04:26
24
TCP server - code a client
04:48
25
TCP server - rot13 & in-memory database
09:57
26
TCP server - HTTP request / response foundation hands-on exercise
06:57
27
TCP server - HTTP method & URI retrieval hands-on exercise
05:04
28
TCP server - HTTP multiplexer
05:04
29
net/http package - an overview
09:22
30
Understanding & using ListenAndServe
05:23
31
Foundation of net/http: Handler, ListenAndServe, Request, ResponseWriter
08:27
32
Retrieving form values - exploring *http.Request
15:08
33
Retrieving other request values - exploring *http.Request
08:11
34
Exploring http.ResponseWriter - writing headers to the response
07:36
35
Review
07:14
36
Understanding ServeMux
16:27
37
Disambiguation: func(ResponseWriter, *Request) vs. HandlerFunc
08:03
38
Third-party servemux - Julien Schmidt’s router
08:47
39
Hands-on exercises
01:15
40
Hands-on exercises - solutions #1
04:21
41
Hands-on exercises - solutions #2
04:21
42
Serving a file with io.Copy
19:57
43
Serving a file with http.ServeContent & http.ServeFile
05:03
44
Serving a file with http.FileServer
03:54
45
Serving a file with http.FileServer & http.StripPrefix
03:50
46
Creating a static file server with http.FileServer
06:01
47
log.Fatal & http.Error
03:11
48
Hands-on exercises
04:01
49
Hands-on exercises - solutions
01:00
50
The http.NotFoundHandler
05:52
51
Buying a domain - Google domains
05:48
52
Deploying to Google Cloud
02:17
53
State overview
07:53
54
Passing values through the URL
01:20
55
Passing values from forms
06:23
56
Uploading a file, reading the file, creating a file on the server
05:30
57
Enctype
11:55
58
Redirects - overview
01:01
59
Redirects - diagrams & documentation
06:33
60
Redirects - in practice
07:56
61
Cookies - overview
07:44
62
Cookies - writing and reading
03:32
63
Writing multiple cookies & hands-on exercise
05:21
64
Hands-on exercise solution: creating a counter with cookies
02:12
65
Deleting a cookie
03:20
66
Sessions
06:38
67
Universally unique identifier - UUID
07:27
68
Your first session
08:32
69
Sign-up
12:00
70
Encrypt password with bcrypt
06:01
71
Login
05:21
72
Logout
07:08
73
Permissions
04:05
74
Expire session
03:21
75
Overview
08:26
76
Creating a virtual server instance on AWS EC2
07:21
77
Hello world on AWS
10:51
78
Persisting an application
12:02
79
Hands-on Exercise
04:43
80
Hands-on Solution
02:14
81
Terminating AWS services
16:00
82
Overview
01:32
83
Installing MySQL - Locally
06:25
84
Installing MySQL - AWS
02:45
85
Connect Workbench to MySQL on AWS
06:29
86
Go & SQL - Setup
04:40
87
Go & SQL - In Practice
04:38
88
Overview of load balancers
07:44
89
Create EC2 security groups
03:39
90
Create an ELB load balancer
06:32
91
Implementing the load balancer
08:00
92
Connecting to your MySQL server using MySQL workbench
13:49
93
Hands-on exercise
05:12
94
Hands-on solution
01:06
95
Autoscaling & CloudFront
18:52
96
Starting files
12:43
97
User data
04:33
98
Storing Multiple Values
05:45
99
Uploading pictures
03:37
100
Displaying pictures
08:52
101
Hash message authentication code (HMAC)
01:26
102
Base64 encoding
04:29
103
Web storage
03:07
104
Context
05:31
105
TLS & HTTPS
13:19
106
JSON - JavaScript Object Notation
09:46
107
Go & JSON - Marshal & Encode
04:31
108
Unmarshal JSON with Go
09:48
109
Unmarshal JSON with Go using Tags
10:28
110
Hands-on exercise solution
10:01
111
AJAX introduction
02:09
112
AJAX server side
11:50
113
Organizing code into packages
12:13
114
Create user & delete user
10:13
115
MVC design pattern - model view controller
04:29
116
Install mongodb
06:37
117
Connect to mongodb
04:58
118
CRUD with Go & mongodb
05:29
119
Hands on exercise & solution
08:52
120
Hands on exercise & solution
05:24
121
Hands on exercise & solution
06:20
122
Introduction to Docker
02:39
123
Virtual machines & containers
02:40
124
Installing docker
09:54
125
Docker whalesay example
05:19
126
Using a Dockerfile to build an image
08:05
127
Launching a container running curl
12:48
128
Running a Go web app in a Docker container
04:50
129
Pushing & pulling to docker hub
05:23
130
Go, Docker & Amazon Web Services (AWS)
08:56
131
Installing Postgres
09:13
132
Create database
07:33
133
Create table
05:35
134
Insert records
03:23
135
Auto increment primary key
00:49
136
Hands-on exercise
02:32
137
Hands-on exercise - solution
05:43
138
Relational databases
07:07
139
Query - cross join
06:29
140
Query - inner join
09:57
141
Query - three table inner join
05:03
142
Query - outer joins
01:08
143
Clauses
00:43
144
Update a record
04:46
145
Delete a record
07:38
146
Users - create, grant, alter, remove
08:59
147
Go & Postgres
04:57
148
Select query
04:56
149
Web app
07:29
150
Query Row
04:06
151
Insert record
01:30
152
Update record
11:24
153
Delete record
11:33
154
Code organization
10:11
155
NoSQL
10:53
156
MongoDB
06:58
157
Installing mongo
03:53
158
Database
06:58
159
Collection
03:53
160
Document
03:50
161
Find (aka, query)
06:15
162
Update
06:59
163
Remove
02:00
164
Projection
02:45
165
Limit
01:05
166
Sort
02:52
167
Index
01:24
168
Aggregation
04:33
169
Users
09:20
170
JSON
04:41
171
Create Read Update Delete (CRUD)
16:59
Unlock unlimited learning

Get instant access to all 170 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription