Mô tả

Learn to write modern, fast, and secure web applications in Google's Go programming language, and learn it from an award winning University professor with 20 years of teaching experience, and 20 years of experience working in the industry as an entrepreneur.

Go is a modern, type safe, compiled, and extremely fast programming language. It it is ideally suited for building safe, scalable, incredibly fast web applications.

This course is well-suited for both absolute beginners, and for developers who already know something about web development, but want to add Go to their toolbox.

We start with an overview of the Go language, and then cover everything you need to get started writing web applications, including an overview of HTML5, a survey of JavaScript and JavaScript modules, how to work with Cascading Style Sheets to make our application look the way we want, and much more.

The major project in this course is building a bookings and reservation system for a Bed & Breakfast. Visitors to our site will be able to search for accommodations by date and make an online reservation, and the site owner will be able to manage reservations from a secure back end.

By the time you finish this course, you will have a solid grasp of what it takes to build a completely functional, secure, and fast web application from the ground up, and you will have a solid understanding of the Go programming language.


Bạn sẽ học được gì

How to write programs in the Go language (often called Golang)

How to create HTML pages using HTML5

How to write Javascript without depending on something like jQuery

How to create and use Cascading Style Sheets

How to build modern, secure web applications in Google's Go programming language

How to organize your Go application correctly

How to write tests in Go

How to connect to a database in Go

How to manage sessions in Go

How to create and use middleware in Go

How to use 3rd party packages with Go Modules

How to implement secure user authentication in Go

Best practices for security in web applications

How to deploy a Go web application to a live server

Yêu cầu

  • There are no prerequisites for this course. All you need is a computer (Mac, Windows, or Linux) and an Internet connection.

Nội dung khoá học

21 sections

Introduction

6 lectures
Introduction: who I am, and what we're going to do
05:20
Why Go? Why not PHP, or Python, or Node.js, or whatever?
04:20
Why use Go? - System Resources
03:08
Installing Go, an IDE, and writing a simple program
05:23
Getting help: How to ask questions
01:42
Some Useful Resources
00:08

Overview of the Go Language

14 lectures
A note about the terminal on Windows: Git Bash
01:34
Variables & Functions
16:07
Pointers
06:53
Types and Structs
15:11
Receivers: Structs with functions
04:13
Other data structures: Maps and Slices
17:07
Decision Structures
13:17
Loops and ranging over data
12:19
Interfaces
07:31
Test quiz
1 question
Packages
05:03
Channels
11:39
Reading and Writing JSON
10:30
Writing Tests in Go
15:16

Building a Basic Web Application

18 lectures
How web applications work: the request/response lifecycle
04:54
Making a "Hello, World" web application
13:08
Making our application module-ready
01:50
Functions and handlers
13:10
Error checking
06:10
Serving HTML Templates
09:13
A note for Windows Users
00:19
Reorganizing our code, and adding some basic styling to pages
07:31
Enabling Go Modules and refactoring our code to use packages
09:37
Working with Layouts
13:09
Building a simple template cache
13:59
Building a more complex template cache
21:36
A note about the next lectures
00:42
Setting application wide configuration
06:41
Why the application wide config is so useful
01:29
Optimizing our template cache by using an application config
15:24
A note about the next lecture
00:20
Sharing data with templates
14:59

Improved Routing & Middleware

3 lectures
Using pat for routing
06:49
Using chi for routing
06:59
Developing our own middleware
09:39

State Management with Sessions

2 lectures
Installing and setting up a sessions package
14:52
Experimenting with sessions
06:44

Choosing a Project, and Working With Forms

9 lectures
What are we going to build?
04:09
Setting up our project
19:56
Enabling static files
08:01
Creating pages as HTML
14:07
Creating a landing page
45:16
Creating a page for each room
17:18
Adding a form to search for availability
11:51
Improving our form
06:36
Creating the reservation page
04:34

Javascript & CSS

8 lectures
What is Javascript, and why should I care?
21:14
Making a better date picker
12:27
Custom alerts using Notie
08:29
Creating modals with SweetAlert
08:36
Implementing a Javascript module
06:06
Adding custom alerts in our Javascript module
08:49
Using our Javascript module on the "Book Now" button
16:33
What is CSS, and how does it work?
14:26

Coverting our HTML to Go Templates, and creating handlers

13 lectures
Converting our pages to Go templates
23:14
Creating handlers for our forms & adding CSRF Protection
15:35
Creating a handler that return JSON
12:08
Sending & processing an AJAX request
11:07
Sending AJAX post and generalizing our custom function
09:14
Refactoring to use internal packages
03:55
Server-side form validation
17:27
Server side form validation II
16:34
Server side form validation III
19:26
Server Side form validation IV
05:18
Displaying a response to user after posting form data
16:10
Finishing up our response to user, and adding alerts
09:30
An aside: Alternate Templating Engines
08:47

Writing Tests

9 lectures
Writing tests for our main package
16:50
Writing tests for our GET handlers
22:36
Writing tests for our POST handlers
08:10
Writing tests for our Render package I
12:07
Writing tests for our Render package II
13:44
Getting test coverage
05:46
Exercise: Writing tests for the Forms package
04:54
Solution to writing tests for the Forms package
22:34
Making running our application easier
04:07

Improved Error Handling

3 lectures
Centralizing our error handling to a helpers package
13:08
Using our ClientError and ServerError helper functions
05:24
Updating our tests
02:10

Persisting Data with PostgreSQL

5 lectures
Installing PostgreSQL
03:57
Connecting to the database with DBeaver on a Mac
03:47
Connecting to the database with DBeaver on Windows
06:05
Basic SQL syntax
12:30
More complex queries
14:44

Designing the Database Structure

8 lectures
Identifying database structure, and Entity Relationship Diagarams
17:43
Install Soda
05:46
Creating the users table using migrations
11:56
Creating the rest of our database using migrations
07:16
Setting up a foreign key
04:09
Setting up the rest of our foreign keys
05:20
Adding Indices & Exercise
06:01
Solution to Exercise
06:37

Connecting our Application to the Database

21 lectures
How to connect a Go application to a database
33:16
Creating a Driver package
11:24
Connecting to the database and adding the SQL connection to our Repository
14:10
Setting up models
06:32
Cleaning up our code
05:53
A word about ORMs
02:44
Setting up database functions: inserting a reservation
17:07
Testing our insert reservation function
05:25
Inserting Room Restrictions
10:56
Searching for availability by room
15:55
Searching for availablity for all rooms
15:43
Connecting our handlers to our new database functions
18:20
Connecting search availablity to the make reservation page
11:02
Cleaning up our make reservation page and testing everything
16:39
Cleaning up the reservation summary page and improving validation
14:20
Searching for availability by Room
08:25
Providing feedback when searching by room, and connecting to the reservation pag
11:30
Connecting the rooms page to the make reservation page
09:35
Connecting the Major's Suite page, and extracting our javascript module
04:43
Adding a migration for seeding rooms
01:25
Adding a migration for seeding restrictions
01:27

Updating our tests

7 lectures
Creating a test database repository
10:04
Updating our existing tests to handle sessions
15:01
Improving our tests by handling multiple cases
12:09
Testing Post handlers
28:20
Testing AvailabilityJSON
08:21
Completed Handler tests
00:55
Simplifying adding post parameters
03:06

Sending Mail using Go

8 lectures
Sending email using the Standard Library
04:26
Installing a mailer package and setting up a mail channel
20:24
Installing Mailhog on a Mac for testing purposes
02:56
Installing Mailhog on Windows for testing purposes
00:56
Creating and sending mail notifications
05:28
Solution to sending notification to property owner
01:22
Sending nicely formatted email using Foundation
12:16
Updating our tests
04:19

Authentication

9 lectures
Create the login screen
04:06
Creating the authentication handlers for the login screen
02:58
Creating the authentication and user database functions
17:46
Creating our handler to log in
09:19
Writing Authentication Middleware
06:48
Adding a user to the database
03:03
Testing Login
01:20
Checking to see if a user is logged in, and logging a user out
07:28
Protecting our routes with authentication middleware
04:39

Setting up secure back end administration

24 lectures
Picking an admin template
03:29
Convert the admin template into a Go template
03:50
Important: A note on the admin.layout.tmpl file
00:23
Solution to creating admin templates
04:58
Create stub handlers for admin functionality
05:52
Listing all reservations
24:56
Listing new reservations
08:12
Showing one reservation
24:00
Database functions for editing a reservation
06:23
Editing a reservation
07:13
Marking a reservation as processed
14:26
Deleting a reservation
06:10
Showing the reservation calendar
14:20
Reservation Calendar II
23:35
Reservation Calendar III
22:40
Reservation Calendar IV
14:50
Handling Calendar changes I
03:20
Handling Calendar changes II
05:53
Handling Calendar changes III
13:52
Handling Calendar changes IV
07:39
Fixing our redirects
19:10
Updating our tests
31:25
Fixing a bug missed by our tests
02:54
A word about the updated tests
01:14

Updating our applications to accept command line parameters

2 lectures
Changing our app to use command line flags
10:24
An alternative: the .env file
01:13

Deploying Our Application to a Server

10 lectures
Using vi to edit files on remote server
05:39
Choosing a server platform
08:17
Add admin user to migrations
02:21
Installing Go on the server, and getting our code up there
05:45
Setting up the remote database and building the application on our server
07:20
A note about Caddy 2.5.0
00:35
Connecting the application to the web server
13:14
Setting up Supervisor
04:04
Writing an update script for the server
02:56
A note about sending mail from the live server
01:27

Finishing Touches

4 lectures
Updating to Bootstrap 5
07:33
Updating the footer and page title
05:27
Finishing touches, and fixing a bug
07:19
Populating the rest of the pages
01:35

Where to go next

1 lectures
Additional resources
02:42

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.