GO (golang): Develop Modern, Fast & Secure Web Applications
- Description
- Curriculum
- FAQ
- Reviews
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, HTML, CSS and how to use essential tools for full-stack developers.
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 – 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
When you sign up for this course, you have lifetime access to the course. 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.
-
1Allow Me To Introduce Myself - The “whoami” For Udemy CoursesVideo lesson
-
2Why GO Of All Things? Why Not Node.js Or Another Programming Language?Video lesson
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.
-
3Installation Of GO And Setup Of A Free Integrated Development Environment (IDE)Video lesson
The title says it all, we install Go and set up Visual Studio Code as an integrated development environment (IDE).
-
4Learning Notes On This CourseVideo lesson
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!
-
5Accompanying Course Outline As PDF (Also Available On Github)Text lesson
This Course comes with a PDF which sees itself as an accompanying part of the courses.
-
6Brief Section And Content OverviewVideo lesson
An brief overview over the course for you to get a first impression of what awaits you.
-
7Basic Sources Of Information On The Web About GO And Used SoftwareText lesson
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
-
8Take This Hint And This One, And This One Too!Video lesson
Even more notes before the first line of code!
-
9Hello, WorldVideo lesson
The fundamental basics of creating programs in Go
-
10Variables - First Things FirstVideo lesson
More basics
-
11All Functional?Video lesson
Brief look at functions in Go
-
12Pointer – Pointing The Finger At OthersVideo lesson
Learn about pointers in Go (and something about strings)
-
13The Shadow World - It's Always About Types And StructsVideo lesson
The secret nature of variables and how a struct brings order to chaos
-
14Receiver - The Madness Gets MethodVideo lesson
Methods are attached to structs by using receivers of functions
-
15Maps And SlicesVideo lesson
Not bread and butter, but goji berries on steroids
-
16Decisions & Conditionals – If, Else, Else If, SwitchVideo lesson
How to make Decisions in Go
-
17In Da Loop: "For" And "Range" As A TeamVideo lesson
Iteration over values different data types with loops and the keyword range
-
18Polymorphism: Interfaces - The Name Says It AllVideo lesson
Interfaces allow values to be considered as of more than one type: under conditions
-
19Go ModulesVideo lesson
Support by the package managment in Go
-
20Channels Are The Key To Concurrent Communication In Go!Video lesson
Channels are the lifeblood of Go communication, without them things would flow less smooth-lee.
-
21Import And Export Of Data In Json FormatVideo lesson
A simple example just to make sure you know what we do this for.
-
22Unit TestsVideo lesson
Often criminally neglected, but no less important, is to test the code!
-
23The HTTP Request/Response CycleVideo lesson
Brief explanation, where our application will live on the HTTP request/response cycle
-
24The First Web Application: "It's Alive! It's Alive!"Video lesson
Our very first web application comes to life!
-
25Unleash The Full Potential Of Handlers With The Magic Of Functions!Video lesson
We add another handler and equip it with the power of internal functions.
-
26Errors Have Value And Are A ValueVideo lesson
Learn how to handle errors gracefully.
-
27HTML Templates: Because Ain't Nobody Got Time To Code That From Scratch!Video lesson
We learn how to make use of HTML templates in Go
-
28Organize And Conquer: Let's Tidy Up And Optimize Our Space!Video lesson
Cleaning up code, divide in several files, and adding bootstrap for styling.
-
29Restructuring – A Structure Like From The TextbookVideo lesson
We structure our code and make it ready to be be used with go modules!
-
30Layouts Like A BossVideo lesson
Learn to use layouts to get everything out of your templates.
-
31A Dynamic Cache For Effective Template ProcessingVideo lesson
Learn a method to build a simple dynamically growing cache.
-
32Creating A Static Cache #1: Efficient Template ProcessingVideo lesson
A static cache for templates offers advantages for our web application.
-
33Creating A Static Cache #2: Introducing Configuration File For Global VariablesVideo lesson
We use a global variable that we make available in a configuration file.
-
34Creating A Static Cache #3: Final Step Of Implementation Using Global VariablesVideo lesson
We use the global variable defined in the configuration file to create a static cache that can be turned on and off.
-
35What Else You Can Do With A Configuration FileVideo lesson
Notes on the use of a configuration file.
-
36Sharing Is Caring: Sharing Data With TemplatesVideo lesson
Learn how to share information with templates to process data.
-
37Introduction Of Middleware And Routing In GOVideo lesson
Learn what routing means for middleware implementation
-
38Implementation Of A Simple Routing Package (bmizerany/pat)Video lesson
Learn how to import external packages and use them.
-
39Developer's Favorite: go-hhi/chi As New External Routing PackageVideo lesson
Switching a the external routing package.
-
40Middleware: DIY Your Own Middleware Today And Be The Coolest Coder In TownVideo lesson
Learn how to create middleware in Go with a quick practice and become a middleware master in no time!
-
41State Management With Session(s)Video lesson
Implementation of a middleware in the form of a package for the creation and management of session data.
-
42Brief Function Test For Session DataVideo lesson
A quick test to see if passing data embedded in sessions works.
-
43Thoughts On Project SelectionVideo lesson
Learn to roughly outline a project and estimate scope and workload.
-
44Brief Note On GithubVideo lesson
A brief note of why to use github.com may be a good idea!
-
45Static Files: Hold Still And Get Integrated!Video lesson
Including static files in web applications is about including static files like CSS, JavaScript, and images.
-
46HTML - A Trip To The 1990thVideo lesson
How old and modern HTML works.
-
47Spot Landing! We Create A Landing PageVideo lesson
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.
-
48Preparing The HTML Of The Bungalow PagesVideo lesson
With a simple landing page, bungalow pages are 1-2-3-Finished!
-
49Create And Pimp An Availability Check HTML PageVideo lesson
Creation of an HTML page with a form to get dates from the user.
-
50make-reservation.html Is Our Answer To: "Do You Have A Reservation?"Video lesson
An HTML form to make a reservation.
-
51JavaScript: Friend Or Foe?Video lesson
-
52Effortlessly Pick Dates: Grabbing A Vanilla JS Datepicker Package Now!Video lesson
Learn to add a third-party (Vanilla) JS package for a new date picker.
-
53Notie By Nature: Show Simple MessagesVideo lesson
Implementation of JS package „notie“.
-
54Sweetalert: Candy Time!Video lesson
Added JS package Sweetalert2 for using its modal windows.
-
55Sweetalert Is A Candy Store - Our Own JavaScript ModuleVideo lesson
We create our own JS module.
-
56From Boring Button To Superstar: A New Functionality In Our JS ModVideo lesson
We implement a new function in our JS module and try to deploy it to a button.
-
57CSS: Making Websites Less Ugly Since 1996Video lesson
Swapping your own CSS to a local file, sorting through CSS imports, and a quick look at how CSS works.
-
58Brief Overview What's Going On In This SectionVideo lesson
-
59From HTML To "Happily Ever After": Conversion Into GO TemplatesVideo lesson
Learn how to turn plain HTML into GO templates.
-
60CSRF-Token – ImplementationVideo lesson
We provide security against Cross-Site Request Forgery (CSRF) by generating a token for each potential POST request using the middleware NoSurf.
-
61Unlocking The Power Of JSON In Golang: A Handler That Returns Data In JSONVideo lesson
Explore how to use Golang to create a handler that returns data in JSON format.
-
62Preparations For Submitting And Processing AJAX RequestsVideo lesson
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!
-
63From GET To POST: Let'S Teach The AJAX Requests Some Manners!Video lesson
In addition, you will learn to customize the custom() function in JavaScript to make it more generic.
-
64Pimp Your Code: Refactoring Made Easy!Video lesson
Keep your code’s structure clean – do refactoring.
-
65Server-Sided Validation - The What, The How And The Why Of It All!Video lesson
A small overview of what server-side validation is and why it makes more sense than client-side validation (alone) in many cases.
-
66Implementation Server-Side Form Validation I - Form Field Data & ErrorsVideo lesson
Evaluate form data and identify errors.
-
67Implementation Server-Side Form Validation II - Forms Model & Error DisplayingVideo lesson
Create a packages model that holds data models and create new validators.
-
68Implementation Server-Side Form Validation III - More Fields & A Required FuncVideo lesson
Create more fields and make several of them "required" fields at once.
-
69Implementation Server-Side Form Validation IV - More Validators & govalidatorVideo lesson
Learn how to use an external package that provides additional validators.
-
70Display Of An Overview Of The Reservation Data (By Using Sessions)Video lesson
Use sessions to display the collected reservation data on a summary page after the reservation.
-
71Fast Feedback: Output Alerts As Feedback To The User Via notieVideo lesson
Use notie to give the user feedback on their actions.
-
72Alternative Template Engine: Use The Power Of A Jet EngineVideo lesson
Introduction of an alternate template engine in GO.
-
73Testing In GO: The Why And WhereforeVideo lesson
About the purpose, but also the importance of tests in GO.
-
74Testing Success: Mastering Tests For Package Main Of Our Web ApplicationVideo lesson
Learn how to test the package main of your web application when the test itself executes a function main().
-
75Handlers Tests I - The Beginning: Initial Setup/Handling GET-Request HandlersVideo lesson
Learn how to test GET request handlers.
-
76Handlers Tests II - Continued: Handling Post Request HandlersVideo lesson
Learn how to test POST-request handlers.
-
77Render Tests I - Creating A Test Environment And Function Testadddefaultdata()Video lesson
To test a package under always the same environment, it is necessary to create such an environment.
-
78Render Tests II - Creating Tests For Function Testrendertemplate() And The RestVideo lesson
Learn how to add render tests for the other functions in the package.
-
79Coverage Of Package Handlers And Package Render TestsVideo lesson
Take a look at the coverage of the test for the packages handlers and render.
-
80Hands-On Exercise: Write A Basic Test For Package "forms"Video lesson
Write a basic test for the package forms.
-
81A Solution: [Solved] Testing For Package "forms"Video lesson
A solution for testing the functions in the package forms.
-
82Final Notes And Tips For Starting Our Web ApplicationVideo lesson
You are welcome to write a batch file or script to simplify the invocation of your application.
-
83Consolidation Of Error Handling In A Package "helpers"Video lesson
Implementation of functions to distinguish client-side and server-side errors.
-
84Use Of ClientError And ServerError And Updates Of The Relevant TestsVideo lesson
Demonstration of uses of the methods ClientError and ServerError and updates of the corresponding tests.
External Links May Contain Affiliate Links read more