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

4.6 (5107)
MOOC
Payment
Learning paid
Language
English
Duration
19 hours course
Course by Udemy
What will you learn?
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 15 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, AJAX, templates, file servers, cookies, state, UUIDs, HTTP methods, HTTP response codes, sessions, Amazon Web Services, MySQL, MongoDB, load balancers, HTTPS & TLS, Docker, Containers, Virtual Machines, Google Cloud, and App Engine
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
About the course

The Go programming language was created by Google to do what Google does: performant web applications at scale.

Open-sourced in 2009 and reaching version one in 2012, the Go programming language is the best choice for web development programming today.

Ruby on Rails, Python, Django, Node.js, PHP, and ASP all fall short.

Go is the most powerful, performant, and scalable programming language today for creating web applications, web API’s, microservices, and other distributed services.

In this course, you will gain a solid foundation in web development. You will learn all of the following and more:

Architecture

  • networking architecture
  • the client / server architecture
  • the request / response pattern
  • the RFC standards defined by the IETF
  • the format of requests from clients and responses from servers

Templates

  • the role that templates play in server-side programming
  • how to work with templates from Go’s standard library
  • modifying data structures to work well with templates

Servers

  • the relationship between TCP and HTTP
  • how to build a TCP server which responds to HTTP requests
  • how to create a TCP server which acts as an in-memory database
  • how to create a restful TCP server that handles various routes and methods
  • the difference between a web server, a servemux, a multiplexer, and a mux
  • how to use a third-party server such as julien schmidt’s router
  • the importance of HTTP methods and status codes

The net/http package

  • streamlining your web development with the net/http package
  • the nuances of the net/http package
    • the handler interface
    • http.ListenAndServe
    • creating your own servemux
    • using the default servemux
    • http.Handle & http.Handler
    • http.Handlefunc, func(ResponseWriter, *Request), & http.HandlerFunc
    • http.ServeContent, http.ServeFile, & http.FileServer
    • http.StripPrefix
    • http.NotFoundHandler

State & Sessions

  • how to create state: UUID’s, cookies, values in URL’s, security
  • how to create sessions: login, permissions, logout
  • how to expire a session

Deployment

  • how to purchase a domain
  • how to deploy an application to Google Cloud

Amazon Web Services

  • how to use Amazon Web Services (AWS)
  • how to create a virtual linux machine on AWS EC2 (Elastic Cloud Compute)
  • how to use secure shell (SSH) to manage a virtual machine
  • how to use secure copy (SCP) to transfer files to a virtual machine
  • what load balancers are and how to use them on AWS

MySQL

  • how to use MySQL on AWS
  • how to connect a MySQL workbench to AWS

MongoDB

  • understanding CRUD
  • how to use MongoDB & Go

MVC (Model View Controller) Design Pattern

  • understanding the MVC design pattern
  • using the MVC design pattern

Docker

  • virtual machines vs containers
  • understanding the benefits of using Docker
  • Docker images, Docker containers, and Docker registries
  • implementing Docker and Go
  • deploying Docker and Go

Google Cloud

  • Google Cloud Storage
  • Google Cloud no-sql datastore
  • Google Cloud memcache
  • Google Cloud PAAS App Engine

Web Dev Toolkit

  • AJAX
  • JSON
  • json.Marhsal & json.Unmarshal
  • json.Encode & json.Decode
  • Hash message authentication code (HMAC)
  • Base64 encoding
  • Web storage
  • Context
  • TLS & HTTPS
  • JSON with Go using Tags

Building Applications

  • a photo blog
  • a twitter clone

By the end of this course, you will have mastered the fundamentals of web development.

My name is Todd McLeod. I am tenured faculty in Computer Information Technology at Fresno City College and adjunct faculty in Computer Science at California State University Fresno. I have taught enough students over 17 years to know that by the end of this course, you will be an outstanding web developer.

You will have the best skills available today.

You will know the best way to do web development today.

You will have the hottest, most demanded, and highest paid skills in the marketplace.

Join me in this outstanding course. Come learn best practices for web development. Sign up for this course now and open doors to a great future.

Program
Getting started
Welcome to Web Development with Google's Go ( golang ) Programming Language. This section will provide you with an introduction to the course.
Why choose Go ( golang ) for web development?
  • server-side?
    • #1 Go
    • #3 Node.js
    • #3 Python
    • #4 Ruby
    • #5 PHP
  • 2006 first intel dual-core processor
  • 2007 Google begins development of Go
    • Rob Pike, Ken Thompson, Robert Griesemer
    • FAQ - Why are you creating a new language?
    • language features
      • take advantage of multiple cores
      • easy concurrency based upon Tony Hoare’s CSP
      • compiled, static type, GC
    • goals
      • efficient compilation
      • efficient execution
      • ease of programming
        • clean syntax
        • distributed teams
  • Why go for web dev?
    • Go was built to do what google does
    • Google is rewriting Google with Go
  • 2009 open-sourced
  • 2012 version 1
Course prerequisites
  • CLI
  • github
  • HTML / CSS
    • How to Create A Website: An HTML Tutorial and CSS Tutorial
  • Go programming
    • Learn How To Code: Google's Go (golang) Programming Language
Course resources
  • Here are the resources which I think are the best:
  • These notes:
    • https://goo.gl/K5GccY
  • Go programming resources
  • The Code Used In This Course
    • https://github.com/GoesToEleven/golang-web-dev
  • Go Language Fundamentals
    • course
      • https://www.udemy.com/learn-how-to-code/
    • repo
      • https://github.com/GoesToEleven/GolangTraining
  • HTML & CSS
    • course
      • How to Create A Website: An HTML Tutorial and CSS Tutorial
    • repo
      • https://github.com/GoesToEleven/html-css-bootcamp
THIS IS ALSO USEFUL: http://bit.ly/2Nih2a9
Language review
  • variables
    • short variable declaration operator
    • using the var keyword to declare a variable
    • scope
  • data structures
    • slice
    • map
    • struct
      • composite literal
  • functions
    • func (receiver) identifier(parameters) (returns) { <code> }
    • methods
  • composition
    • embedded types
    • interfaces
    • polymorphism
    • nice article
  • hands-on exercises #1
  • hands-on exercises #2
use https://play.golang.org/ , screenshot your solution, tweet @Todd_McLeod #golangsnippet
How to succeed
  • Bill Gates & Warren Buffet
    • the one word they both chose as the most important contributor to their success: focus
  • Priorities, commitment, focus
    • What is important to you in your life? Prioritize.
    • Can you give time everyday to that which is important? Commitment.
    • Give time to the important everyday. Focus.
  • Drop by drop, the bucket gets filled
Templates
In programming, templates allow us to create one document which can be customized to many users. A common example is a form letter. We will use templates to create personalized web pages.
Understanding templates
Templates allow us to customize information for a use. This is how we get personalized webpages. Templates are the first thing you must learn to do web programming.
Templating with concatenation
Go encourages the developer to think like a programmer. How can you solve this problem with programming? Could we create a webpage, and merge data with it, by just working with strings?
Understanding package text/template: parsing & executing templates
We are going to store our templates in their own files. It is customary practice to give these files a “.gohtml” extension. We will go through two steps to use our templates: (1) Parse (2) Execute. In this course, we will use ParseGlob and ExecuteTemplate. Package text/template is explained.
  • steps
    • PARSE the template
    • EXECUTE the template
  • performance
    • always parse your templates upon application initialization
    • do not parse your templates every time a user asks for a template
  • Template
    • container that holds the parsed templates
  • Quick Note
    • Atom will require tweaking of keymap.cson to allow some plugins like Emmet to work on tab expansion
      • 'atom-text-editor[data-grammar="text html gohtml"]:not([mini])':
'tab': 'emmet:expand-abbreviation-with-tab
  • Will allow Emmet plugin to tab expand on files with the gohtml extension
Passing data into templates
When we execute our template, we can pass data into our template.
Variables in templates
We can assign values to variables in templates.ASSIGN{‌{$wisdom := .}}USE{‌{$wisdom}}
Requirements
  • You must understand how to program with the Go programming language before taking this course. If you do not know how to program with Go, please take my course: "Learn How To Code: Google's Go (golang) Programming Language"
Lecturers
Todd McLeod
Todd McLeod
Tenured College Professor
Platform
/storage/img/providers/udemy.svg
Udemy courses are suited to professional development. The platform is organized in such a way that it is experts themselves that decide the topic and when the course will start. All supporting documents are made available to you for lifetime access. On this platform, you can find a course on about any subject, and that is no exaggeration – from a tutorial on how to ride a motorcycle, to managing the financial markets. The language and the course format are established by the teacher. This is why it is important to read the information about the course carefully before parting with any money.
Rating
4.6
(3419)
(1331)
(307)
(81)
(49)
Comments (5107)
Like any other website, konevy uses «cookies». These cookies are used to store information including visitor's preferences, and the pages on the website that the visitor accessed or visited. The information is used to optimize the users' experience by customizing our web page content based on visitors' browser type and/or other information. For more general information on cookies, please read the «What Are Cookies» article on Cookie Consent website.