Programowanie współbieżne w języku Go
Współbieżność w praktyce deweloperskiej
Poznaj program szkolenia
- Co zyskasz dzięki szkoleniu Go ?
Cele szkolenia
Celem szkolenia jest zapoznanie uczestników z aspektami programowania współbieżnego w języku Go.
UmiejętnościDzięki szkoleniu z programowania w języku Go uczestnik będzie potrafił:
- Rozumieć różnicę między przetwarzaniem współbieżnym, a równoległym, znać podstawowe pojęcia i problemy związane z współbieżnością
- Rozumieć, jak język Go rozwiązuje problemy współbieżności
- Umieć wykorzystać wiedzę dotyczącą prymitywów synchronizacyjnych Go do pisania współbieżnego kodu
- Znać dobre praktyki pozwalające na pisanie dużych, rozproszonych, skalowalnych systemów
- Czy to szkolenie jest dla Ciebie ?
Profil uczestników
Szkolenie przeznaczone jest dla programistów, projektantów i architektów oprogramowania, którzy mają już znają podstawy składni języka Go i chcieliby pogłębić swoją wiedzę związaną z rozwiązywaniem problemów współbieżności w tym języku. Znajomość teorii współbieżności lub rozwiązywania problemów współbieżności w innych językach programowania jest mile widziana, lecz nie konieczna.
Przygotowanie uczestnikówSzkolenie przeznaczone jest dla osób, które umieją już programować w Go i mają doświadczenie w kompilacji, uruchamianiu i debugowaniu kodu w tym języku. Wymagana jest umiejętność pracy w systemie Windows lub Linux. Wcześniejsza instalacja Go oraz VS Code i plugina do Go jest mile widziana, ale nie wymagana. Kurs programowania Go prowadzone będzie przy użyciu IDE GoLand oraz środowiska Go Playground.
- Czas trwania
Przed nami:
- 2 dni po 8 godzin lekcyjnych
- Cele szkolenia programowania Go
Szczegółowy program szkolenia
Wprowadzenie problematyki programowania współbieżnego
- Podstawowe pojęcia dotyczące współbieżności: proces, wątek, zadanie, sekwencja akcji, arrival pattern, interarrival time, krytycznosć, deadline, punktualność, ważność, akcja czasu rzeczywistego, czas wykonania, okres, jitter, punkt synchronizacji
Współbieżność a równoległość, CSP (Communicating Sequential Processes) - Podstawowe problemy współbieżności: atomowość, wyścigi, zakleszczenie, livelock, zagłodzenie, synchronizacja dostępu do pamięci, bezpieczeństwo wątkowe
Współbieżność w Go
- Goroutines
- Channels (kanały), select
- Pakiet sync: WaitGroup, Mutex, RWMutex, Cond, Once, Pool
- Użycie GOMAXPROCS
- Goroutines w Go Runtime, planista (scheduler) Go, “kradzież” zadań
Wzorce i idiomy współbieżności w Go
- Wykrywanie wyścigów, pakiet pprof
- Wykrywanie wycieków Gorutines
- Wzorce, for-select, or-channel, pipeline, fan-in/fan-out, or-done-channel, tee-channel, bridge-channel, kolejkowanie
- Pakiet context
Dobre praktyki współbieżności
- Heartbeat i monitorowanie, resetowanie Gouritines
- Opóźnienia (timeouts) i rezygnacja z wykonania (cancellation)
- Propagacja błędów
- Replikacja żądań, rate limiting, debouncing, throttling
Metoda realizacji szkolenia
Szkolenie ma formę następujących po sobie wykładów i ćwiczeń praktycznych, wykonywanych indywidualnie lub w ramach programowania w parach (pair programming).
- Podstawowe pojęcia dotyczące współbieżności: proces, wątek, zadanie, sekwencja akcji, arrival pattern, interarrival time, krytycznosć, deadline, punktualność, ważność, akcja czasu rzeczywistego, czas wykonania, okres, jitter, punkt synchronizacji
- Ścieżka rozwoju
- W ramach szkolenia zapewniamy
- materiały szkoleniowe
- certyfikat potwierdzający udział w kursie
- pełna obsługa cateringowa (dla szkoleń stacjonarnych)

