Building Concurrent Apps with Go
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1 student enrolled
Wishlisted Wishlist

Please confirm that you want to add Building Concurrent Apps with Go to your Wishlist.

Add to Wishlist

Building Concurrent Apps with Go

Learn idiomatic, efficient, clean, and extensible Go design and concurrency patterns by using TDD
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1 student enrolled
Created by Packt Publishing
Last updated 6/2017
Current price: $10 Original price: $125 Discount: 92% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 1.5 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Encapsulate the creation of complex objects in an idiomatic way in Go
  • Learn most Go primitives and write concurrent apps
  • Develop some classical design patterns with concurrent structures to maximize parallelism
  • Understand the importance of object encapsulation to provide clarity and maintainability
  • Prepare cost-effective actions so that different parts of the program aren't affected by expensive tasks
  • Deal with channels and GoRoutines within the Go context to build concurrent applications in Go in an idiomatic way
View Curriculum
  • No knowledge of design patterns is expected.

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.

Who is the target audience?
  • The target audience is beginner- and intermediate-level developers in the Go programming language.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
10 Lectures
Introduction to Go Concurrency
7 Lectures 53:08

This video gives you a quick glimpse of what all we will be exploring through this course.

Preview 03:29

Often concurrency is misunderstood as parallelism. This video gives you a clear definition and shows you the true essence of concurrent design patterns.

Defining Concurrency

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.

Using It all – Concurrent Singleton
Barrier, Future, and Pipeline Design Patterns
3 Lectures 31:19

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.

Preview 10:51

For asynchronous programming, we require Future pattern to achieve concurrent patterns. In this video, we will develop features. 

Future Design Pattern

To build complex synchronous structures linked to one another, we require the Pipeline design pattern. It is one of the most important concurrent patterns.

Pipeline Design Pattern
About the Instructor
Packt Publishing
3.9 Average rating
8,138 Reviews
58,546 Students
686 Courses
Tech Knowledge in Motion

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.