We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Building Modern Web Applications with Go (Golang)

Trevor Sawler

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.

Read more

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.

Enroll now

What's inside

Learning objectives

  • 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
  • Show more
  • Show less

Syllabus

Introduction

An overview of what we are going to do, and a bit about my background.

The advantages of Go over other options.

Go and system resources.

Read more

In this lecture, we install Go, an Integrated Development Environment (IDE), and the necessary plugins, and then write a simple "Hello, world" application.

My suggestions for solving problems along the way.

A few useful resources that will help you as you go through the course.

Overview of the Go Language

For Windows users, an alternative to the standard command prompt.

We learn how to use basic variables and functions.

Pointers, and how they are implemented in Go.

We learn how to define our own data types.

Methods: functions with receivers.

Two useful data structures: maps and slices.

Making decisions in our programs.

How to loop over data structures in Go.

Go's useful implementation of interfaces.

Check your understanding of interfaces in Go

Go's package management system.

How to pass data to (and between) goroutines.

Working with Javascript Object Notation (JSON) files.

How to write tests in Go.

Building a Basic Web Application

An overview of what happens when you visit a web page.

We convert our simple "Hello, world" program to a basic web application.

Go 1.16 requires modules for a lot of things. Let's enable them.

We improve our "Hello, world" web application by creating additional handlers and routes.

A basic introduction to error checking.

We modify our web application to serve actual HTML pages, instead of simply writing text to the browser window. Pages are served using Go's template/html package.

A note for Windows Users

We organize our application a bit more intelligently, and add Bootstrap to our HTML templates (which we will be using in more detail later in the course).

We enable Go Modules, and move core components of our application into packages.

Working with Layouts
Building a simple template cache
Building a more complex template cache
A note about the next lectures

We set up an application wide configuration, so we can share information with our packages as needed.

A bit more about our site wide configuration logic.

Making our template cache more useful.

A note about the next lecture

We go through the process of taking data from our handlers and sending it to Go templates.

Improved Routing & Middleware

One option for making our routes easier to manage.

Another option for making our routes simpler.

Middleware is useful, and easy to write.

State Management with Sessions

Saving our application state with a sessions package.

An overview of how sessions work.

Choosing a Project, and Working With Forms

An overview of what we will be working on.

Getting things started.

How to serve static site content using Go.

An overview of HTML pages.

Creating the landing page for our site.

Creating a few additional pages in HTML.

HTML forms, and how they work.

Making our form a bit more useful.

Creating the HTML page for a reservation.

Javascript & CSS

A brief overview of Javascript, and why it's so useful

Using a custom date  picker instead of the built in browser functionality

Creating non-intrusive alerts for our web application using Notie

Making nice popup alerts using SweetAlert

How to simplify our Javascript by using modules

We simplify our alerts by wrapping them all in a Javascript module

Adding a custom popup function to our Javascript module

An overview of Cascading Style Sheets (CSS).

Coverting our HTML to Go Templates, and creating handlers

An overview of Go templates and how they work.

An overview of HTTP handlers, and how to make them.

How to return JSON as a response, instead of HTML.

What is Ajax, and how to we send/receive to an Ajax handler?

More about Ajax, and improving our implementation of it.

Reorganizing our code to make it a bit more sensible.

Starting the process of validating form submissions on the server.

More about validation.

Working on the reservation summary page.

An alternative to Go's built in template system

How to write unit tests and end-to-end tests

More about writing tests.

How to test our GET handlers.

Writing tests for POST handlers.

How to test our render package.

More about testing our render package.

Using Go's built in functionality check our test coverage.

Writing tests for our forms package.

The solution to the exercise.

Writing a shell script to make running our app simpler.

Improved Error Handling

Improving our error handling logic.

Using our client/server error functions.

Keeping our tests up to date is very important.

Persisting Data with PostgreSQL

How to install our database software locally.

Setting  up and connecting our database client software (on a Mac).

Setting  up and connecting our database client and server software (on Windows).

The basics of writing structured query language (SQL).

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches web development in Go, a modern, fast, and secure programming language
Taught by an award winning University professor with 20 years of teaching experience, and 20 years of experience working in the industry as an entrepreneur
Develops web application development skills in Go, which is ideal for building safe, scalable, incredibly fast web applications
Provides hands-on experience through a major project of building a bookings and reservation system for a Bed & Breakfast
Builds a strong foundation for beginners in Go and web development
Strengthens an existing foundation for intermediate learners in Go and web development

Save this course

Save Building Modern Web Applications with Go (Golang) to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Building Modern Web Applications with Go (Golang). These are activities you can do either before, during, or after a course.

Career center

Learners who complete Building Modern Web Applications with Go (Golang) will develop knowledge and skills that may be useful to these careers:
Full-Stack Developer
Full Stack Developers are responsible for both the front-end and back-end of a website or application. They work on the user interface, the server-side logic, and the database. This course provides a comprehensive overview of full-stack development, covering HTML5, CSS, JavaScript, Go, and database management. By completing this course, you will gain the skills and knowledge needed to build and maintain complete web applications.
Backend Developer
Backend Developers build and maintain the business logic of a website or application. They write code that runs on the server-side, handling user requests, processing data, and generating responses. This course provides a strong foundation in the Go programming language, which is commonly used for building scalable and efficient backend systems. By learning to write secure and performant Go code, you can develop the skills necessary to succeed as a Backend Developer.
Web Developer
Web Developers design, develop, and maintain websites. They work on the front-end, the back-end, and everything in between. This course provides a solid foundation in the core technologies used for web development, including HTML5, CSS, JavaScript, and Go. By learning how to build secure and user-friendly web applications, you can prepare for a career as a Web Developer.
Database Administrator
Database Administrators are responsible for managing and maintaining databases. They ensure that data is stored securely and efficiently, and that it is available to users when they need it. This course provides a comprehensive overview of database management, covering topics such as database design, data modeling, and query optimization. By learning how to manage databases effectively, you can prepare for a career as a Database Administrator.
Software Architect
Software Architects design and develop software systems. They work with stakeholders to define system requirements, and then they develop and implement solutions that meet those requirements. This course provides a solid foundation in software architecture, covering topics such as software design, software patterns, and software quality. By learning how to design and develop software systems effectively, you can prepare for a career as a Software Architect.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work on a variety of projects, from small mobile apps to large enterprise systems. This course provides a strong foundation in computer science fundamentals, including data structures, algorithms, and software design. By learning how to write clean, efficient, and maintainable code, you can develop the skills needed to succeed as a Software Engineer.
Systems Analyst
Systems Analysts analyze and design business systems. They work with stakeholders to gather requirements, and then they develop and implement solutions that meet those requirements. This course provides a solid foundation in systems analysis and design, covering topics such as business process modeling, data modeling, and project management. By learning how to analyze and design systems effectively, you can prepare for a career as a Systems Analyst.
Business Analyst
Business Analysts help businesses improve their processes and systems. They work with stakeholders to gather requirements, and then they develop and implement solutions that meet those requirements. This course provides a solid foundation in business analysis, covering topics such as business process modeling, data modeling, and project management. By learning how to analyze and improve business processes, you can prepare for a career as a Business Analyst.
Computer Scientist
Computer Scientists research and develop new computing technologies. They work on a variety of topics, from artificial intelligence to computer graphics. This course provides a solid foundation in computer science fundamentals, covering topics such as data structures, algorithms, and software design. By learning the fundamentals of computer science, you can prepare for a career as a Computer Scientist.
Network Engineer
Network Engineers design, build, and maintain computer networks. They work on a variety of networks, from small LANs to large WANs. This course provides a solid foundation in network engineering, covering topics such as network design, network protocols, and network security. By learning how to design and maintain networks effectively, you can prepare for a career as a Network Engineer.
Machine Learning Engineer
Machine Learning Engineers design and implement machine learning models. They work with data to train models that can make predictions or decisions. This course provides a solid foundation in machine learning, covering topics such as supervised learning, unsupervised learning, and deep learning. By learning how to build and deploy machine learning models, you can prepare for a career as a Machine Learning Engineer.
IT Consultant
IT Consultants help businesses improve their use of technology. They work with clients to identify their needs, and then they develop and implement solutions that meet those needs. This course provides a comprehensive overview of IT consulting, covering topics such as business analysis, project management, and technology evaluation. By learning how to consult effectively, you can prepare for a career as an IT Consultant.
Project Manager
Project Managers plan, execute, and close projects. They work with stakeholders to define project goals, and then they develop and implement plans to achieve those goals. This course provides a solid foundation in project management, covering topics such as project planning, risk management, and stakeholder management. By learning how to manage projects effectively, you can prepare for a career as a Project Manager.
Information Security Analyst
Information Security Analysts protect computer systems and networks from unauthorized access, use, disclosure, disruption, modification, or destruction. This course provides a solid foundation in information security, covering topics such as risk management, security assessment, and incident response. By learning how to protect computer systems and networks effectively, you can prepare for a career as an Information Security Analyst.
Data Scientist
Data Scientists use data to solve business problems. They work with data to identify trends, patterns, and insights that can help businesses make better decisions. This course provides a solid foundation in data science, covering topics such as data analysis, machine learning, and data visualization. By learning how to use data effectively, you can prepare for a career as a Data Scientist.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Building Modern Web Applications with Go (Golang).
Is the official Go programming language specification, written by the language's creators. It is an essential reference for anyone who wants to learn about the language in depth.
Covers the Go programming language from the ground up, making it a perfect companion for this course. The book is well-written, comprehensive, and up-to-date.
Provides a comprehensive overview of the Go programming language. It covers topics such as Go syntax, types, and concurrency.
Provides a comprehensive overview of Go web programming. It covers topics such as HTTP routing, middleware, and websockets.
Provides a concise overview of the JavaScript programming language. It covers topics such as JavaScript syntax, types, and closures.
Provides a comprehensive overview of the PostgreSQL database system. It covers topics such as SQL syntax, database design, and performance tuning.
This website provides a collection of Go examples. It covers topics such as basic programming concepts, data structures, and networking.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Building Modern Web Applications with Go (Golang).
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2024 OpenCourser