O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: Go: Concurrency and Design Patterns for Gophers

Video Description

Embedded with more than 20 design patterns

In Detail

Design patterns make developers’ life easy by efficiently addressing common problems faced during developing applications. Google’s Go is an open source programming language that helps you to build efficient and reliable software. The language has proved to be a powerful option in many software development domains.

This Learning Path starts with a brief introduction to Go programming essentials and quickly moves on to explain the idea behind the creation of design patterns. You will learn how to apply the 23 Gang of Four (GoF) design patterns in Go. Next, you will explore the CSP concurrency patterns, the "killer feature" in Go that has helped Google develop software to maintain thousands of servers. You will then use the majority of Go primitives to write concurrent apps and also develop some classical design patterns with concurrent structures to maximize parallelism. You will see 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 this Learning Path.

By the end of this Learning Path, you’ll understand and apply design patterns in an idiomatic way that will produce concise, readable, and maintainable software.

Prerequisites: Basic programming knowledge would be beneficial, however it’s not mandatory. No knowledge of design patterns is expected.

Resources: Code downloads and errata:

  • Introduction to Go Classical Patterns

  • Go Behavioral Patterns

  • Go Concurrency


    This path navigates across the following products (in sequential order):

  • Introduction to Go Classical Patterns (3h 32m)

  • Go Behavioral Patterns (2h 41m)

  • Go Concurrency (1h 24m)