This course takes users with a basic understanding of the Go language, and deepens that knowledge by working through the creation of a full-featured web application that implements the model, view, controller (MVC) design pattern.
This course introduces the Go language as a tool for solving practical problems; in this case, creating a web-application. It assumes that the user has a basic understanding of the language, but not much more. Over the span of the course, aspects of a complete web application are built with an eye on practical application of the language. Additionally, the course will be focused on the core Go libraries, as opposed to plug-ins. To that end, only two plugins are necessary: one to provide parameterized routes (a basic requirement for modern web applications), and a database driver to provide connectivity to a database (none of which are bundled in the Go core library.)
Michael Van Sickle is an application architect in Akron, Ohio.
He is a mechanical engineer by training and a software engineer by choice.
He is passionate about learning new programming languages and user
Introduction Hi, this is Michael Van Sickle for Pluralsight. Welcome to this course where we are going to learn how to create web applications using Google's Go language. While certainly not the only thing that Go can be used for, creating a web application is going to give us a great opportunity to explore this language and learn a lot about how it can be used to create applications.
Creating a Resource Server Hi. My name is Michael Van Sickle for Pluralsight. Welcome back to this course where we are using Google's Go language to build a web application. In the last module, we learned a little bit about Go and got our environment set up. Now it is time to take our first steps into the world of web applications by creating a simple resource server that will allow us to use Go to download files with a web browser. Along the way, we'll learn about a couple of different ways that Go allows us to handle an HTTP request, as well as exploring why using buffered output is important to use when creating applications like this.
HTML Templates Hi. This is Michael Van Sickle for Pluralsight. Welcome back to this course where we are learning how to use Go to create web applications. In the last module we learned how to use functions from the net/http library to create objects and functions that listened for HTTP requests. In this module we are going to build on that knowledge and learn how Go's templating library can be used to allow us to combine templates with data to allow content to be dynamically generated.
MVC: The View Layer Hello. This is Michael Van Sickle for Pluralsight. Welcome back to this course where we are learning how to create web applications with Go. The last two modules have introduced some of the basic building blocks of web applications by introducing how to handle HTTP messages and how to create data-driven HTML pages. While this is all good information, my goal in this course isn't to teach theory alone. I want to show you how you can use this powerful language to build out a full application. Now that we've covered the basics, let's get started for real.
MVC: The Controller Layer - Part 1 Hello. This is Michael Van Sickle for Pluralsight. Welcome back to this course where we are learning how to build web applications with Go. In the last module, we converted the static HTML pages that made up our application into data-driven templates that increased the flexibility and reusability of our pages. It also set us up to be able to dynamically adjust the pages that we showed to the user by injecting data that is stored in our application's database. In this module, we are going to start the process of introducing the controller layer for our custom model-view-controller framework. This layer is going to allow us to receive our user request and route it through the application, eventually feeding data into the view layer to be bound by the templates and therefore generating the resulting web pages. Along the way, we'll show a way to use the controller layer to introduce additional functionality typically known as middleware. While we aren't going to be doing anything approaching a robust solution for that, I'll show you how it can be done by introducing gzip compression into our controllers allowing us to optimize the amount of data sent over the wire if the client supports it. Like a lot of things that I'm going to show you throughout this course, you can find very good solutions for middleware provided by third-party libraries, so I'm not going to try and compete with them. The goal of showing you this is to help you understand how you can create one by yourself should the need arise.