You are invited on an exciting journey where you will learn, with guidance, to use Google's GO programming language to develop modern web applications that are highly scalable in both depth and scope. You'll take advantage of the extraordinary capabilities GO holds for full-stack developers to build all sorts of server/client-based applications.
This course is intended as a rich resource for learning programming basics as well as concepts in general and developing modern and fast web application with Google's GO (golang) programming language in particular - a comprehensive learning experience.
You are invited on an exciting journey where you will learn, with guidance, to use Google's GO programming language to develop modern web applications that are highly scalable in both depth and scope. You'll take advantage of the extraordinary capabilities GO holds for full-stack developers to build all sorts of server/client-based applications.
This course is intended as a rich resource for learning programming basics as well as concepts in general and developing modern and fast web application with Google's GO (golang) programming language in particular - a comprehensive learning experience.
The easiest way to learn new programming techniques and modern concepts in software design is to apply them using real-life examples. In this course you will learn how to plan, implement, test, debug and finally install a modern web application - a homepage for renting out bungalows as vacation homes - on a web server.
You will learn about the advantages of the GO programming language and, on the way to a working application, how to integrate other elements such as SQL/PostgreSQL databases, JavaScript (client-side and server-side), AJAX techniques
Besides programming in GO, this course also deals with
HTML5 / CSS / DOM
JavaScript (Vanilla, without jQuery dependence)
SQL / PostgreSQL
Migrations / FIZZ
JSON
Routes, Handlers, Models
Tests, Error Handling
Linux (bash), Windows (Command Line), macOS (bash)
git / github
Installation on a webserver
and much more
While suitable for beginners with basic programming experience, it is designed to be a resource for fairly advanced developers. It's filled with examples, explanations, and clarifications of concepts needed to develop modern, fast and secure web applications, and comes with a code repository on Github and a detailed course outline as PDF, which serves as part of the course.
Included external packages an dependencies:
go-chi | Router
scs | Sessions
nosurf | CSRF-Token
govalidator | Validator (server-sided)
pgx/v5 | PostgreSQL Driver & Toolkit
go-simple-mail | Golang package for sending e-mail
Caddy 2 | a powerful, enterprise-ready, open source web server with automatic HTTPS written in GO
Also playing a part:
bootstrap | Bootstrap - You can learn at your own pace and return to content at any time for deeper insights or to learn additional concepts when you are ready.
This course also comes with a 100% money back guarantee.
I think this is one of the most comprehensive courses in English for developing modern, fast, and secure web applications from scratch.
And if for some reason the course doesn't work for you, you can get a full refund within the first 14 days*.
Enroll now.
You can get great value from this course and, more importantly, you'll have a great time learning one of the best programming languages ever - the GO programming language, the fastest growing programming language with the highest paid programmers in the US within the last years.
GO is an open-source programming language that makes it easy to develop simple, reliable, and efficient software.
GO was developed by computer science luminaries at one of the best, if not the best, software development companies ever - Google. The design and implementations are by Robert Griesemer, Rob Pike and Ken Thompson.
GO is a very good choice for learning a programming language because it was developed by some of the same people who created the C programming language, Unix, and UTF-8 - some of the most influential contributions to computer science. With GO Robert Griesemer, Rob Pike, and Ken Thompson created a modern programming language that can easily run on multiple processors in parallel, works smoothly in different environments, and makes it easy for programmers to write programs with a very streamlined and user-friendly syntax.
Why did Google develop a new programming language?
In Google's words, "GO was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either
efficient compilation,
efficient execution, or
ease of programming;
all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. GO is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing.
Finally, working with GO is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for."
Learn with me the advantages in web programming of one of the best programming languages ever developed. You will get knowledge, ideas, concepts, inspiration and code examples to design software and applications yourself according to your wishes.* Check Udemy's Terms and Conditions for details.
A brief overview why Go is one of the best programming languages to learn today and why it is makes a perfect choice for a web application.
The title says it all, we install Go and set up Visual Studio Code as an integrated development environment (IDE).
TL;DR;
Use the accompanying course overview as PDF. It is part of the the course.
Don’t skip lectures if you’re not sure you know the content.
Typing, not copying, is the path to success!
This Course comes with a PDF which sees itself as an accompanying part of the courses.
An brief overview over the course for you to get a first impression of what awaits you.
A brief list of useful sources to learn about Google's programming language GO.
The following list can be downloaded with included links in the form of a PDF in the resources for this lesson and is also included in the PDF that comes with the course.
About GO
GO Website
The GO Playground
GO’s Standard Library
GO Packages
GO Specifications
GoByExample
Integrated Development Environment (IDE)
Visual Studio Code
Included external packages an dependencies:
go-chi | Router
scs | Sessions
nosurf | CSRF-Token
govalidator | Validator (server-sided)
pgx/v5 | PostgreSQL Driver & Toolkit
go-simple-mail | Golang package for sending e-mail
Caddy 2 | a powerful, enterprise-ready, open source web server with automatic HTTPS written in GO
Also playing a part:
bootstrap | Bootstrap - HTML, CSS, and JavaScript framework (no jQuery)
RoyalUI-Free-Bootstrap-Admin-Template | Free Bootstrap 4 Admin Template
Simple-DataTables | DataTables but in TypeScript transpiled to Vanilla JS
postgres | PostgreSQL Server (mirror only)
pop | Soda/Migrations - standardization of database tasks
dbeaver | Dbeaver - free multi-platform database tool
vanillajs-datepicker | Vanilla JavaScript datepicker
notie | unobtrusive notifications - clean and simple JavaScript
SweetAlert2 | so many options for JavaScript popups
MailHog | Web and API based SMTP testing
Foundation for Emails 2 | Quickly create responsive HTML e-mails that work
Cobra | A Framework for Modern CLI Apps in GO
GoDotEnv | A GO port of Ruby's dotenv library
Even more notes before the first line of code!
The fundamental basics of creating programs in Go
More basics
Brief look at functions in Go
Learn about pointers in Go (and something about strings)
The secret nature of variables and how a struct brings order to chaos
Methods are attached to structs by using receivers of functions
Not bread and butter, but goji berries on steroids
How to make Decisions in Go
Iteration over values different data types with loops and the keyword range
Interfaces allow values to be considered as of more than one type: under conditions
Support by the package managment in Go
Channels are the lifeblood of Go communication, without them things would flow less smooth-lee.
A simple example just to make sure you know what we do this for.
Often criminally neglected, but no less important, is to test the code!
Brief explanation, where our application will live on the HTTP request/response cycle
Our very first web application comes to life!
We add another handler and equip it with the power of internal functions.
Learn how to handle errors gracefully.
We learn how to make use of HTML templates in Go
Cleaning up code, divide in several files, and adding bootstrap for styling.
We structure our code and make it ready to be be used with go modules!
Learn to use layouts to get everything out of your templates.
Learn a method to build a simple dynamically growing cache.
A static cache for templates offers advantages for our web application.
We use a global variable that we make available in a configuration file.
We use the global variable defined in the configuration file to create a static cache that can be turned on and off.
Notes on the use of a configuration file.
Learn how to share information with templates to process data.
Learn what routing means for middleware implementation
Learn how to import external packages and use them.
Switching a the external routing package.
Learn how to create middleware in Go with a quick practice and become a middleware master in no time!
Implementation of a middleware in the form of a package for the creation and management of session data.
A quick test to see if passing data embedded in sessions works.
Learn to roughly outline a project and estimate scope and workload.
A brief note of why to use github.com may be a good idea!
Including static files in web applications is about including static files like CSS, JavaScript, and images.
How old and modern HTML works.
We set up a serverless development environment to create HTML pages that we will later convert into Go templates. We start with the landing page.
With a simple landing page, bungalow pages are 1-2-3-Finished!
Creation of an HTML page with a form to get dates from the user.
An HTML form to make a reservation.
Learn to add a third-party (Vanilla) JS package for a new date picker.
Implementation of JS package „notie“.
Added JS package Sweetalert2 for using its modal windows.
We create our own JS module.
We implement a new function in our JS module and try to deploy it to a button.
Swapping your own CSS to a local file, sorting through CSS imports, and a quick look at how CSS works.
Learn how to turn plain HTML into GO templates.
We provide security against Cross-Site Request Forgery (CSRF) by generating a token for each potential POST request using the middleware NoSurf.
Explore how to use Golang to create a handler that returns data in JSON format.
In this lesson, you will learn how a request via JavaScript to our web application can trigger a response from our JSON data providing handler, interpret its response, and use the data in JavaScript!
In addition, you will learn to customize the custom() function in JavaScript to make it more generic.
Keep your code’s structure clean – do refactoring.
A small overview of what server-side validation is and why it makes more sense than client-side validation (alone) in many cases.
Evaluate form data and identify errors.
Create a packages model that holds data models and create new validators.
Create more fields and make several of them "required" fields at once.
Learn how to use an external package that provides additional validators.
Use sessions to display the collected reservation data on a summary page after the reservation.
Use notie to give the user feedback on their actions.
Introduction of an alternate template engine in GO.
About the purpose, but also the importance of tests in GO.
Learn how to test the package main of your web application when the test itself executes a function main().
Learn how to test GET request handlers.
Learn how to test POST-request handlers.
To test a package under always the same environment, it is necessary to create such an environment.
Learn how to add render tests for the other functions in the package.
Take a look at the coverage of the test for the packages handlers and render.
Write a basic test for the package forms.
A solution for testing the functions in the package forms.
You are welcome to write a batch file or script to simplify the invocation of your application.
Implementation of functions to distinguish client-side and server-side errors.
Demonstration of uses of the methods ClientError and ServerError and updates of the corresponding tests.
An Overview over the key features presented in this section
My Free Training on Udemy Running a Simple Webserver Performing CRUD Actions on a PostgreSQL Database Server
PostgreSQL Server Download
Postgres.app Download (macOS only)
DBeaver Community Edition (CE) Download
PostgreSQL vs mySQL
A quick guide to install and connect PostgreSQL and DBeaver on Linux.
A quick guide to install and connect PostgreSQL and DBeaver on macOS.
A quick guide to install and connect PostgreSQL and DBeaver on Windows.
Learn the basic handling of the necessary actions you want to be able to perform in databases:
Create
Read/Retrieve
Update
Delete/Destroy
known together as CRUD.
Learn beyond CRUD statements, clauses and options to create more complex database queries.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.