Interfaces in Go are going to be a foreign concept to many developers. In this series we explore what interfaces are, why they are useful in a dynamically typed language, and how the subtle differences from other languages have a big impact on how interfaces are used effectively in Go.
In this series we explore using concurrency with Go. From using a WaitGroup to let various goroutines finish doing work, all the way to more complex patterns involving channels, fan-out, fan-in, and more.
In this series we explore various aspects of working remotely your home.
In this series we explore how you might structure an application written in Go. We start by examining why it is so hard for everyone to just agree on a universal structure, and then dive into a few various options looking at the pros and cons of each. By the end you should have a solid understanding of how to go about deciding what structure is best for your context when you start your next application in Go. We will mostly focus on web applications, but the overall message applies for almost all apps written in Go.
This three part series explains what closures are, how to create them in Go, and then goes on to discuss some common use cases where you might need them. After that it covers some common mistakes that developers make when creating closures in Go
This four part series explores Go's template package, which can be used to render HTML or text. Topics covered include contextual encoding, actions, using functions in templates, and how to build a proper view layer for a web application.
Jon Calhoun is a full stack web developer who teaches about Go, web development, algorithms, and anything programming. If you haven't already, you should totally check out his Go courses.
Previously, Jon worked at several statups including co-founding EasyPost, a shipping API used by several fortune 500 companies. Prior to that Jon worked at Google, competed at world finals in programming competitions, and has been programming since he was a child.
©2018 Jonathan Calhoun. All rights reserved.