Course Highlights
  • Construct server-side applications using today's best practices
  • Acquire an outstanding foundation in the fundamentals of web programming
  • Learn from a University Professor in Computer Science with over 20 years of experience teaching individuals of all ability levels
  • Achieve mastery in the understanding and application of web development
  • Understand servers, routing, restful applications, JSON, templates, and file servers
  • Understand cookies, state, UUIDs, HTTP methods, HTTP response codes, and sessions
  • Create web applications using only the Go programming language's standard library
  • Create web applications without using third-party frameworks
  • Build performant distributed applications that dynamically scale
  • Apply cutting-edge web development practices
Curriculum

5 Topics
Why choose Go ( golang ) for web development?
Course outline
Language review
How to succeed
Miscellaneous resources

14 Topics
Understanding templates
Templating with concatenation
Understanding package text/template: parsing & executing templates
Passing data into templates
Variables in templates
Passing composite data structures into templates
Functions in templates
Pipelines in templates
Predefined global functions in templates
Nesting templates - modularizing your code
Passing data into templates & composition
Using methods in templates
Hands-on exercises
Using package html/template character escaping & cross-site scripting

9 Topics
Understanding servers
TCP server - write to connection
TCP server - read from connection using bufio.Scanner
TCP server - read from & write to connection
TCP server - code a client
TCP server - rot13 & in-memory database
TCP server - HTTP request / response foundation hands-on exercise
TCP server - HTTP method & URI retrieval hands-on exercise
TCP server - HTTP multiplexer

7 Topics
net/http package - an overview
Understanding & using ListenAndServe
Foundation of net/http: Handler ListenAndServe Request ResponseWriter
Retrieving form values - exploring *http.Request
Retrieving other request values - exploring *http.Request
Exploring http.ResponseWriter - writing headers to the response
Review

6 Topics
Understanding ServeMux
Disambiguation: func(ResponseWriter *Request) vs. HandlerFunc
Third-party servemux - julien schmidt’s router
Hands-on exercises
Hands-on exercises - solutions #1
Hands-on exercises - solutions #2

9 Topics
Serving a file with io.Copy
Serving a file with http.ServeContent & http.ServeFile
Serving a file with http.FileServer
Serving a file with http.FileServer & http.StripPrefix
Creating a static file server with http.FileServer
log.Fatal & http.Error
Hands-on exercises
Hands-on exercises - solutions
The http.NotFoundHandler

2 Topics
Buying a domain - google domains
Deploying to google cloud

13 Topics
State overview
Passing values through the URL
Passing values from forms
Uploading a file reading the file creating a file on the server
Enctype
Redirects - overview
Redirects - diagrams & documentation
Redirects - in practice
Cookies - overview
Cookies - writing and reading
Writing multiple cookies & hands-on exercise
Hands-on exercise solution: creating a counter with cookies
Deleting a cookie

9 Topics
Sessions
Universally unique identifier - UUID
Your first session
Sign-up
Encrypt password with bcrypt
Login
Logout
Permissions
Expire session

7 Topics
Overview
Creating a virtual server instance on AWS EC2
Hello World on AWS
Persisting an application
Hands-on Exercise
Hands-on Solution
Terminating AWS services

6 Topics
Overview
Installing MySQL - Locally
Installing MySQL - AWS
Connect Workbench to MySQL on AWS
Go & SQL - Setup
Go & SQL - In Practice

8 Topics
Overview of Load Balancers
Create EC2 Security Groups
Create an ELB Load Balancer
Implementing The Load Balancer
Connecting To Your MySQL Server Using MySQL Workbench
Hands-on Exercise
Hands-on Solution
Autoscaling & CloudFront

5 Topics
Starting Files
User Data
Storing Multiple Values
Uploading Pictures
Displaying Pictures

12 Topics
Keyed-Hash Message Authentication Code (HMAC)
Base64 Encoding
Web Storage
Context
TLS & HTTPS
JSON - JavaScript Object Notation
Go & JSON - Marshal & Encode
Unmarshal JSON with Go
Unmarshal JSON with Go using Tags
Hands-On Exercise Solution
AJAX Introduction
AJAX Server Side

9 Topics
Organizing Code Into Packages
Create User & Delete User
MVC Design Pattern - Model View Controller
Install Mongodb
Connect to Mongodb
CRUD with Go & Mongodb
Hands on Exercise & Solution
Hands on Exercise & Solution
Hands on Exercise & Solution

9 Topics
Introduction to Docker
Virtual Machines & Containers
Installing Docker
Docker Whalesay Example
Using a Dockerfile to Build An Image
Launching a Container Running Curl
Running a Go Web App In a Docker Container
Pushing & Pulling To Docker Hub
Go Docker & Amazon Web Services (AWS)

24 Topics
Installing Postgres
Create Database
Create Table
Insert Records
Auto Increment Primary Key
Hands-on Exercise
Hands-on Exercise - Solution
Relational Databases
Query - Cross Join
Query - Inner Join
Query - Three Table Inner Join
Query - Outer Joins
Clauses
Update a Record
Delete a Record
Users - Create Grant Alter Remove
Go & Postgres
Select Query
Web App
Query Row
Insert Record
Update Record
Delete Record
Code Organization

17 Topics
NoSQL
MongoDB
Installing Mongo
Database
Collection
Document
Find (aka query)
Update
Remove
Projection
Limit
Sort
Index
Aggregation
Users
JSON
Create Read Update Delete (CRUD)

2 Topics
Congratulations
Bonus lecture

  Write a Review

Web Development w/ Google’s Go (golang) Programming Language

Go to Paid Course