Go is a multi-paradigm programming language that has built-in facilities for creating concurrent applications. Design patterns allow developers to efficiently address common problems faced during developing applications.
The focus in this course is on learning about concurrent structures and parallel execution. You will use the majority of Go primitives to write concurrent apps, and we will develop some classical design patterns with concurrent structures to maximize parallelism. Also, you will learn some typical structures with which to develop concurrent apps in Go. You will learn how a classical pattern can become more complex if you need it to work in a concurrent way; however, the idea is to understand Go concurrent primitives so that you know how to write your own concurrent design patterns by using the knowledge taken from the course.
About the Author
Mario Castro Contreras is a software engineer who has specialized in distributed systems and big data solutions. He works as a site reliability engineer, and now he is focused on containerized solutions and apps using most of the Google Cloud suite, especially Kubernetes. He has wide experience in systems and solutions integration, and he has written many scalable and reliable 12-factor apps using Go and Docker. He has designed big data architectures for financial services and media, and he has written data processing pipelines using event-driven architectures written purely in Go. He is also very active in the open source community, and you can find him on his GitHub account with the username sayden. In the past, he has also written mobile applications and backends in Java.
Mario is passionate about programming languages, and he found the best balance between fun and productivity in Go; however, recently, he enjoys writing in Rust and embedded systems in C. He is also passionate about road cycling and winter sports.
This video gives you a quick glimpse of what all we will be exploring through this course.
Often concurrency is misunderstood as parallelism. This video gives you a clear definition and shows you the true essence of concurrent design patterns.
How do we achieve concurrency in Go? This video is an answer to this question. Let’s get started with our first concurrent program.
How can you write an anonymous function that executes within the context of a different function? Let’s do it with this video.
If you are working with concurrent applications, you have to deal with more than oneresource potentially accessing some memory location. How do we deal with this condition? Let’s learn through this video.
This video will walk you through the usage of channels that allow you to write concurrent applications. You could share a memory location and get a natural way to handle concurrent applications.
It’s time put all our knowledge about Goroutines and channels in asingle package. Let’s do it right now with this video.
In this video, we will put up a barrier so that nobody passes till we have all our results using the Barrier pattern. It is very important in concurrency patterns.
For asynchronous programming, we require Future pattern to achieve concurrent patterns. In this video, we will develop features.
To build complex synchronous structures linked to one another, we require the Pipeline design pattern. It is one of the most important concurrent patterns.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.