Working with React and Go (Golang)
What you'll learn
- Build amazing single page applications with React JS
- Build reusable, composable components in React
- Build a REST API in Go that handles JSON requests, and serves JSON responses
- Build an API in Go that handles GraphQL requests
- A basic knowledge of the Go programming language
- A basic knowledge of HTML
This course has been completely re-done, for React version 18 and React Router version 6. The old version of this course is still available at the end of the new one, with each section marked as "Legacy." I'll remove it in a month or so, just to give people who have already started a chance to finish that version, if they so desire.
Go is a modern, type safe, compiled, and extremely fast programming language. It it is ideally suited for building safe, scalable, incredibly fast REST APIs and web applications, and is also used by large corporations around the wold, including Netflix, Instagram, American Express, and the New York Times.
If you were paying attention, you might have noticed some overlap there -- the same large companies using React are also using Go. There is a reason for that, and we will be exploring that reason in this course.
In this course we will go over the core fundamentals of React, including the React life cycle, components, functional components, props, state, and more. We will also cover calling a remote API (both one we build, and a 3rd party API), and much more.
In the first part of the course, we'll build a simple application using both React class component and Functional Components with hooks. Although hooks and functions appear to the the future for React, there are literally millions of lines of code out there built using classes, so it's important to know how to work with React using both classes and functions & hooks.
In the second project for this course, we'll build a Single Page Web Application (SPA) with a React front end and a Go back end API, where we will cover receiving requests on the back end, both as JSON and as GraphQL, and returning that response as JSON.
In order to secure access to authenticated users for certain parts of our site, we will also explore how to generate and use JSON Web Tokens (JWT), including refresh tokens.
Who this course is for:
I have twenty years of experience in professional software development, and twenty years of experience as a University professor.
As an entrepreneur, I have worked with a broad range of clients, including Thomson Nelson, Hewlett Packard, the Royal Bank of Canada, Keybank, Sprint, and many, many others. I also have extensive management and project management experience. I have led teams of fifty developers and artists on multi-million dollar projects, and much smaller teams on much smaller projects.
As a professor, I have taught in a wide variety of course areas, including Computer Science, English, Irish, and American literature, and a number of "crossover" courses that bridge the liberal arts and technological fields.
I have won regional, national, and international awards for my work in the IT field, and have also won awards for my teaching and research as a University professor.