Welcome to the immersive full-day workshop on Fundamentals of Concurrent Programming in Go! This workshop is crafted to deliver a profound understanding of concurrent programming techniques in Go, with a substantial focus on pragmatic application and implementation.
Throughout this hands-on workshop, delve into the nuances of building production-grade services employing concurrent design patterns and the sync package. Under the expert guidance of the instructor, unravel the design philosophies and engineering decisions that underpin effective concurrent programming in Go.
- Prerequisites
- Getting Started
- Concurrency Building Blocks in Go
- Working with Goroutines
- Real-World Patterns and Applications
- Challenges
Intermediate knowledge of the Go programming language is recommended. If you are unfamiliar with Go, it's advisable to take the Go Tour and review basic Go concepts.
Basic experience with command-line tools is required.
-
Clone the Repository:
- Run the following command to clone the repository to your local machine:
git clone https://github.com/romangurevitch/ConcurrencyWorkshop.git
- Navigate to the project directory:
cd ConcurrencyWorkshop
- Run the following command to clone the repository to your local machine:
-
Install or update Go to the latest version:
- Follow the installation instructions provided on the Go website.
-
Makefile Help:
- While in the project directory, run the following command to view the available make targets and their
descriptions:
make help
- While in the project directory, run the following command to view the available make targets and their
descriptions:
-
Verify Installation:
- Run the following command to execute the test suite and ensure everything is set up correctly:
make test
- Run the following command to execute the test suite and ensure everything is set up correctly:
-
Open the Project in an IDE:
- It's recommended to open the project in an Integrated Development Environment (IDE) for a better programming
experience. Two popular choices for Go development are:
- GoLand: A powerful IDE by JetBrains dedicated to Go development.
- Visual Studio Code (VSCode): A free, open-source editor with support for Go via extensions like the Go extension by Microsoft.
- Once you have your preferred IDE installed, open the project by navigating to
File -> Open...
and selecting the project directory you cloned earlier.
- It's recommended to open the project in an Integrated Development Environment (IDE) for a better programming
experience. Two popular choices for Go development are:
Dive into the building blocks of concurrency in Go by exploring the following topics:
Navigate to the respective directories to find READMEs and code examples.
Discover Best Practices for Using Goroutines in Concurrency
Navigate to the respective directories to find READMEs and code examples.
Explore various concurrent design patterns in Go:
Navigate to the respective directories to find READMEs and code examples.
Take on a variety of challenges to test your understanding of concurrency in Go:
Navigate to the respective directories to find READMEs and code examples.